/* Seven Story film. Stage is authored at a fixed design size and scaled as one piece:
   wide = 1600 x 900, tall = 900 x 1600. All sizes inside .stage are design pixels. */
:root{
  --base:#F5F0E8;--text:#241C18;--sage:#8C9F9C;--sage-deep:#5b6c66;--taupe:#B7A99A;--gold:#B49A63;--card:#EFE8DC;
  --line:rgba(36,28,24,.14);--soft:#5a504a;
  --top-h:60px;--ctl-h:56px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--base);-webkit-text-size-adjust:100%}
body{background:var(--base);color:var(--text);font-family:'Manrope',system-ui,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
img{display:block}
:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* ---------- page chrome ---------- */
.top{height:var(--top-h);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,3vw,36px)}
.top-logo img{height:30px;width:auto}
.top-close{font-size:13.5px;font-weight:500;padding:8px 2px;display:inline-flex;gap:8px;align-items:center;position:relative}
.top-close span{font-size:20px;line-height:1;font-weight:400}
.top-close::after{content:"";position:absolute;left:2px;right:2px;bottom:5px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.top-close:hover::after,.top-close:focus-visible::after{transform:scaleX(1)}

.player{height:calc(100vh - var(--top-h));height:calc(100svh - var(--top-h));min-height:320px;display:flex;flex-direction:column}
.frame{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}
.stage{position:absolute;left:50%;top:50%;width:1600px;height:900px;transform:translate(-50%,-50%) scale(var(--k,1));transform-origin:50% 50%;background:var(--base);overflow:hidden;cursor:pointer;visibility:hidden}
.stage.ready{visibility:visible}
.stage.tall{width:900px;height:1600px}
.gfx{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}

/* controls */
.controls{flex:none;height:var(--ctl-h);width:100%;max-width:1180px;margin:0 auto;padding:0 clamp(10px,2.4vw,28px);display:flex;align-items:center;gap:6px}
.cbtn{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;transition:background .2s ease}
.cbtn:hover{background:rgba(36,28,24,.07)}
.cbtn svg{width:22px;height:22px;fill:var(--text)}
.cbtn svg.stroke{fill:none;stroke:var(--text);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cbtn .i-play{display:none}
.paused .cbtn .i-play{display:block}.paused .cbtn .i-pause{display:none}
.segs{flex:1 1 auto;display:flex;gap:5px;margin:0 8px 0 6px;min-width:0}
.segs li{flex:1 1 0;min-width:0}
.segs button{display:block;width:100%;height:36px;position:relative;border-radius:3px}
.segs button::before,.segs button i{content:"";position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;border-radius:2px}
.segs button::before{background:rgba(36,28,24,.16);transition:background .2s ease,transform .2s ease}
.segs button i{background:var(--sage-deep);transform-origin:left center;transform:scaleX(0)}
.segs button:hover::before{background:rgba(36,28,24,.3)}
.segs button:hover::before,.segs button:hover i{height:5px;margin-top:-2.5px}
.count{flex:none;font-size:12px;letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--soft);min-width:38px;text-align:right}

/* ---------- stage typography ---------- */
.sc{position:absolute;inset:0;pointer-events:none}
.hl{font-family:'DM Sans',system-ui,sans-serif;font-weight:500;letter-spacing:-.035em;line-height:1.08}
.ac{color:var(--sage-deep)}
.w{display:inline-block;opacity:0;will-change:transform,opacity}
.ch{display:inline-block;white-space:pre}
.pd{display:inline-block;color:transparent}
.bl{display:inline-block;width:0;height:0;vertical-align:baseline}
.tb{display:none}
.tall .tb{display:inline}
.pos{position:absolute;left:0;top:0}
.pos .in{display:block;opacity:0}

/* 1 */
.s1{display:flex;align-items:center;justify-content:center;text-align:center}
.s1 .hl{font-size:108px}
.tall .s1 .hl{font-size:116px}

/* 2 */
.jargon span{position:absolute;left:0;top:0;font:500 40px/1 'DM Sans',sans-serif;letter-spacing:-.01em;color:#9a8a7a;white-space:nowrap;opacity:0}
.tall .jargon span{font-size:40px}
.s2 .hl{position:absolute;left:50%;top:545px;width:1180px;margin-left:-590px;text-align:center;font-size:62px;line-height:1.16;letter-spacing:-.03em}
.s2 .a{display:block;max-width:980px;margin:0 auto}
.s2 .b{display:block;color:var(--sage-deep);white-space:nowrap}
.s2 .b .ch{opacity:0}
.tall .s2 .hl{top:900px;width:780px;margin-left:-390px;font-size:76px}

/* 3 */
.s3{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.s3 .hl{font-size:112px}
.s3 .l2{overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.s3 .rise{display:block}
.tall .s3 .hl{font-size:112px}

/* 4 */
.s4 .centre .in{width:220px;margin-left:-110px;text-align:center;transform:translateY(-50%);font:500 34px/1.12 'DM Sans',sans-serif;letter-spacing:-.02em;color:var(--base)}
.s4 .qs .in{font:500 31px/1 'DM Sans',sans-serif;letter-spacing:-.015em;white-space:nowrap;transform:translate(-50%,-50%)}
.s4 .ask{position:absolute;left:984px;top:50%;transform:translateY(-50%);width:580px;font-size:78px}
.tall .s4 .centre .in{font-size:38px;width:240px;margin-left:-120px}
.tall .s4 .qs .in{font-size:35px}
.tall .s4 .ask{left:60px;width:780px;top:1050px;transform:none;text-align:center;font-size:98px}

/* 5 */
.s5 .ph .in{font-size:82px;text-align:center;white-space:nowrap;line-height:1.06}
.s5 .ph{transform:translate(-50%,-100%)}
.tall .s5 .ph{transform:translate(0,-50%)}
.tall .s5 .ph .in{font-size:98px;text-align:left}

/* 6 */
.eyebrow{display:flex;align-items:center;gap:16px;font:500 22px/1 'Manrope',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.eyebrow i{display:block;width:56px;height:2px;background:var(--gold);transform-origin:left center}
.s6 .eyebrow{position:absolute;left:130px;top:332px;opacity:0}
.s6 .hl{position:absolute;left:130px;top:392px;font-size:84px;white-space:nowrap}
.tall .s6 .eyebrow{left:0;right:0;top:1010px;justify-content:center;font-size:27px}
.tall .s6 .hl{left:0;right:0;top:1076px;text-align:center;font-size:102px}

/* 7 */
.s7{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-bottom:10px}
.s7 .logo-wrap{opacity:0}
.s7 .logo{height:78px;width:auto}
.s7 .rule{display:block;width:72px;height:2px;background:var(--gold);margin:34px 0 44px;transform:scaleX(0)}
.s7 .hl{font-size:106px}
.s7 .cta{font:400 44px/1.3 'Manrope',sans-serif;letter-spacing:-.01em;margin-top:40px;opacity:0;color:var(--text)}
.s7 .act{margin-top:44px;opacity:0}
.btn{display:inline-flex;align-items:center;gap:.7em;background:var(--text);color:var(--base);border:1px solid var(--text);font:500 28px/1.2 'Manrope',sans-serif;padding:.82em 1.3em;border-radius:.2em;white-space:nowrap;pointer-events:auto;transition:background .2s ease}
.btn span{display:inline-block;transition:transform .25s ease}
.btn:hover{background:#3a2f29}
.btn:hover span,.btn:focus-visible span{transform:translate(2px,-2px)}
.stage :focus-visible{outline-width:4px;outline-offset:6px}
.s7 .again-row{margin-top:26px;height:40px;opacity:0}
.again{font:500 22px/1 'Manrope',sans-serif;letter-spacing:.02em;color:var(--soft);padding:8px 4px;border-bottom:2px solid var(--gold);pointer-events:auto}
.again:hover{color:var(--text)}
.tall .s7 .logo{height:100px}
.tall .s7 .rule{width:90px;margin:50px 0 64px}
.tall .s7 .hl{font-size:114px}
.tall .s7 .cta{font-size:52px;margin-top:64px}
.tall .s7 .act{margin-top:64px}
.tall .s7 .btn{font-size:42px}
.tall .s7 .again-row{margin-top:44px;height:60px}
.tall .s7 .again{font-size:34px}

/* ---------- storyboard (reduced motion and no script) ---------- */
.storyboard{max-width:1180px;margin:0 auto;padding:clamp(18px,4vw,44px) clamp(16px,3vw,36px) 40px}
.sb-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-bottom:26px}
.storyboard .eyebrow{font-size:11.5px;gap:12px}
.storyboard .eyebrow i{width:34px;height:1px}
.sb-play{font-size:13.5px;font-weight:500;padding:10px 16px;border:1px solid rgba(36,28,24,.35);border-radius:3px;transition:background .2s ease,color .2s ease}
.sb-play:hover{background:var(--text);color:var(--base)}
html:not(.js) .sb-play{display:none}
.frames{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.fr{position:relative;background:var(--card);border:1px solid var(--line);border-radius:6px;aspect-ratio:16/10;padding:58px 30px 30px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.fr .n{position:absolute;left:30px;top:20px;font-size:12px;letter-spacing:.1em;color:var(--soft)}
.fr .n::after{content:"";display:inline-block;width:22px;height:1px;background:var(--gold);vertical-align:middle;margin-left:10px}
.fr .hl{font-size:clamp(27px,2.6vw,34px);letter-spacing:-.03em;line-height:1.12;text-wrap:balance}
.fr .hl.md{font-size:clamp(22px,2vw,26px);line-height:1.2}
.fr .tag{display:flex;align-items:center;gap:10px;font:500 15px/1.2 'DM Sans',sans-serif}
.fr .tag b{width:12px;height:12px;border-radius:50%;background:var(--sage-deep)}
.fr .chips{display:flex;flex-wrap:wrap;gap:6px 8px}
.fr .chips li{font-size:12.5px;padding:3px 10px;border:1px solid rgba(36,28,24,.22);border-radius:99px}
.fr .steps span{display:block;padding-left:18px;border-left:2px solid var(--gold)}
.fr .steps span+span{margin-top:0;padding-top:8px}
.fr .small{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.fr .logo{height:34px;width:auto;margin-bottom:6px}
.fr .cta{font-size:16px}
.fr .btn{font-size:14px;border-radius:3px;padding:12px 17px}
.fr.last{background:#F4EFE9;grid-column:1/-1;aspect-ratio:auto;align-items:center;text-align:center;padding:56px 30px 44px}

/* ---------- transcript ---------- */
.transcript{max-width:820px;margin:0 auto;padding:10px clamp(16px,3vw,36px) 56px}
.transcript summary{cursor:pointer;font-size:13.5px;font-weight:500;padding:12px 2px;display:inline-flex;align-items:center;gap:10px;list-style:none}
.transcript summary::-webkit-details-marker{display:none}
.transcript summary::before{content:"";width:22px;height:1px;background:var(--gold)}
.transcript summary::after{content:"+";font-size:17px;line-height:1;font-weight:400}
.transcript[open] summary::after{content:"\2212"}
.tx{padding:8px 0 0;font-size:15.5px;color:#3a302b}
.tx ol{list-style:decimal;padding-left:22px;margin-top:12px}
.tx li{margin-bottom:10px;padding-left:4px}
.tx a{border-bottom:1px solid var(--gold)}

/* ---------- modes ---------- */
html.js:not(.still) .storyboard{display:none}
html.still .player,html:not(.js) .player{display:none}
html.still .transcript,html:not(.js) .transcript{padding-top:0}

html.embed,html.embed body{height:100%;overflow:hidden}
html.embed .top,html.embed .transcript{display:none}
html.embed .player{height:100vh;height:100dvh;min-height:0}
html.embed{--ctl-h:46px}
html.embed .cbtn{width:36px;height:36px}
html.embed .segs button{height:32px}
html.embed.still,html.embed.still body{overflow:auto;height:auto}

@media (max-width:560px){
  :root{--top-h:52px;--ctl-h:52px}
  .top-logo img{height:25px}
  .count{display:none}
  .segs{gap:4px;margin-right:4px}
  .frames{grid-template-columns:1fr}
  .fr{aspect-ratio:auto;min-height:210px}
}
@media (max-height:420px){:root{--top-h:44px;--ctl-h:44px}.cbtn{width:34px;height:34px}.segs button{height:30px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
