/* Hallmark · route: custom (brand locked) · structure: poster + live ballot
 * genre: atmospheric · macrostructure: Workbench · theme: YOUR CHOICE Noir
 * nav: N9 edge-aligned · footer: Ft2 inline · enrichment: supplied episode artwork
 * audience: Instagram viewers · use: one real 24h vote · tone: tense crime noir
 * pre-emit critique: P5 H5 E4 S5 R5 V4 · final browser verification owned by parent
 */
@font-face{font-family:Choice Display;src:url('/assets/Pretendard-Black.woff2') format('woff2');font-style:normal;font-weight:900;font-display:swap}
:root{
  color-scheme:dark;
  --font-display:Choice Display,"Apple SD Gothic Neo",sans-serif;
  --font-body:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --font-count:ui-monospace,SFMono-Regular,Consolas,monospace;
  --color-paper:oklch(16% .009 15);--color-paper-2:oklch(20% .012 15);--color-paper-3:oklch(25% .014 15);
  --color-ink:oklch(94% .025 85);--color-ink-2:oklch(87% .022 75);--color-muted:oklch(72% .014 30);
  --color-accent:oklch(48% .17 22);--color-accent-hover:oklch(53% .18 22);--color-accent-ink:var(--color-ink);
  --color-signal:oklch(70% .16 22);--color-focus:var(--color-ink);--color-rule:oklch(34% .014 20);
  --color-shadow:oklch(8% .009 15 / .7);--color-shade:oklch(10% .009 15 / .8);--color-clear:transparent;
  --color-white-veil:oklch(98% .02 85 / .08);--color-success:var(--color-ink-2);--color-error:var(--color-signal);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;
  --radius-small:.35rem;--radius-button:.5rem;--ease:cubic-bezier(.2,.7,.3,1);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:1rem;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:var(--color-clear)}button{font:inherit}a{color:inherit;text-decoration:none}button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}button:disabled{cursor:not-allowed}img{display:block;max-width:100%}h1,h2,h3,p,ol{margin:0}h1,h2,h3{font-style:normal;min-width:0;overflow-wrap:anywhere}button[hidden],[hidden]{display:none!important}
.skip-link{position:fixed;z-index:20;left:1rem;top:-5rem;padding:.8rem 1rem;background:var(--color-ink);color:var(--color-paper);border-radius:var(--radius-small);white-space:nowrap}.skip-link:focus{top:1rem}
.page-shell{max-width:84rem;margin:0 auto;padding:0 var(--space-5)}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:4rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;white-space:nowrap}.brand img{width:30px;height:30px;border-radius:50%}.brand span{font-family:var(--font-display);font-size:.92rem;letter-spacing:.13em;font-weight:900}
.reel-link{display:inline-flex;gap:.6rem;align-items:center;min-height:44px;font-size:.875rem;font-weight:600;white-space:nowrap;color:var(--color-ink-2)}.reel-link span{font-size:1.1rem;color:var(--color-signal)}
.poll-layout{display:grid;grid-template-columns:minmax(0,1fr);min-width:0}
.story-panel{position:relative;min-width:0;isolation:isolate}.story-art{position:relative;height:6rem;overflow:clip;background:var(--color-paper-2)}.story-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--color-shade),var(--color-clear) 75%);pointer-events:none}.story-art img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.story-caption{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;justify-content:center;padding:var(--space-4);pointer-events:none}.episode-label{color:var(--color-ink-2);font-size:.875rem;font-weight:700;letter-spacing:.04em;margin-bottom:.35rem}.story-caption h1{font-family:var(--font-display);font-size:1.28rem;font-weight:900;line-height:1.12;letter-spacing:-.06em;text-shadow:0 2px 10px var(--color-shadow)}.story-caption h1 span{display:inline}.story-caption h1>span{color:var(--color-ink)}
.ballot-panel{min-width:0;padding:var(--space-4) 0 var(--space-5)}
.poll-clock{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.4rem .75rem;min-width:0}.clock-caption{display:flex;align-items:center;gap:.45rem;color:var(--color-ink-2);font-size:.875rem;font-weight:600}.status-dot{width:.4rem;height:.4rem;border-radius:50%;flex:none;background:var(--color-signal)}.time-left{font-family:var(--font-count);font-size:1.28rem;line-height:1.2;letter-spacing:-.045em;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.deadline{grid-column:1/-1;color:var(--color-muted);font-size:.875rem;line-height:1.45;min-height:1.1rem;word-break:keep-all}
.ballot-heading{display:flex;flex-direction:column;margin:var(--space-3) 0 var(--space-4);min-width:0}.ballot-kicker{color:var(--color-muted);font-size:.875rem;line-height:1.5;margin-bottom:.35rem}.ballot-heading h2{font-family:var(--font-display);font-size:clamp(1.9rem,7.3vw,2.65rem);font-weight:900;line-height:1.12;letter-spacing:-.055em;word-break:keep-all}.desktop-break{display:none}.vote-instruction{font-size:.875rem;line-height:1.6;color:var(--color-ink-2);margin-top:var(--space-2);word-break:keep-all}
.choices{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.choice-option{min-width:0}.choice-button{position:relative;display:flex;align-items:center;gap:.7rem;width:100%;min-height:4.2rem;padding:.9rem 1rem;border:1px solid var(--color-clear);border-radius:var(--radius-button);text-align:left;white-space:nowrap;transition:background-color .16s var(--ease),transform .16s var(--ease),box-shadow .16s var(--ease);cursor:pointer;isolation:isolate}.choice-a{background:var(--color-ink);color:var(--color-paper);box-shadow:0 5px 0 var(--color-rule)}.choice-b{background:var(--color-accent);color:var(--color-accent-ink);box-shadow:0 5px 0 var(--color-shade)}.choice-letter{font-family:var(--font-display);font-size:1.65rem;line-height:1;font-weight:900;flex:none}.choice-label{font-family:var(--font-display);font-size:clamp(1rem,4.65vw,1.25rem);line-height:1.2;font-weight:900;letter-spacing:-.045em;white-space:nowrap;min-width:0}.choice-action{margin-left:auto;flex:none;font-size:1.25rem;font-weight:400}.choice-cost{color:var(--color-muted);font-size:.875rem;line-height:1.45;margin:.65rem .2rem 0;word-break:keep-all}.choice-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 var(--color-shade)}.choice-button:disabled{opacity:.48;box-shadow:none}.choice-button[data-selected="true"]{opacity:1;border-color:var(--color-ink)}.choice-button[data-selected="true"] .choice-action:before{content:"✓"}.choice-button[data-selected="true"] .choice-action{font-size:0}.choice-button[data-selected="true"] .choice-action:before{font-size:1.2rem}.choice-button[data-pending="true"]{opacity:1}.choice-working{display:none;margin-left:auto}.choice-button[data-pending="true"] .choice-action{display:none}.choice-button[data-pending="true"] .choice-working{display:block}.button-spinner{display:block;width:1.1rem;height:1.1rem;border:2px solid currentColor;border-right-color:var(--color-clear);border-radius:50%;animation:spin .7s linear infinite}
.feedback-slot{min-height:2.9rem;margin-top:var(--space-5)}.feedback{font-size:.875rem;line-height:1.55;color:var(--color-muted);word-break:keep-all}.ballot-panel[data-state="error"] .feedback{color:var(--color-error)}.ballot-panel[data-state="success"] .feedback{color:var(--color-success)}.retry-button{margin-top:.3rem;padding:.45rem .7rem;min-height:44px;border:1px solid var(--color-rule);border-radius:var(--radius-small);background:var(--color-paper-2);color:var(--color-ink);font-size:.875rem;white-space:nowrap;cursor:pointer}.retry-button:active{transform:translateY(1px)}
.results{margin-top:var(--space-4);padding-top:var(--space-5);background:var(--color-paper);color:var(--color-ink)}.results-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.results-heading h3{font-size:.875rem;font-weight:700}.results-heading p{color:var(--color-muted);font-size:.875rem;font-variant-numeric:tabular-nums}.result-list{padding:0;list-style:none;display:grid;gap:1rem;margin-top:1rem}.result-copy{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.875rem;line-height:1.3}.result-copy b{font-family:var(--font-display);margin-right:.25rem}.result-figures{display:inline-flex;align-items:baseline;gap:.45rem;white-space:nowrap;font-variant-numeric:tabular-nums}.result-figures strong{font-size:.88rem}.result-figures>span{color:var(--color-muted);font-size:.875rem}.result-track{height:7px;margin-top:.55rem;background:var(--color-paper-3);border-radius:2px;overflow:clip}.result-fill{display:block;width:100%;height:100%;background:var(--color-ink);transform-origin:left;transform:scaleX(var(--share,0));transition:transform .4s var(--ease)}[data-result="B"] .result-fill{background:var(--color-signal)}.result-outcome{margin-top:1rem;color:var(--color-ink-2);font-size:.875rem;line-height:1.6;word-break:keep-all}
.ballot-note{font-size:.875rem;line-height:1.5;color:var(--color-muted);margin-top:var(--space-3);word-break:keep-all}.noscript-note{margin-top:1rem;color:var(--color-error);line-height:1.5}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1rem;padding:1.2rem 0 1.4rem;color:var(--color-muted);font-size:.875rem;line-height:1.4}.site-footer span{white-space:nowrap}
.ballot-panel[data-state="loading"] .choices{opacity:.55}.ballot-panel[data-state="closed"] .status-dot{background:var(--color-muted)}
@media(hover:hover) and (pointer:fine){.reel-link:hover{color:var(--color-ink)}.choice-a:hover:not(:disabled){background:var(--color-ink-2);color:var(--color-paper);transform:translateY(-2px)}.choice-b:hover:not(:disabled){background:var(--color-accent-hover);color:var(--color-accent-ink);transform:translateY(-2px)}.retry-button:hover{background:var(--color-paper-3);color:var(--color-ink)}}
@media(min-width:40rem){.page-shell{padding-inline:var(--space-8)}.site-header{min-height:5.5rem}.brand img{width:38px;height:38px}.brand span{font-size:1.05rem}.reel-link{font-size:.9rem}.story-art{height:12rem}.story-caption{padding:1.5rem}.story-caption h1{font-size:2rem}.ballot-panel{max-width:37rem;width:100%;margin:0 auto;padding-top:1.75rem}.ballot-heading h2{font-size:2.75rem}.vote-instruction{font-size:.9rem}.choice-button{min-height:4.6rem;padding:1rem 1.25rem}.choice-label{font-size:1.25rem}.choice-cost{font-size:.875rem}.feedback{font-size:.9rem}.time-left{font-size:1.6rem}.deadline{font-size:.875rem}.result-copy{font-size:.875rem}.site-footer{font-size:.875rem}}
@media(min-width:60rem){.page-shell{padding-inline:clamp(2rem,4vw,4rem)}.site-header{min-height:6rem}.poll-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(2.5rem,5vw,6rem);padding-bottom:2rem}.story-panel{position:sticky;top:1.5rem;min-height:42rem}.story-art{height:min(73svh,48rem);min-height:42rem}.story-art img{object-position:center 34%}.story-art:after{background:linear-gradient(180deg,var(--color-clear) 30%,var(--color-shade) 90%)}.story-caption{justify-content:flex-end;padding:2rem}.episode-label{font-size:.875rem;margin-bottom:.9rem}.story-caption h1{font-size:clamp(2.6rem,4.25vw,4.1rem);line-height:1.06;letter-spacing:-.065em}.story-caption h1 span{display:block}.ballot-panel{max-width:32rem;padding:1.5rem 0 0}.poll-clock{gap:.5rem 1rem}.time-left{font-size:1.85rem}.ballot-heading{margin:2rem 0 1.8rem}.ballot-heading h2{font-size:clamp(2.7rem,4vw,3.8rem);line-height:1.1}.desktop-break{display:block}.ballot-kicker{font-size:.85rem;margin-bottom:.8rem}.vote-instruction{margin-top:1rem}.choices{gap:1.25rem}.choice-button{min-height:5rem}.choice-letter{font-size:2rem}.choice-label{font-size:1.35rem}.choice-cost{font-size:.85rem}.feedback-slot{margin-top:1.8rem;min-height:2.4rem}.ballot-note{font-size:.875rem}.site-footer{padding-top:1rem}}
@media(min-width:90rem){.poll-layout{gap:6rem}.ballot-panel{padding-top:2rem}.story-art{height:46rem}.ballot-heading{margin-top:2.5rem}.ballot-heading h2{font-size:4rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@keyframes spin{to{transform:rotate(360deg)}}
