:root{
  --rice:#F1EADB; --rice-2:#E4D9C3; --nori:#10140E; --nori-2:#1B2218; --ink:#2D2926;
  --ver:#F9423A; --salmon:#F5875A; --wasabi:#B3C93C; --gold:#D9A84B;
  --display:"Dela Gothic One", "Arial Black", system-ui, sans-serif;
  --serif:"Cormorant Garamond", Georgia, serif;
  --mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;
  --type:"PT Mono", "Courier New", monospace;
  --hand:"Caveat", "Comic Sans MS", cursive;
}
*{box-sizing:border-box}
html{scrollbar-width:none;background:#000}
html::-webkit-scrollbar{display:none}
body{margin:0;background:#000;color:var(--ink);overscroll-behavior:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
@media (pointer:fine){ body, a, button, [role=button]{cursor:none} }
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;padding:0}
.display{font-family:var(--display);font-weight:400}
.serif{font-family:var(--serif)}
.mono{font-family:var(--mono)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

#track{width:1px}
#film{position:fixed;inset:0;overflow:hidden;background:#000;transform-origin:50% 50%;will-change:transform}
#stage{position:absolute;inset:0}
.scene{position:absolute;inset:0;overflow:hidden;visibility:hidden}
.scene.on{visibility:visible}
#gl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;display:block}

/* ---------- overlays ---------- */
#iris{position:fixed;left:50%;top:50%;pointer-events:none;z-index:8;display:none;--logo-ink:var(--ink)}
#iris svg{width:100%;height:100%;display:block;filter:drop-shadow(0 0 2vmin rgba(0,0,0,.35))}
#burn{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9;display:none;filter:blur(1.2px) saturate(1.2)}
#dim{position:fixed;inset:0;background:#000;pointer-events:none;z-index:9;opacity:0}
#flash{position:fixed;inset:0;background:#fff8ea;pointer-events:none;z-index:9;opacity:0;mix-blend-mode:screen}
#grain{position:fixed;inset:-50%;pointer-events:none;z-index:12;opacity:.11;mix-blend-mode:overlay;animation:grain .9s steps(1) infinite}
@keyframes grain{
  0%{transform:translate(0,0)} 12%{transform:translate(-7%,4%)} 25%{transform:translate(5%,-9%)} 37%{transform:translate(-11%,-3%)}
  50%{transform:translate(9%,7%)} 62%{transform:translate(-4%,11%)} 75%{transform:translate(12%,-5%)} 87%{transform:translate(-9%,9%)}
}
#scratch{position:fixed;top:0;bottom:0;width:1px;background:rgba(255,255,255,.35);pointer-events:none;z-index:11;opacity:0}

/* ---------- leader ---------- */
#leader{position:fixed;inset:0;z-index:40;background:#1a1914}
#leader canvas{width:100%;height:100%;display:block}
#leader-skip{position:absolute;right:20px;bottom:20px;color:#cfc7b4;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.7;padding:10px}
#leader.gone{display:none}
#leader:not(.run) #leader-skip{display:none}
#gate{position:absolute;inset:0;display:grid;place-items:center;background:rgba(16,15,12,.74);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:16px}
#leader.run #gate{display:none}
.gate-in{text-align:center;color:var(--rice)}
.gate-logo{height:clamp(54px,9vw,104px);margin:0 auto 34px;width:max-content;--logo-ink:var(--rice);--logo-acc:var(--ver)}
.gate-logo .logo{height:100%;width:auto}
.gate-in p{font-size:11px;letter-spacing:.3em;text-transform:uppercase;opacity:.7;margin:0 0 24px}
#gate-go{font-size:clamp(26px,4.2vw,54px);padding:20px 44px 22px;border:2px solid var(--rice);border-radius:80px;color:var(--rice);transition:background .25s,border-color .25s}
#gate-go:hover,#gate-go:focus-visible{background:var(--ver);border-color:var(--ver);outline:none}
#gate-mute{display:block;margin:22px auto 0;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.65;text-decoration:underline;text-underline-offset:4px;color:var(--rice)}
.gate-in .gate-note{margin:30px 0 0;opacity:.4;font-size:10px}

/* ---------- HUD ---------- */
#hud{position:fixed;left:0;right:0;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 64px;color:#fff;mix-blend-mode:difference;pointer-events:none}
#hud a,#hud button{pointer-events:auto}
/* логотип бренда: цвета меняются по сцене */
.logo,.logo-mark{display:block}
.lg-ink{fill:var(--logo-ink,#2D2926)} .lg-acc{fill:var(--logo-acc,#F9423A)}
#brand{position:fixed;left:64px;top:13px;z-index:21;height:24px;display:block;transition:opacity .35s;--logo-ink:var(--ink);--logo-acc:var(--ver)}
#brand .logo{height:100%;width:auto}
body[data-theme=dark] #brand{--logo-ink:var(--rice)}
body[data-theme=red] #brand{--logo-ink:var(--rice);--logo-acc:var(--ink)}
body.hero #brand{opacity:0;pointer-events:none}
.hud-scene{position:absolute;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.24em;display:flex;align-items:center;gap:10px;text-transform:uppercase}
.rec{width:8px;height:8px;border-radius:50%;background:#fff;animation:rec 1.2s steps(2) infinite}
@keyframes rec{50%{opacity:.15}}
.hud-right{display:flex;gap:18px;align-items:center;margin-left:auto}
.hud-right button,.hud-right a{font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:6px 0;white-space:nowrap}
.hud-buy{border:1px solid #fff;padding:7px 12px !important;border-radius:30px}

/* ---------- timeline ---------- */
#tl{position:fixed;left:12px;right:12px;bottom:12px;height:56px;z-index:20;display:grid;grid-template-columns:34px 1fr 150px;background:rgba(16,16,14,.86);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.09);border-radius:6px;color:#cfcac0;font-size:10px}
.tl-lab{display:flex;flex-direction:column;justify-content:center;gap:9px;padding-left:10px;opacity:.5;letter-spacing:.1em}
.tl-tracks{position:relative;padding:6px 0}
.tl-v{display:flex;height:24px;gap:2px}
.tl-clip{flex:var(--w) 1 0;min-width:0;background:var(--c);color:#14120f;border-radius:2px;padding:0 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:24px;font:500 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;opacity:.78;transition:opacity .2s}
.tl-clip:hover,.tl-clip.cur{opacity:1}
.tl-a{display:block;width:100%;height:14px;margin-top:4px}
.tl-head{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--ver);left:0;pointer-events:none;will-change:transform}
.tl-head::before{content:"";position:absolute;top:-1px;left:-5px;border:5px solid transparent;border-top:7px solid var(--ver)}
.tl-tc{display:flex;flex-direction:column;justify-content:center;padding:0 12px;border-left:1px solid rgba(255,255,255,.08)}
.tl-tc b{font:500 15px var(--mono);color:#fff;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.tl-tc span{opacity:.45;margin-top:2px;letter-spacing:.06em}

/* ---------- cursor ---------- */
#cursor{position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;z-index:50;pointer-events:none;transition:width .25s,height .25s,margin .25s;mix-blend-mode:difference}
#cursor i{position:absolute;width:9px;height:9px;border:1.5px solid #fff}
#cursor i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}
#cursor i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
#cursor i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}
#cursor i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
#cursor::after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;background:#fff;border-radius:50%}
#cursor.big{width:64px;height:64px;margin:-32px 0 0 -32px}
#cursor span{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap;font:500 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#fff}
@media (pointer:coarse){#cursor{display:none}}

/* ---------- rewind ---------- */
#rewind{position:fixed;inset:0;z-index:30;pointer-events:none;display:none;
  background:repeating-linear-gradient(0deg, rgba(0,0,0,.25) 0 2px, transparent 2px 4px);}
#rewind b{position:absolute;left:28px;top:60px;color:#fff;font-size:26px;letter-spacing:.06em;text-shadow:2px 0 #f0f,-2px 0 #0ff;animation:rec .8s steps(2) infinite}
body.rewinding #rewind{display:block}
body.rewinding #film{filter:saturate(1.6) contrast(1.15) hue-rotate(-8deg)}

/* =========================================================
   1. ТИТР
   ========================================================= */
#s-title{background:var(--title-bg,var(--rice));color:var(--ink)}
#s-title::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 3px,rgba(0,0,0,.018) 3px 4px)}
.edge{position:absolute;top:0;bottom:0;width:44px;display:flex;flex-direction:column;justify-content:space-around;align-items:center;
  background:var(--ink);color:var(--rice);font:500 9px var(--mono);letter-spacing:.2em}
.edge::before,.edge::after{content:"";position:absolute;top:0;bottom:0;width:10px;
  background:repeating-linear-gradient(180deg,transparent 0 9px,var(--rice) 9px 21px,transparent 21px 30px);border-radius:3px}
.edge::before{left:5px}.edge::after{right:5px}
.edge span{writing-mode:vertical-rl;opacity:.75}
.edge-l{left:0}.edge-r{right:0}
.t-top{position:absolute;top:74px;left:80px;right:80px;display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:12px}
.wordmark{--hw:min(82vw,1460px);position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);margin:0;height:calc(var(--hw) * .267);display:flex;perspective:900px;
  --logo-ink:var(--ink);--logo-acc:var(--ver)}
.lp{height:100%;display:block;transform-origin:50% 92%;backface-visibility:hidden;will-change:transform}
.lp svg{height:100%;width:auto;display:block;overflow:visible}
.lp-spin{transform-box:fill-box;transform-origin:50% 50%}
.hanko{position:absolute;top:calc(46% - min(82vw,1460px) * .1335 - 74px);right:calc(50% - min(82vw,1460px) / 2 - 6px);width:74px;padding:9px 0 8px;background:var(--ver);color:var(--rice);display:flex;flex-direction:column;align-items:center;font-family:var(--display);line-height:1;border-radius:6px;transform:rotate(-6deg);box-shadow:inset 0 0 0 3px var(--ver),inset 0 0 0 5px var(--rice)}
.hanko b{font-weight:400;font-size:12px}
.hanko b:nth-child(2){font-size:30px;margin:3px 0}
.t-sub{position:absolute;left:80px;bottom:17vh;margin:0;font:italic 500 clamp(22px,2.5vw,40px)/1.05 var(--serif);max-width:24ch}
.t-meta{position:absolute;right:80px;bottom:17vh;margin:0;font-size:11px;line-height:1.45;width:330px;border-top:1px solid currentColor}
.t-meta div{display:grid;grid-template-columns:88px 1fr;padding:7px 0;border-bottom:1px solid rgba(45,41,38,.22)}
.t-meta dt{letter-spacing:.18em;text-transform:uppercase;opacity:.55}
.t-meta dd{margin:0}
.t-hint{position:absolute;left:50%;bottom:92px;transform:translateX(-50%);font-size:10px;letter-spacing:.24em;text-transform:uppercase;display:flex;align-items:center;gap:10px;white-space:nowrap}
.t-hint i{width:14px;height:22px;border:1.5px solid currentColor;border-radius:8px;position:relative}
.t-hint i::after{content:"";position:absolute;left:50%;top:4px;width:2px;height:5px;margin-left:-1px;background:currentColor;animation:wheel 1.4s infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}100%{transform:translateY(8px);opacity:0}}
.roll-block{transform-origin:50% 100%;backface-visibility:hidden}
.t-type{position:absolute;left:0;right:0;bottom:19vh;text-align:center;font:500 clamp(13px,1.3vw,18px) var(--type);letter-spacing:.34em;text-transform:uppercase;color:var(--ink);min-height:1.2em}
.t-type::after{content:"▌";animation:rec .7s steps(2) infinite;margin-left:2px}

/* =========================================================
   2. В РОЛЯХ:
   ========================================================= */
#s-cast{color:var(--rice);
  background:
    radial-gradient(ellipse 34% 22% at 70% 80%, rgba(255,214,160,.13), transparent 70%),
    radial-gradient(ellipse 70% 90% at 70% 30%, #1d2619 0%, var(--nori) 70%);}
.pelmet{position:absolute;left:0;right:0;top:0;height:9vh;min-height:58px;
  background:
    repeating-linear-gradient(90deg, rgba(0,0,0,.28) 0 5px, transparent 5px 26px, rgba(255,255,255,.05) 26px 30px, transparent 30px 44px),
    linear-gradient(#7d140a, #c22e14 70%, #9a1f0d);
  -webkit-mask:radial-gradient(22px 16px at 22px 0, #000 98%, transparent) 0 100%/44px 16px repeat-x, linear-gradient(#000,#000) 0 0/100% calc(100% - 15px) no-repeat;
  mask:radial-gradient(22px 16px at 22px 0, #000 98%, transparent) 0 100%/44px 16px repeat-x, linear-gradient(#000,#000) 0 0/100% calc(100% - 15px) no-repeat;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.5))}
.c-head{position:absolute;top:calc(9vh + 26px);left:5vw;right:5vw;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.24em;text-transform:uppercase;opacity:.75}
.c-brand{height:17px;--logo-ink:var(--rice);--logo-acc:var(--ver)}
.c-brand .logo{height:100%;width:auto}
.c-count b{color:var(--salmon);font-weight:500}
.c-left{position:absolute;left:5vw;top:calc(9vh + 76px);width:min(54vw,820px)}
.c-name{font-size:110px;line-height:1.12;white-space:nowrap;color:var(--rice);height:1.12em}
.c-name .rl{display:inline-block;height:1.12em;overflow:hidden;vertical-align:top}
.c-name .strip{display:flex;flex-direction:column;will-change:transform}
.c-name .strip span{height:1.12em;line-height:1.12em;display:block;overflow:hidden}
.c-as{font:italic 500 clamp(18px,1.7vw,26px)/1 var(--serif);opacity:.6;margin:.3em 0 .15em}
.c-role{font:italic 600 clamp(34px,4.4vw,72px)/1 var(--serif);color:var(--salmon);min-height:1em}
.c-role.wipe{animation:wipe .7s cubic-bezier(.7,0,.2,1)}
@keyframes wipe{0%{clip-path:inset(0 100% 0 0)}100%{clip-path:inset(0 0 0 0)}}
.c-card{margin:5vh 0 0;display:grid;grid-template-columns:auto 1fr;max-width:520px;font-size:12px;line-height:1.45;border-top:1px solid rgba(241,234,219,.28)}
.c-card dt,.c-card dd{padding:9px 0;border-bottom:1px solid rgba(241,234,219,.14)}
.c-card dt{letter-spacing:.16em;text-transform:uppercase;opacity:.5;padding-right:26px;font-size:10px;padding-top:11px}
.c-card dd{margin:0}
.c-card-h{grid-column:1/-1;font-size:10px;letter-spacing:.3em;opacity:.45;padding:10px 0 4px}
.c-quote{position:absolute;right:5vw;bottom:110px;margin:0;max-width:24ch;text-align:right;font:italic 500 clamp(18px,1.8vw,28px)/1.15 var(--serif);color:var(--rice)}
.c-quote::before{content:"";display:block;width:40px;height:1px;background:var(--salmon);margin:0 0 12px auto}
.clapper{position:absolute;right:5vw;top:calc(9vh + 64px);width:210px;transform:rotate(4deg);filter:drop-shadow(0 12px 16px rgba(0,0,0,.5))}
.clap-stick{height:26px;border-radius:3px 3px 0 0;transform-origin:4px 100%;transform:rotate(-24deg);
  background:repeating-linear-gradient(-55deg,#111 0 16px,#f1eadb 16px 32px)}
.clapper.snap .clap-stick{animation:snap .42s cubic-bezier(.6,0,.9,.4) forwards}
@keyframes snap{0%{transform:rotate(-30deg)}70%{transform:rotate(0)}82%{transform:rotate(-3deg)}100%{transform:rotate(0)}}
.clapper.shut .clap-stick{transform:rotate(0)}
.clap-board{background:#151714;border:2px solid #2a2d28;border-top:0;padding:8px 10px 10px;font:500 9px var(--mono);color:var(--rice);letter-spacing:.1em;text-transform:uppercase;
  background-image:linear-gradient(0deg,transparent 0 0);position:relative}
.clap-board::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(-55deg,#111 0 16px,#f1eadb 16px 32px);opacity:.9}
.cb-row{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(241,234,219,.25);padding:6px 0 4px}
.cb-row:last-child{border:0}
.cb-film{margin-top:10px}
.cb-film b{height:15px;--logo-ink:var(--rice);--logo-acc:var(--rice)}
.cb-film .logo{height:100%;width:auto}
.cb-row b{color:var(--rice);font-weight:500}
.cb-3 span,.cb-2 span{display:flex;flex-direction:column;gap:2px;opacity:.85}
.cb-3 b{font:400 22px var(--display);color:var(--salmon)}
.cb-2 b{font:italic 600 16px var(--serif);text-transform:none;letter-spacing:0}
.c-strip{position:absolute;right:16px;top:50%;transform:translateY(-50%);list-style:none;margin:0;padding:8px 6px;display:flex;flex-direction:column;gap:6px;
  background:#070806;border-radius:3px;border-left:6px dotted #2a2d28;border-right:6px dotted #2a2d28}
.c-strip li{writing-mode:vertical-rl;transform:rotate(180deg);font-size:9px;letter-spacing:.2em;text-transform:uppercase;padding:10px 4px;background:#1a1d18;color:rgba(241,234,219,.5);cursor:pointer;border-radius:2px;transition:background .3s,color .3s}
.c-strip li.cur{background:var(--salmon);color:#1b0d06}

/* =========================================================
   3. СЦЕНАРИЙ
   ========================================================= */
#s-script{background:
  radial-gradient(ellipse 44% 70% at 50% 18%, rgba(255,196,128,.20), transparent 70%),
  linear-gradient(#17130f,#0b0907);color:var(--rice)}
.sc-vert{position:absolute;left:2.4vw;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;font-size:min(11vh,7vw);line-height:1;color:var(--ver);letter-spacing:.02em;opacity:.95}
.sc-beats{position:absolute;right:4vw;top:50%;transform:translateY(-50%);width:200px;font-size:11px;letter-spacing:.06em}
.sc-beats-h,.sc-beats-f{margin:0;text-transform:uppercase;letter-spacing:.2em;opacity:.55;font-size:10px}
.sc-beats-f{margin-top:24px;line-height:1.6}
.sc-beats-f b{font:400 22px var(--display);letter-spacing:0;opacity:1;color:var(--rice);text-transform:none}
.sc-beats ol{margin:16px 0 0;padding:0;list-style:none;counter-reset:b;border-left:1px solid rgba(241,234,219,.2)}
.sc-beats li{counter-increment:b;padding:7px 0 7px 16px;position:relative;opacity:.4;transition:opacity .3s,color .3s}
.sc-beats li::before{content:counter(b);position:absolute;left:-4px;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:#0b0907;border:1px solid rgba(241,234,219,.4);font-size:0}
.sc-beats li.cur{opacity:1;color:var(--wasabi)}
.sc-beats li.cur::before{background:var(--wasabi);border-color:var(--wasabi)}
.sc-beats li.done{opacity:.75}
.sc-desk{position:absolute;inset:0;perspective:1500px;perspective-origin:50% 0%}
.page{position:absolute;left:50%;top:0;width:min(620px,86vw);transform-origin:50% 0;
  transform:translateX(-50%) rotateX(16deg) translateY(var(--py,60vh));
  background:#f7f2e6;color:#1d1a16;padding:70px 64px 140px 86px;font:14.5px/1.6 var(--type);
  box-shadow:0 40px 80px rgba(0,0,0,.6),0 0 0 1px rgba(0,0,0,.05);
  background-image:linear-gradient(90deg,transparent 52px,rgba(249,66,58,.25) 52px 53px,transparent 53px),
    radial-gradient(circle at 26px 120px,#0b0907 7px,transparent 8px),radial-gradient(circle at 26px 50%,#0b0907 7px,transparent 8px),radial-gradient(circle at 26px calc(100% - 120px),#0b0907 7px,transparent 8px)}
.pg-title{text-align:center;margin-bottom:56px}
.pg-big{font:400 34px var(--display);margin:12px 0;letter-spacing:.02em}
.pg-small{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
.ln{position:relative;margin:0 0 2px}
.ln .hl{background:linear-gradient(transparent 52%, rgba(179,201,60,.62) 52%, rgba(179,201,60,.62) 94%, transparent 94%) no-repeat 0 0/calc(var(--hl,0)*100%) 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.slug{margin-top:30px;font-weight:700;letter-spacing:.02em}
.slug .num{position:absolute;left:-40px;opacity:.5}
.act{margin:12px 0}
.chr{margin:14px 0 0 38%}
.par{margin-left:30%}
.dia{margin:0 18% 4px 22%}
.trn{text-align:right;margin-top:24px;font-weight:700}
.note{position:absolute;top:-4px;width:190px;font:700 25px/0.95 var(--hand);color:var(--ver);transform:rotate(-5deg);pointer-events:none}
.n-r{left:calc(100% + 80px)}
.n-l{right:calc(100% + 100px);text-align:right;transform:rotate(4deg)}
.circ{position:relative;display:inline-block;white-space:nowrap;margin-top:6px}
.circ svg{position:absolute;left:-14px;top:-12px;width:calc(100% + 28px);height:calc(100% + 22px);overflow:visible}
.circ path{fill:none;stroke:var(--ver);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:520;stroke-dashoffset:calc(520 - var(--draw,0)*520)}

/* =========================================================
   4. РЕЦЕНЗИИ
   ========================================================= */
#s-critics{background:var(--ver);color:var(--rice)}
.sun{position:absolute;left:50%;top:48%;width:260vmax;height:260vmax;margin:-130vmax 0 0 -130vmax;
  background:repeating-conic-gradient(from 0deg, rgba(255,240,220,.10) 0 5deg, transparent 5deg 10deg);transform:rotate(var(--sun,0deg))}
.cr-head{position:absolute;left:5vw;top:calc(60px + 4vh)}
.cr-head span{font-size:11px;letter-spacing:.24em;text-transform:uppercase;opacity:.8}
.cr-head h2{margin:10px 0 0;font-size:clamp(30px,3.6vw,56px);line-height:.95;letter-spacing:-.01em}
.marquee{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:min(880px,74vw)}
.mq-frame{position:relative;padding:32px;background:#16110d;border-radius:10px;box-shadow:0 30px 60px rgba(70,10,0,.45),inset 0 0 0 3px #2c221a}
.bulbs{position:absolute;inset:0;pointer-events:none}
.bulbs i{position:absolute;width:11px;height:11px;margin:-5.5px;border-radius:50%;background:#5b3b22;box-shadow:inset 0 -2px 2px rgba(0,0,0,.4)}
.bulbs i.on{background:#fff7dc;box-shadow:0 0 10px 3px rgba(255,214,140,.9),0 0 24px 6px rgba(255,170,80,.35)}
.board{container-type:inline-size;display:grid;grid-template-columns:repeat(var(--cols,16),1fr);gap:5px;padding:14px;background:#fbf6e8;border-radius:3px;perspective:600px;
  background-image:repeating-linear-gradient(180deg,transparent 0 calc(100%/3 - 2px),rgba(0,0,0,.12) calc(100%/3 - 2px) calc(100%/3));
  box-shadow:inset 0 0 40px rgba(255,200,120,.35)}
.tile{aspect-ratio:.74;display:grid;place-items:center;font:400 calc(100cqw / var(--cols,16) * .62)/1 var(--display);color:#141210;transform-style:preserve-3d;backface-visibility:hidden}
.tile:not(:empty){background:linear-gradient(#fffdf6,#ece5d3);box-shadow:0 1px 0 rgba(0,0,0,.18)}
.mq-cap{margin-top:14px;text-align:center;font-size:10px;letter-spacing:.3em;text-transform:uppercase;opacity:.85}
.cr-by{position:absolute;left:50%;top:calc(48% + min(880px,74vw)*0.215 + 40px);transform:translateX(-50%);text-align:center;font:italic 500 clamp(18px,1.8vw,28px)/1.1 var(--serif);white-space:nowrap}
.cr-by::before{content:"— "}
.stamp{position:absolute;right:6vw;top:calc(60px + 3vh);width:170px;height:170px;display:grid;place-items:center;color:var(--rice);text-align:center}
.stamp svg{position:absolute;inset:0;transform:rotate(var(--st,0deg))}
.stamp text{font:500 13.5px var(--mono);letter-spacing:.18em;fill:currentColor}
.stamp b{font:400 40px var(--display);line-height:1;margin-top:-8px}
.stamp span{position:absolute;top:58%;font:italic 600 18px var(--serif)}
.stamp::before{content:"";position:absolute;inset:30px;border:1.5px solid currentColor;border-radius:50%}
.award-cap{position:absolute;left:5vw;bottom:110px;font-size:11px;line-height:1.6;letter-spacing:.04em;max-width:300px}
.award-cap em{font:italic 600 17px var(--serif);letter-spacing:0;display:inline-block;margin-top:6px}

/* =========================================================
   5. КАССА
   ========================================================= */
#s-ticket{background:var(--rice);color:var(--ink);
  background-image:radial-gradient(rgba(45,41,38,.11) 1px, transparent 1.4px);background-size:7px 7px}
.tk-word{position:absolute;left:1.6vw;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;font-size:min(17vh,10vw);line-height:.9;color:var(--ver)}
.tk-machine{position:absolute;left:50%;top:14vh;transform:translateX(-50%);width:min(980px,78vw)}
.tk-note{position:relative;margin:-44px 0 0 auto;width:max-content;padding-right:210px;font:700 28px/0.95 var(--hand);color:var(--ver);transform:rotate(-3deg);text-align:right;opacity:0;transition:opacity .3s}
.tk-note svg{position:absolute;right:150px;top:-26px;width:60px;height:46px;overflow:visible}
.tk-note path{fill:none;stroke:var(--ver);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.tk-machine.ready .tk-note{opacity:1}
.tk-slot{height:16px;background:#141210;border-radius:10px;box-shadow:inset 0 4px 6px #000,0 1px 0 #fff;position:relative;z-index:2}
.tk-slot span{position:absolute;right:14px;top:-22px;font-size:9px;letter-spacing:.24em;text-transform:uppercase;opacity:.6}
.tk-clip{position:relative;margin:-8px 12px 0;overflow:hidden;padding:0 20px 60px;margin-left:-8px;margin-right:-8px}
.tk-clip.printed{overflow:visible}
.ticket{position:relative;display:flex;transform:translateY(var(--print,-100%));filter:drop-shadow(0 18px 20px rgba(60,30,10,.25))}
.tk-body{flex:1;min-width:0;padding:32px 40px 30px;color:var(--ink);border-radius:0 0 0 10px;
  background:
    repeating-radial-gradient(circle at 0 100%, transparent 0 9px, rgba(249,66,58,.09) 9px 10px),
    repeating-radial-gradient(circle at 100% 0, transparent 0 13px, rgba(249,66,58,.07) 13px 14px),
    #f9ecd0}
.tk-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.24em;border-bottom:1.5px solid currentColor;padding-bottom:8px}
.tk-title{height:clamp(40px,6vw,92px);margin:20px 0 10px;--logo-ink:var(--ink);--logo-acc:var(--ver)}
.tk-title .logo{height:100%;width:auto}
.tk-sub{font:italic 600 20px var(--serif);margin-bottom:18px}
.tk-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1.5px solid currentColor}
.tk-grid div{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid rgba(45,41,38,.25)}
.tk-grid span{font-size:9px;letter-spacing:.22em;text-transform:uppercase;opacity:.7}
.tk-grid b{font:600 italic 22px var(--serif);color:var(--ink)}
.tk-perf{width:0;border-left:3px dotted rgba(45,41,38,.55);margin:10px 0}
.tk-stub{width:190px;flex:none;padding:26px 18px 20px;background:#f9ecd0;color:var(--ink);border-radius:0 0 10px 0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;
  transform-origin:0 0;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;position:relative;z-index:3}
.tk-stub:active{cursor:grabbing}
.tk-stub-h{font-size:10px;letter-spacing:.3em;text-transform:uppercase}
.tk-stub-f{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ver);animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{50%{transform:translateX(5px)}}
.tk-barcode{display:flex;gap:2px;height:150px;width:100%;justify-content:center;margin:12px 0}
.tk-barcode i{background:#2D2926;display:block}
.tk-stub.torn{animation:fall 1.3s cubic-bezier(.4,0,.8,.6) forwards;pointer-events:none}
@keyframes fall{to{transform:translate(var(--fx,80px),110vh) rotate(var(--fr,38deg))}}
.tk-go{position:absolute;right:0;top:0;bottom:0;width:190px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;text-decoration:none;color:var(--rice);background:var(--ver);border-radius:0 0 10px 0;z-index:1;
  clip-path:inset(0 0 0 0);text-align:center;padding:10px}
.tk-go span{font-size:10px;letter-spacing:.22em;text-transform:uppercase}
.tk-go b{font-size:22px}
.tk-go{transform:scale(0)}
.ticket.open .tk-go{animation:thump .5s cubic-bezier(.2,1.6,.4,1) forwards}
@keyframes thump{0%{transform:scale(1.6) rotate(-8deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}
.halls{position:absolute;left:50%;bottom:92px;transform:translateX(-50%);width:min(980px,78vw);display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;border-top:1.5px solid var(--ink)}
.halls a{display:flex;flex-direction:column;padding:12px 14px 6px 0;text-decoration:none;gap:3px;border-right:1px solid rgba(45,41,38,.2);margin-right:14px}
.halls a:last-child{border:0;margin:0}
.halls span{font-size:9px;letter-spacing:.24em;text-transform:uppercase;opacity:.55}
.halls b{font:400 17px var(--display)}
.halls i{font-style:normal;font-size:12px}
.hall-main b{color:var(--ver)}

/* =========================================================
   6. ТИТРЫ
   ========================================================= */
#s-credits{background:#070806;color:var(--rice)}
.beam{position:absolute;inset:0;background:
  radial-gradient(ellipse 40% 70% at 50% -12%, rgba(255,232,190,.16), transparent 72%),
  conic-gradient(from 160deg at 50% -6%, transparent 0deg, rgba(255,236,200,.06) 10deg, rgba(255,236,200,.06) 30deg, transparent 40deg)}
.cd-top{position:absolute;top:70px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.3em;text-transform:uppercase;opacity:.55}
.cd-end{position:absolute;left:0;right:0;bottom:130px;text-align:center;visibility:hidden}
.cd-end.show{visibility:visible}
.cd-fin{font-size:clamp(64px,13vw,200px);line-height:1.1;height:1.1em;color:var(--rice)}
.cd-fin .rl{display:inline-block;height:1.1em;overflow:hidden;vertical-align:top}
.cd-fin .strip{display:flex;flex-direction:column}
.cd-fin .strip span{height:1.1em;line-height:1.1em;display:block;overflow:hidden}
.cd-fin .strip span.mk{display:flex;align-items:center;justify-content:center;--logo-ink:var(--rice);--logo-acc:var(--ver)}
.cd-fin .logo-mark{width:.8em;height:.8em}
.cd-btns{display:flex;gap:14px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.cd-btns > *{font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:13px 20px;border:1px solid rgba(241,234,219,.4);border-radius:40px;text-decoration:none;transform:scale(0)}
.cd-end.show .cd-btns > *{animation:thump .5s cubic-bezier(.2,1.6,.4,1) forwards}
.cd-end.show .cd-btns > *:nth-child(2){animation-delay:.12s;background:var(--ver);border-color:var(--ver)}
.post{position:absolute;left:0;right:0;top:20vh;text-align:center;font:italic 500 clamp(22px,2.4vw,36px)/1.2 var(--serif);min-height:1.2em}
.post small{display:block;font:500 10px var(--mono);letter-spacing:.3em;text-transform:uppercase;opacity:.6;margin-bottom:12px;font-style:normal}

/* =========================================================
   mobile
   ========================================================= */
@media (max-width:760px), (max-aspect-ratio:9/10){
  .hud-scene{display:none}
  #hud{padding:12px 30px}
  #brand{left:30px;top:14px;height:18px}
  .hud-right button,.hud-right a{font-size:10px;letter-spacing:.08em}
  .hud-buy{padding:6px 10px !important}
  .hud-right{gap:10px}
  #tl{left:8px;right:8px;bottom:8px;height:46px;grid-template-columns:26px 1fr 96px}
  .tl-clip{font-size:0;padding:0}
  .tl-v{height:18px}
  .tl-tc b{font-size:11px}
  .tl-tc span{display:none}
  .tl-lab{padding-left:6px;gap:5px}

  .edge{width:22px}.edge span{display:none}
  .edge::before{left:6px}.edge::after{display:none}
  .t-top{left:36px;right:36px;top:66px;flex-direction:column;gap:6px;font-size:9px}
  .wordmark{--hw:88vw;top:40%}
  .hanko{top:calc(40% - 88vw * .1335 - 84px);right:36px;width:56px}
  .hanko b:nth-child(2){font-size:22px}
  .t-sub{left:36px;right:36px;bottom:calc(16vh + 120px);font-size:22px}
  .t-meta{left:36px;right:36px;width:auto;bottom:14vh;font-size:10px}
  .t-meta div{grid-template-columns:72px 1fr;padding:5px 0}
  .t-hint{bottom:66px;font-size:9px}
  .t-type{bottom:12vh}

  .c-head{top:calc(9vh + 14px)}
  .c-left{left:20px;right:20px;width:auto;top:auto;bottom:66px}
  .c-name{font-size:44px}
  .c-card{margin-top:14px;font-size:11px}
  .c-card dt,.c-card dd{padding:5px 0}
  .c-card dt{padding-top:6px;padding-right:14px;font-size:9px}
  .c-card dd:nth-of-type(n+3),.c-card dt:nth-of-type(n+3){display:none}
  .c-quote{display:none}
  .clapper{width:132px;top:calc(9vh + 40px);right:16px}
  .clapper .clap-board{font-size:7px;padding:6px 7px}
  .cb-3 b{font-size:15px}.cb-2 b{font-size:12px}.cb-film b{font-size:10px}
  .c-strip{display:none}

  .sc-vert{font-size:13vw;left:4px;opacity:.5}
  .sc-beats{display:none}
  .sc-desk{perspective:2600px}
  .page{width:calc(100vw - 36px);padding:44px 22px 120px 40px;font-size:12.5px;transform:translateX(-50%) rotateX(7deg) translateY(var(--py,60vh))}
  .pg-big{font-size:26px}
  .page{background-image:linear-gradient(90deg,transparent 28px,rgba(249,66,58,.25) 28px 29px,transparent 29px)}
  .slug .num{left:-26px}
  .note{position:relative;display:block;left:auto;right:auto;top:auto;width:auto;margin:6px 0 4px;font-size:21px;text-align:left;transform:rotate(-2deg)}
  .chr{margin-left:30%}.dia{margin:0 6% 4px 14%}

  .cr-head{top:58px}
  .marquee{width:92vw;top:46%}
  .mq-frame{padding:20px}
  .board{gap:3px;padding:8px}
  .bulbs i{width:7px;height:7px;margin:-3.5px}
  .stamp{width:110px;height:110px;right:14px;top:52px}
  .stamp text{font-size:12px}
  .stamp b{font-size:26px}
  .stamp span{font-size:13px}
  .stamp::before{inset:22px}
  .cr-by{top:calc(46% + 130px);white-space:normal;width:86vw;font-size:19px}
  .award-cap{left:20px;right:auto;bottom:64px;max-width:58vw;font-size:10px}
  .award-cap em{font-size:14px}

  .tk-word{display:none}
  .tk-note{margin:-50px auto 0;padding:0;font-size:20px;text-align:center}
  .tk-note svg{display:none}
  .tk-machine{width:90vw;top:11vh}
  .ticket{flex-direction:column}
  .tk-body{padding:18px 18px 14px;border-radius:0}
  .tk-title{font-size:44px;margin:10px 0 2px}
  .tk-sub{font-size:16px;margin-bottom:10px}
  .tk-grid{grid-template-columns:1fr 1fr}
  .tk-grid b{font-size:15px}
  .tk-perf{width:auto;height:0;border-left:0;border-top:3px dotted rgba(45,41,38,.55);margin:0 10px}
  .tk-stub{width:auto;flex-direction:row;padding:12px 16px;border-radius:0 0 10px 10px}
  .tk-barcode{height:34px;width:120px;margin:0}
  .tk-go{width:auto;left:0;top:auto;height:62px;flex-direction:row;border-radius:0 0 10px 10px;gap:12px}
  .tk-go span:first-child{display:none}
  .halls{width:90vw;grid-template-columns:1fr 1fr;bottom:62px;font-size:11px}
  .halls a{padding:6px 8px 4px 0;margin-right:8px;border-right:0;border-bottom:1px solid rgba(45,41,38,.15)}
  .halls b{font-size:13px}
  .halls i{font-size:11px}
  .hall-main i{display:none}

  .cd-top{top:58px;padding:0 20px;line-height:1.6}
  .cd-end{bottom:80px}
}
@media (prefers-reduced-motion:reduce){
  #grain{animation:none}
}
