/* ==========================================================================
   Bloom — film na /funkcije/: zalepljena scena, telefon i ekrani aplikacije.
   Sve mere telefona idu iz --pw (širina telefona), tekst unutra je u em,
   pa se ceo telefon skalira jednim brojem (desktop, telefon, zum kamere).
   Animaciju vodi biblioteka na grani (panel-*.js); ovde nema pokreta.
   ========================================================================== */

/* ------------------------------------------------------------- Scena */
.section--film{padding-bottom:0;margin-bottom:var(--section-gap)}
/* visina SEKCIJE je stabilna (svh): da se menjala sa trakom pregledača (dvh), sve ispod heroja bi skakalo gore-dole dok se traka
   skuplja i širi (ljuljanje na granici sa sledećom sekcijom). Samo zalepljeni panel (.film__pin) prati prozor (dvh). */
.film{--steps:6;--step:85vh;--step:85svh;height:calc(100vh + var(--steps) * var(--step));height:calc(100svh + var(--steps) * var(--step))}
.film__pin{position:sticky;top:0;height:100vh;height:100svh;height:100dvh;display:flex;flex-direction:column;padding-top:92px;padding-bottom:16px;box-sizing:border-box;overflow:hidden;transform:translateZ(0);will-change:transform}
.film__stage{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:clamp(20px,4vw,64px);padding:clamp(18px,3vw,40px)}
.film__text{position:relative;min-width:0;display:grid}
.chap{grid-area:1/1;display:flex;flex-direction:column;gap:14px;max-width:460px;opacity:0;visibility:hidden}
.chap__kicker{display:inline-flex;align-items:center;gap:10px;color:var(--c-accent-text);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.chap__kicker b{font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:var(--r-pill);background:rgba(var(--c-accent-rgb),.14)}
.chap h3{font-size:clamp(30px,3.8vw,52px);line-height:1.04;letter-spacing:-.03em;font-weight:600;text-wrap:balance}
.chap p{font-size:clamp(16px,1.4vw,19px);line-height:1.6;color:var(--c-text-2)}
.chap__list{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.chap__list span{padding:6px 12px;border-radius:var(--r-pill);background:rgba(var(--ov-rgb),.1);font-size:14px;font-weight:600}
.film__scene{position:relative;min-width:0;height:100%;display:flex;align-items:center;justify-content:center;perspective:1600px}
.film__prog{position:absolute;left:50%;bottom:12px;width:min(320px,60vw);height:3px;border-radius:var(--r-pill);background:rgba(var(--ov-rgb),.12);transform:translateX(-50%)}
.film__prog span{display:block;height:100%;border-radius:inherit;background:var(--c-accent);transform:scaleX(0);transform-origin:left center}
.film__dots{position:absolute;left:50%;bottom:24px;display:flex;gap:8px;transform:translateX(-50%)}
.film__dots button{width:10px;height:10px;padding:0;border:0;border-radius:var(--r-pill);background:rgba(var(--t-rgb),.3);cursor:pointer}
.film__dots button[aria-current="true"]{background:var(--c-accent)}

/* ----------------------------------------------------------- Telefon */
.ph{--pw:min(320px,36svh);position:relative;width:var(--pw);aspect-ratio:9/19.3;border-radius:calc(var(--pw) * .165);background:linear-gradient(160deg,#2b2f2d,#0e100f 45%,#1b1e1d);
  box-shadow:0 0 0 1px rgba(255,255,255,.14),0 0 0 2px #0a0b0b,0 40px 70px -24px rgba(0,0,0,.75),0 12px 24px -12px rgba(0,0,0,.5);transform-style:preserve-3d}
.ph__screen{position:absolute;inset:calc(var(--pw) * .028);border-radius:calc(var(--pw) * .138);overflow:hidden;background:#13181a;color:#f2f4f3;font-size:calc(var(--pw) * .042);line-height:1.3;
  font-family:var(--font-body,'Instrument Sans',system-ui,sans-serif);-webkit-font-smoothing:antialiased;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);transform:translateZ(0)}
.ph__island{position:absolute;top:calc(var(--pw) * .032);left:50%;width:calc(var(--pw) * .3);height:calc(var(--pw) * .088);transform:translateX(-50%);border-radius:999px;background:#000;z-index:8}
.ph__status{position:absolute;top:calc(var(--pw) * .046);left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:0 calc(var(--pw) * .085);font-size:.95em;font-weight:600;z-index:7;pointer-events:none}
.ph__time{display:grid}
.ph__time>i{grid-area:1/1;font-style:normal}
.ph__status svg{display:block;height:.9em;width:auto;fill:currentColor}
.ph__status span:last-child{display:flex;align-items:center;gap:.35em}
.ph__home{position:absolute;bottom:calc(var(--pw) * .022);left:50%;width:calc(var(--pw) * .36);height:calc(var(--pw) * .013);transform:translateX(-50%);border-radius:999px;background:rgba(255,255,255,.88);z-index:8}
.ph__glare{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(112deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.03) 32%,transparent 55%,rgba(255,255,255,.04) 100%);pointer-events:none;z-index:9}
.ph__btn{position:absolute;width:calc(var(--pw) * .013);border-radius:3px;background:linear-gradient(180deg,#3a3e3c,#1a1c1b);box-shadow:0 0 0 1px rgba(0,0,0,.6)}
.ph__btn--mute{left:calc(var(--pw) * -.012);top:15%;height:4%}
.ph__btn--vol1{left:calc(var(--pw) * -.012);top:22%;height:7%}
.ph__btn--vol2{left:calc(var(--pw) * -.012);top:31%;height:7%}
.ph__btn--power{right:calc(var(--pw) * -.012);top:25%;height:11%}
.ph__app{position:absolute;inset:0}
.ph__app>.app,.ph__app>.lock{position:absolute;inset:0;display:flex;flex-direction:column}

/* ------------------------------------------------- Zaključan ekran */
.lock{background:radial-gradient(120% 70% at 50% 0%,rgba(235,169,135,.35),transparent 60%),radial-gradient(90% 60% at 80% 100%,rgba(159,179,165,.3),transparent 60%),linear-gradient(180deg,#1c2a27,#0f1514);align-items:center;padding-top:calc(var(--pw) * .2)}
.lock__clock{font-size:5.4em;font-weight:300;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.lock__date{margin-top:.4em;font-size:1.05em;font-weight:500;opacity:.85}
.lock__stack{position:absolute;left:4%;right:4%;top:36%;display:flex;flex-direction:column;gap:.6em}
.notif{display:flex;gap:.7em;padding:.8em .9em;border-radius:1.4em;background:rgba(74,86,86,.78);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 10px 30px -14px rgba(0,0,0,.6)} /* bez backdrop-filter: u 3D rotiranom telefonu Chrome ga crta pogrešno */
.notif__ico{flex:0 0 2.6em;width:2.6em;height:2.6em;border-radius:.7em;display:grid;place-items:center;background:var(--c-accent);color:#1a221f;font-weight:800;font-size:1.1em}
.notif__ico img{width:100%;height:100%;border-radius:inherit}
.notif__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.1em}
.notif__top{display:flex;justify-content:space-between;font-size:.8em;opacity:.7}
.notif b{font-size:.98em;font-weight:700}
.notif small{font-size:.9em;line-height:1.3;opacity:.9}
.notif__act{display:flex;gap:.5em;margin-top:.5em}
.notif__act span{flex:1 1 0;text-align:center;padding:.45em .6em;border-radius:.8em;background:rgba(255,255,255,.14);font-size:.85em;font-weight:600}
.notif__act span.on{background:var(--c-accent);color:#1a221f}
.notif__swap{display:grid}
.notif__swap>i{grid-area:1/1;font-style:normal}
.notif--in{position:absolute;left:.7em;right:.7em;top:.3em;z-index:6;background:#2a3234;box-shadow:0 14px 30px -12px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.1)}
.sheet{z-index:7}
.sheet__t{display:block;font-weight:700;font-size:1.05em;margin-bottom:.2em}
.sheet .bars{padding:.6em 0}
.swap{display:grid}
.swap>span{grid-area:1/1;text-align:right}
.float{position:absolute;left:7.6em;top:3.9em;font-style:normal;font-weight:700;font-size:.95em;color:var(--c-accent);opacity:0}
.sheet .tags{margin:0 0 .9em}
.dev-ico em{font-style:normal;padding:3px 8px;border-radius:999px;background:var(--c-clay);color:var(--c-ink);font-size:11px;font-weight:700;opacity:0}

/* ------------------------------------------------------- Aplikacija */
.app{background:#14191b;padding-top:calc(var(--pw) * .16)}
.app__bar{display:flex;align-items:center;justify-content:space-between;padding:0 1.2em .6em;font-size:1.3em;font-weight:700;letter-spacing:-.02em}
.app__bar small{display:block;font-size:.62em;font-weight:500;opacity:.6;letter-spacing:0}
.app__bar .avatar{flex:0 0 auto;width:1.6em;height:1.6em;font-size:1em}
.app__tabs{display:flex;gap:.4em;padding:0 1.2em .8em;font-size:.9em;font-weight:600}
.app__tabs span{padding:.4em .9em;border-radius:999px;background:rgba(255,255,255,.08);opacity:.75}
.app__tabs span.on{background:var(--c-accent);color:#1a221f;opacity:1}
.app__body{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}
.app__scroll{position:absolute;left:0;right:0;top:0;padding:0 1.2em 2em}
.day{display:grid;grid-template-columns:3.1em minmax(0,1fr);gap:0 .6em}
.day__h{position:relative;height:3.2em;font-size:.85em;color:rgba(255,255,255,.5);font-variant-numeric:tabular-nums;padding-top:.1em}
.day__h::after{content:"";position:absolute;left:3.6em;right:-14em;top:.7em;height:1px;background:rgba(255,255,255,.07)}
.day__c{position:relative;height:3.2em}
.ph-appt{position:absolute;left:0;right:0;top:.35em;height:2.5em;display:flex;flex-direction:column;justify-content:center;padding:0 .8em;border-radius:.8em;background:var(--c-sage);color:#14191b;font-size:.9em;font-weight:600;line-height:1.2}
.ph-appt small{font-size:.8em;font-weight:500;opacity:.8}
.ph-appt--tall{height:5.7em}
.ph-appt--clay{background:var(--c-clay)}
.ph-appt--wheat{background:var(--c-wheat)}
.ph-appt--free{background:rgba(159,179,165,.12);border:1.5px dashed var(--c-sage);color:var(--c-sage)}
.ph-appt--off{background:rgba(255,255,255,.07);color:rgba(255,255,255,.55);text-decoration:line-through}
.app__fab{position:absolute;right:1.1em;bottom:2.2em;width:3.4em;height:3.4em;border-radius:50%;display:grid;place-items:center;background:var(--c-accent);color:#1a221f;font-size:1.1em;font-weight:700;box-shadow:0 10px 24px -8px rgba(235,169,135,.8)}
.app__fab svg{width:1.3em;height:1.3em;stroke:currentColor;stroke-width:2.4;fill:none;stroke-linecap:round}
.app__nav{margin-top:auto;display:flex;justify-content:space-around;padding:.6em 0 2.2em;background:#101415;font-size:.72em;font-weight:600;color:rgba(255,255,255,.5)}
.app__nav span{display:flex;flex-direction:column;align-items:center;gap:.3em}
.app__nav i{width:1.9em;height:1.9em;border-radius:.6em;background:rgba(255,255,255,.1)}
.app__nav span.on{color:var(--c-accent)}
.app__nav span.on i{background:rgba(235,169,135,.25)}
/* list i kartice */
.row{display:flex;align-items:center;gap:.8em;padding:.75em 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:.95em}
.row b{display:block;font-weight:600}
.row small{display:block;font-size:.85em;opacity:.6}
.row .avatar{flex:0 0 auto;width:2.4em;height:2.4em;font-size:1em}
.row__t{flex:1 1 auto;min-width:0}
.row__r{font-variant-numeric:tabular-nums;opacity:.7;font-size:.9em}
.ph-card{border-radius:1.2em;background:#1e2527;padding:1em;display:flex;flex-direction:column;gap:.7em}
.ph-card h4{font-size:1.05em;font-weight:700;letter-spacing:-.01em}
.tags{display:flex;flex-wrap:wrap;gap:.4em}
.tags span{padding:.35em .7em;border-radius:.6em;background:rgba(255,255,255,.1);font-size:.85em;font-weight:600}
.tags span.on{background:rgba(235,169,135,.22);color:var(--c-accent)}
.photo{width:100%;aspect-ratio:16/9;border-radius:.9em;background:linear-gradient(135deg,#c9a08a,#8a6a5a 50%,#4a3a34);position:relative;overflow:hidden}
.photo::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 35% 30%,rgba(255,255,255,.25),transparent 60%)}
.ph-note{padding:.7em .9em;border-radius:.8em;background:rgba(255,255,255,.06);font-size:.9em;line-height:1.4;opacity:.9}
.kpi{display:grid;grid-template-columns:1fr 1fr;gap:.6em;padding:0 1.2em}
.kpi div{padding:.9em 1em;border-radius:1em;background:#1e2527}
.kpi b{display:block;font-size:1.7em;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.kpi small{font-size:.85em;opacity:.6}
.bars{display:flex;flex-direction:column;gap:.6em;padding:1em 1.2em}
.bar{display:grid;grid-template-columns:5.8em minmax(0,1fr) 3em;align-items:center;gap:.6em;font-size:.88em;white-space:nowrap}
.bar>span{height:.6em;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.bar>span i{display:block;height:100%;width:var(--w,50%);border-radius:inherit;background:var(--c-sage);transform-origin:left center}
.bar small{text-align:right;font-variant-numeric:tabular-nums;opacity:.7}
.sheet{position:absolute;left:0;right:0;bottom:0;border-radius:1.4em 1.4em 0 0;background:#1e2527;padding:.8em 1.2em 2.4em;box-shadow:0 -20px 40px -20px rgba(0,0,0,.8)}
.sheet::before{content:"";display:block;width:2.6em;height:.3em;margin:0 auto .8em;border-radius:999px;background:rgba(255,255,255,.2)}
.btn-app{display:flex;align-items:center;justify-content:center;gap:.5em;padding:.85em;border-radius:1em;background:var(--c-accent);color:#1a221f;font-weight:700;font-size:1em}
.btn-app--ghost{background:rgba(255,255,255,.1);color:#fff}
.chip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5em;padding:0 1.2em}
.chip-grid span{padding:.7em 0;border-radius:.8em;text-align:center;background:rgba(255,255,255,.08);font-weight:600;font-variant-numeric:tabular-nums}
.chip-grid span.on{background:var(--c-accent);color:#1a221f}
.chip-grid span.off{opacity:.3;text-decoration:line-through}
.tap{position:absolute;width:2.2em;height:2.2em;border-radius:50%;background:rgba(255,255,255,.85);box-shadow:0 0 0 .4em rgba(255,255,255,.25);opacity:0;pointer-events:none;z-index:9}

/* ----------------------------------------------- Uređaji oko telefona */
.devs{position:absolute;inset:0;pointer-events:none}
.devs svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.devs path{fill:none;stroke:rgba(var(--t-rgb),.25);stroke-width:1.5;stroke-dasharray:4 6}
.dev-ico{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--c-text-3)}
.dev-ico i{display:block;border:2px solid rgba(var(--t-rgb),.5);border-radius:8px;background:rgba(var(--sf-rgb),.3)}
.dev-ico--tablet{left:2%;top:18%}
.dev-ico--tablet i{width:64px;height:48px}
.dev-ico--laptop{right:0;bottom:22%}
.dev-ico--laptop i{width:84px;height:52px;border-radius:8px 8px 2px 2px}
.dev-ico.is-on i{border-color:var(--c-accent);box-shadow:0 0 0 4px rgba(var(--c-accent-rgb),.2)}

/* -------------------------------------------------------- Telefon ≤ 900px */
@media (max-width:900px){
  .film{--step:80vh;--step:80svh}
  .film__pin{padding-top:72px}
  .film__stage{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:8px 16px 32px}
  .film__scene{order:-1;min-height:0}
  .ph{--pw:min(260px,25svh)}
  .chap{max-width:none;gap:8px;text-align:center;align-items:center}
  .chap h3{font-size:clamp(22px,6vw,30px)}
  .chap p{font-size:15px;line-height:1.5}
  .chap__list{justify-content:center}
  .chap__list span{font-size:13px;padding:5px 10px}
  .film__prog{bottom:14px}
  .dev-ico{font-size:0;gap:4px}
  .dev-ico--tablet{left:0;top:38%}
  .dev-ico--tablet i{width:46px;height:34px}
  .dev-ico--laptop{right:0;bottom:26%}
  .dev-ico--laptop i{width:58px;height:36px}
  .dev-ico em{font-size:9px;padding:2px 6px}
}
@media (max-width:900px) and (max-height:640px){
  .chap p{display:none}
}
