:root{color-scheme:light;--paper:#f6f8f5;--ink:#172c37;--muted:#64717d;--teal:#246c69;--teal-dark:#1a5552;--cream:#edf1e6;--light:#fff;--line:#dce6dc;--mint:#c4d9ab;--coral:#f3cebd;--shadow:0 24px 64px rgba(22,65,54,.08);--curve:cubic-bezier(.22,1,.36,1);font-family:Manrope,'Segoe UI',system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-size:16px;line-height:24px;text-wrap:pretty}a{color:inherit}button,input,select,textarea{font:inherit}button,a,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #dd986e;outline-offset:3px}button{cursor:pointer}img,canvas{display:block;max-width:100%}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{text-wrap:balance}h1,h2,h3{letter-spacing:-.035em}.container{max-width:1200px;margin:0 auto;padding-left:32px;padding-right:32px}.heading-1{font-size:60px;line-height:1;font-weight:700;letter-spacing:-.055em}.heading-3{font-size:36px;line-height:40px;font-weight:650}.heading-4{font-size:30px;line-height:36px;font-weight:650}.heading-6{font-size:20px;line-height:28px;font-weight:650}.body-3{font-size:16px;line-height:24px;font-weight:400}.body-6{font-size:14px;line-height:20px;font-weight:400}.caption-1{font-size:14px;line-height:20px;font-weight:500}.caption-2{font-size:14px;line-height:20px;font-weight:400}.muted{color:var(--muted)}.eyebrow,.section-kicker,.step-count{display:inline-flex;align-items:center;gap:8px;font-size:12px;line-height:16px;font-weight:700;text-transform:uppercase;letter-spacing:.095em;color:var(--teal)}.skip-link{position:absolute;top:-80px;left:20px;z-index:1000;background:var(--light);padding:12px 18px}.skip-link:focus{top:8px}.button,.secondary-button,.danger-button{display:inline-flex;justify-content:center;align-items:center;gap:12px;border-radius:12px;min-height:44px;padding:8px 16px;font-size:16px;font-weight:650;line-height:24px;border:1px solid transparent;text-decoration:none;white-space:normal;text-align:center;transition:transform .5s var(--curve),background-color .3s var(--curve),opacity .3s var(--curve)}.button{background:var(--teal);color:#fff;box-shadow:0 8px 20px rgba(36,108,105,.16)}.button:hover{background:var(--teal-dark);transform:translateY(-2px)}.button:active,.secondary-button:active,.danger-button:active{transform:scale(.98)}.button-large{font-size:18px;line-height:28px;min-height:56px;padding:12px 24px}.secondary-button{background:#fff;color:var(--ink);border-color:var(--line)}.secondary-button:hover{background:#f1f4ef}.danger-button{color:#96473f;border-color:#e9bcb6;background:#fff}.danger-button:hover{background:#f8e9e8}.button:disabled,.secondary-button:disabled{opacity:.5;cursor:not-allowed}.full{width:100%}
.topnav{position:sticky;top:16px;z-index:100;max-width:630px;padding:0 16px;margin:0 auto;height:0}.topnav-inner{display:flex;align-items:center;gap:24px;justify-content:space-between;background:rgba(249,251,247,.9);backdrop-filter:blur(18px);padding:12px 18px;border:1px solid var(--line);border-radius:999px;box-shadow:0 12px 35px rgba(31,62,56,.07)}.brand{display:inline-flex;align-items:center;gap:6px;font-size:20px;line-height:28px;text-decoration:none;letter-spacing:-.045em;font-weight:750;white-space:nowrap}.brand-symbol{display:inline-flex;background:var(--teal);color:white;width:32px;height:32px;border-radius:50%;align-items:center;justify-content:center;font-size:23px;font-weight:400}.brand-dot{color:var(--teal)}.nav-note{font-size:12px;line-height:16px;color:var(--muted);white-space:nowrap}.nav-link{font-size:14px;line-height:20px;font-weight:600;text-decoration:none;white-space:nowrap}.nav-link:hover{text-decoration:underline}
.hero{display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:40px;min-height:690px;padding-top:144px;padding-bottom:64px}.hero-copy{position:relative;z-index:1}.pulse-dot{height:8px;width:8px;background:#8ab56c;display:inline-block;border-radius:50%;box-shadow:0 0 0 4px #e2edda}.hero h1{max-width:680px;margin:24px 0}.hero-highlight{color:var(--teal)}.hero-subtitle{max-width:480px;color:var(--muted);font-size:18px;line-height:28px;margin-bottom:32px}.hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:12px}.proof-row{margin-top:48px;display:flex;gap:12px;align-items:center}.round-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e5e9cf;color:var(--teal);font-size:22px}.proof-row strong,.proof-row small{display:block}.proof-row strong{font-size:14px}.proof-row small{color:var(--muted);font-size:12px;line-height:16px}.hero-visual{height:530px;min-width:0;position:relative;display:flex;align-items:center;justify-content:center;background:#e9f0e8;border-radius:32px;overflow:hidden;border:1px solid #d7e3d6}.hero-visual canvas{width:100%;height:100%}.floating-label{position:absolute;z-index:2;background:rgba(255,255,255,.94);padding:12px 16px;border:1px solid #d8e4d6;box-shadow:0 5px 18px rgba(27,68,55,.1);border-radius:999px;display:flex;gap:8px;align-items:center;font-size:12px;line-height:16px;font-weight:600;white-space:nowrap}.label-top{top:24px;right:24px}.label-top span{color:var(--teal);font-size:18px}.label-bottom{bottom:24px;left:24px}.live-symbol{font-size:10px;color:#64a886}
.community-section{background:#e9f0e8;padding:80px 0 64px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin:16px 0 32px}.section-head h2{max-width:700px;margin:0}.section-head p{max-width:340px;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card{min-height:180px;background:#fff;border:1px solid #d7e3d8;border-radius:20px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.stat-card strong{font-size:48px;line-height:48px;letter-spacing:-.055em;font-weight:650;margin-top:auto;color:#244e4a}.stat-card strong.stat-word{font-size:18px;line-height:24px;letter-spacing:-.015em}.stat-icon{border-radius:10px;background:#e7f1e4;height:32px;width:32px;display:flex;align-items:center;justify-content:center;color:var(--teal);font-size:20px}.stat-card .caption-1{color:var(--muted)}.stats-updated{text-align:right;color:var(--muted);font-size:12px;line-height:16px;margin:16px 4px 0}
.feed-area{display:grid;grid-template-columns:250px 1fr;gap:24px;align-items:start;margin-top:32px;border-top:1px solid #d1e0d4;padding-top:24px}.feed-area h3{margin:0 0 8px}.feed-area p{margin:0}.feed-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.feed-item{display:flex;flex-direction:column;gap:12px;text-decoration:none;background:#f9fbf8;border:1px solid #d5e3d7;border-radius:14px;padding:16px;min-height:108px}.feed-item:hover{background:#fff}.feed-item strong{font-size:14px;line-height:20px}.feed-item span{font-size:12px;color:var(--teal)}
.how-section{padding-top:104px;padding-bottom:104px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}.step-card{border:1px solid var(--line);padding:32px;background:#fff;border-radius:24px;min-height:290px}.step-card h3{margin:16px 0 8px}.step-card p{max-width:280px;margin:0}.step-number{font-size:14px;color:var(--muted);font-weight:650}.step-art{display:flex;margin-top:24px;border-radius:20px;background:#e8f1df;height:82px;width:82px;align-items:center;justify-content:center;font-size:42px;color:var(--teal)}.step-card:nth-child(2) .step-art{background:#f3ded3}.step-card:nth-child(3) .step-art{background:#f7eecf}
.manifesto-section{padding:96px 0;background:#203f3c;color:#fff}.manifesto-section .section-kicker{color:#a3d2bd}.manifesto-reveal{max-width:880px;font-size:48px;line-height:1.1;transform:translateY(32px);opacity:.28;transition:transform .7s var(--curve),opacity .7s var(--curve);margin:28px 0 0}.manifesto-reveal.is-visible{transform:translateY(0);opacity:1}.faq-section{padding-top:104px;padding-bottom:104px}.faq-section h2{margin:16px 0 32px}.faq-list{max-width:830px}.faq-list details{border-top:1px solid var(--line);padding:20px 4px}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;font-size:18px;line-height:28px;font-weight:650;list-style:none;display:flex;justify-content:space-between;gap:24px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';font-size:24px;font-weight:400;color:var(--teal)}.faq-list details[open] summary:after{content:'−'}.faq-list p{max-width:690px;color:var(--muted);margin:16px 0 0}.closing-section{padding-bottom:80px}.closing-inner{background:#e6eddc;padding:48px;border-radius:28px;display:flex;align-items:end;justify-content:space-between;gap:32px}.closing-inner h2{margin:20px 0 0}.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--muted);padding-top:24px;padding-bottom:28px;font-size:12px;line-height:16px}.footer div{display:flex;gap:20px}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}
.info-page,.error-page{padding-top:170px;padding-bottom:180px;min-height:68vh}.info-page p,.error-page p{max-width:690px;color:var(--muted);margin:24px 0 32px}.info-page h1,.error-page h1{margin:16px 0}
.play-back{max-width:1140px;padding:24px 32px;margin:0 auto;display:flex;justify-content:space-between;color:var(--muted);font-size:14px;line-height:20px}.play-back a{text-decoration:none;color:var(--teal);font-weight:650}.game-shell{max-width:1150px;margin:12px auto 64px;min-height:660px;border-radius:28px;display:grid;grid-template-columns:1.04fr .96fr;background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:var(--shadow)}.game-visual{position:relative;background:#e4f0e5;min-height:640px;overflow:hidden;display:flex;align-items:center;justify-content:center}.game-visual-head{position:absolute;z-index:2;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;gap:16px;align-items:center}.game-home{text-decoration:none;font-weight:750;color:var(--teal)}.mini-tag{border-radius:999px;background:rgba(255,255,255,.85);padding:8px 12px;font-size:12px;font-weight:650}.game-visual canvas{width:100%;height:100%;position:absolute;inset:0}.game-year{position:absolute;bottom:24px;left:24px;background:#fff;padding:8px 16px;border-radius:999px;font-size:14px;font-weight:650;box-shadow:0 8px 20px rgba(35,81,64,.08)}.game-panel{padding:64px 40px 36px;display:flex;flex-direction:column;justify-content:center;gap:18px;min-width:0}.game-panel h1{margin:0}.game-panel p{margin:0}.choice-list{display:flex;flex-direction:column;gap:12px;margin:16px 0 8px}.choice{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:18px 20px;background:#f8faf7;min-height:64px;color:var(--ink);font-size:16px;font-weight:600;transition:transform .5s var(--curve),background-color .3s var(--curve),border-color .3s var(--curve)}.choice:hover{background:#e6f3e8;border-color:#9ec3b6;transform:translateY(-2px)}.choice:active{transform:scale(.99)}.choice span{flex:0 0 auto;font-size:22px;color:var(--teal)}.game-actions{display:flex;gap:12px;flex-wrap:wrap}.game-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;margin:16px 0 0}.stat-line{display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:12px;line-height:16px}.stat-line strong{color:var(--teal)}.meter{grid-column:1/-1;height:6px;background:#e6ede7;border-radius:99px;overflow:hidden}.meter span{display:block;background:#73a58a;border-radius:99px;height:100%;width:100%;transform-origin:left;transition:transform .5s var(--curve)}.history{color:var(--muted);font-size:14px;line-height:20px;padding:16px;border-radius:12px;background:#eef3ea}.ending-large{font-size:76px;line-height:1.1;color:var(--teal);font-weight:700;letter-spacing:-.05em;margin:8px 0}.ending-large span{font-size:36px}.ending-large small{display:block;font-size:14px;line-height:20px;font-weight:500;letter-spacing:0;color:var(--muted)}.end-meta{display:flex;gap:20px;font-size:14px;color:var(--muted)}.loading-placeholder,.game-error{max-width:600px;margin:80px auto;padding:48px;background:#fff;border-radius:24px}.result-page{padding-top:160px;padding-bottom:160px}.result-panel{max-width:850px;margin:0 auto;background:#e8f0e5;border-radius:28px;padding:64px;text-align:center}.result-panel p{max-width:570px;margin:24px auto}.result-score{font-size:92px;line-height:1.2;color:var(--teal);font-weight:700;letter-spacing:-.06em}.result-score small{display:block;font-size:16px;line-height:24px;color:var(--muted);font-weight:500;letter-spacing:0}.result-foot{display:flex;gap:20px;justify-content:center;font-size:14px;color:var(--muted);margin:24px 0 32px}
.admin-body{background:#f3f6f2}.admin-layout{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}.admin-sidebar{background:#e8f0e8;padding:28px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:16px;position:sticky;top:0;height:100vh}.admin-sidebar nav{display:flex;flex-direction:column;gap:8px;margin:32px 0 auto;width:100%}.admin-sidebar nav a{font-size:14px;line-height:20px;padding:12px 16px;border-radius:12px;text-decoration:none;font-weight:600}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background:#fff;color:var(--teal)}.admin-main{max-width:1150px;width:100%;padding:32px 48px 80px}.admin-main h1{margin:32px 0 24px}.admin-topline{display:flex;justify-content:space-between;gap:12px}.admin-topline a{font-size:14px;color:var(--teal);text-decoration:none}.admin-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:32px 0}.admin-cards article,.admin-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.admin-cards article span,.admin-cards article strong{display:block}.admin-cards article span{font-size:14px;color:var(--muted)}.admin-cards article strong{font-size:36px;line-height:40px;margin-top:16px}.admin-card h2{margin-top:0}.admin-toolbar,.admin-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:20px 0 24px}.admin-toolbar p{max-width:540px;margin:0}.admin-table-wrap{background:#fff;border:1px solid var(--line);border-radius:18px;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14px;line-height:20px}.admin-table th{text-align:left;font-weight:650;color:var(--muted);background:#f0f5ed}.admin-table th,.admin-table td{padding:16px 20px;border-bottom:1px solid var(--line)}.admin-table tr:last-child td{border-bottom:0}.admin-table td small{display:block;color:var(--muted);margin-top:4px}.admin-table a{color:var(--teal)}.admin-form{max-width:850px;display:flex;flex-direction:column;gap:20px}.admin-form label,.login-card label{font-weight:600;font-size:14px;line-height:20px;display:flex;flex-direction:column;gap:8px}.admin-form input,.admin-form textarea,.admin-form select,.login-card input,.setting-row input,.setting-row select{width:100%;border:1px solid #c6d7ca;background:#fff;border-radius:10px;padding:12px 14px;font-size:16px;line-height:24px;color:var(--ink)}.admin-form textarea{resize:vertical}.admin-form fieldset{border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;gap:20px}.admin-form legend{font-size:14px;font-weight:650}.admin-form .check-line{display:inline-flex;align-items:center;flex-direction:row;font-weight:400}.check-line input{width:auto}.admin-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.setting-row{display:grid;grid-template-columns:minmax(140px,1fr) 160px auto;align-items:center;gap:20px;background:#fff;border-radius:16px;padding:20px;margin:14px 0;border:1px solid var(--line)}.setting-row small{display:block;font-size:12px;color:var(--muted)}.form-error{color:#914037;padding:16px;border-radius:12px;background:#fce8e7}.form-success{color:#246346;padding:16px;border-radius:12px;background:#e0f2e4}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px}.login-card{width:100%;max-width:440px;border:1px solid var(--line);border-radius:24px;padding:40px;background:white;box-shadow:var(--shadow)}.login-card h1{margin:12px 0}.login-card p{margin:8px 0 24px}.login-card form{display:flex;flex-direction:column;gap:20px}.login-card .back-link{display:block;margin-top:24px;color:var(--teal);font-size:14px}.spacer-32{height:32px}
@media(max-width:1020px){.hero{gap:24px}.hero h1{font-size:48px;line-height:1}.hero-visual{height:480px}.stat-card{padding:20px}.stats-grid{gap:12px}.stat-card strong{font-size:36px;line-height:40px}.game-shell{margin:12px 20px 48px}.game-panel{padding:40px 28px}.game-visual{min-height:550px}}
.feed-area{grid-template-columns:1fr}.feed-list{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.container{padding-left:20px;padding-right:20px}.heading-1{font-size:36px;line-height:40px}.heading-3{font-size:30px;line-height:36px}.heading-4{font-size:24px;line-height:32px}.topnav{top:12px}.topnav-inner{padding:8px 12px}.topnav .nav-note{display:none}.hero{display:flex;flex-direction:column;align-items:stretch;gap:24px;padding-top:128px;padding-bottom:48px;min-height:0}.hero-copy{width:100%}.hero h1{max-width:600px}.hero-subtitle{font-size:16px;line-height:24px;margin-bottom:24px}.hero-actions .button{width:100%}.proof-row{margin-top:32px}.hero-visual{height:430px}.floating-label{font-size:12px;white-space:normal}.label-top{right:12px;top:12px}.label-bottom{left:12px;bottom:12px}.community-section{padding:64px 0 48px}.section-head{flex-direction:column;align-items:start;gap:16px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat-card{min-height:156px;padding:16px;border-radius:16px}.stat-card strong{font-size:36px;line-height:40px}.stat-card strong.stat-word{font-size:16px;line-height:24px}.how-section,.faq-section{padding-top:72px;padding-bottom:72px}.steps{grid-template-columns:1fr;gap:12px}.step-card{min-height:0;padding:24px}.step-art{margin-top:16px;width:60px;height:60px;font-size:30px}.manifesto-section{padding:72px 0}.manifesto-reveal{font-size:36px;line-height:40px}.closing-inner{padding:32px;flex-direction:column;align-items:stretch}.closing-inner .button{width:100%}.footer{flex-direction:column;align-items:flex-start}.game-shell{display:flex;flex-direction:column;margin:12px 16px 40px;min-height:0;border-radius:20px}.game-visual{height:320px;min-height:320px}.game-panel{padding:32px 24px 32px;min-height:360px}.game-stats{gap:12px}.game-panel .choice-list{margin-top:8px}.play-back{padding:16px}.ending-large{font-size:60px}.result-panel{padding:32px 24px}.result-score{font-size:72px}.result-page{padding-top:100px;padding-bottom:80px}.admin-layout{display:block}.admin-sidebar{position:relative;height:auto;padding:20px;gap:12px}.admin-sidebar nav{margin:8px 0;flex-direction:row;flex-wrap:wrap;gap:4px}.admin-sidebar nav a{padding:8px;font-size:12px}.admin-main{padding:24px 20px 64px}.admin-main h1{margin:20px 0}.admin-cards{grid-template-columns:1fr}.admin-toolbar{align-items:flex-start;flex-direction:column}.admin-form fieldset{flex-wrap:wrap}.setting-row{grid-template-columns:1fr;gap:12px}.admin-two{grid-template-columns:1fr}.login-card{padding:28px}}
.feed-list{grid-template-columns:1fr}
@media(max-width:390px){.hero-visual{height:360px}.hero h1{font-size:36px}.floating-label{font-size:10px;padding:8px 10px}.stats-grid{gap:8px}.stat-card{padding:12px}.stat-card strong{font-size:30px;line-height:36px}.game-visual{min-height:260px;height:260px}.game-panel{padding:24px 16px}.play-back{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition-duration:0ms!important}.manifesto-reveal{opacity:1;transform:none}}

[hidden]{display:none!important}
.ai-caption{font-size:14px;line-height:20px;color:#285c55;background:#eef5ed;border-radius:12px;padding:0}.ai-caption:not(:empty){padding:16px}.ai-caption strong{display:block;font-size:16px;line-height:24px}.ai-caption p{margin:8px 0 0}.game-panel button:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* v0.3.0: storybook game reader. Shared design tokens from ai-design-skills. */
#game-app{max-width:1500px;margin:0 auto 48px;padding:0 20px;font-family:Manrope,system-ui,sans-serif}
.play-back{max-width:1500px;padding:16px 26px 12px}
.film-shell{width:100%;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(430px,.78fr);height:clamp(740px,calc(100dvh - 104px),930px);min-height:740px;max-height:none;overflow:hidden;background:#fffbf2;border:1px solid #d6dfd4;border-radius:24px;box-shadow:0 32px 90px rgba(18,50,55,.11)}
.film-stage{position:relative;min-width:0;min-height:740px;background:#a8c8bd;overflow:hidden;isolation:isolate}
.film-stage:after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(to bottom,rgba(16,50,62,.18),transparent 21%,transparent 78%,rgba(22,43,48,.25));z-index:1}
.film-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.film-header{z-index:3;position:absolute;top:0;left:0;right:0;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#f6fbef;text-shadow:0 2px 10px #244d5780}
.film-brand{font-weight:700;letter-spacing:.07em;font-size:20px;white-space:nowrap}.film-brand>span{font-size:30px;vertical-align:-2px;margin-right:7px}.film-brand small{display:block;margin-left:39px;margin-top:-4px;color:#f7fff0;font-size:12px;font-weight:500;letter-spacing:0}
.film-year{padding:9px 16px;border-radius:99px;background:#183f4eb5;font-size:14px;font-weight:650;white-space:nowrap}
.film-chapter{position:absolute;z-index:3;left:28px;bottom:82px;background:#193e4bbd;color:#fff7e6;padding:11px 18px;border-radius:12px;font-size:14px;letter-spacing:.04em;font-weight:700}
.film-stage-footer{position:absolute;bottom:0;left:0;right:0;z-index:3;padding:17px 28px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#fbf7eb;font-size:14px;background:#163d4c82;backdrop-filter:blur(5px)}
.film-audio{color:#fff;border:1px solid #ffffff80;border-radius:99px;padding:8px 14px;background:#163d4b88;font-size:12px;font-weight:650}
.live-dot{width:8px;height:8px;display:inline-block;margin-right:7px;background:#c9ef95;border-radius:50%;box-shadow:0 0 0 5px #c9ef952b}
.film-reader{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:#fffbf2}
.film-reader-main{padding:38px 38px 28px;flex:1;min-height:0;overflow-y:auto;scrollbar-color:#c7d2c4 transparent;scrollbar-width:thin}
.reader-kicker{text-transform:uppercase;color:#32756e;font-weight:750;font-size:12px;letter-spacing:.11em;margin-bottom:16px}
.film-title{font-size:36px;line-height:40px;font-weight:700;letter-spacing:-.04em;margin:0 0 20px;color:#23373c;text-wrap:balance}
.reader-prose{font-size:16px;line-height:26px;color:#405359;margin:0 0 18px;max-width:650px}
.reader-muted{font-size:14px;line-height:22px;color:#637378;margin:0 0 18px}
.reader-hint{font-size:12px;line-height:20px;color:#778682;margin-top:12px;margin-bottom:2px}
.reader-quote{font-size:20px;line-height:30px;color:#2f625d;border:0;border-left:3px solid #bd965c;padding:14px 0 14px 20px;margin:22px 0 26px;background:transparent;font-weight:600}
.reader-quote span{display:block;margin-top:12px;color:#617575;font-size:12px;font-weight:500}
.story-primary,.story-secondary{display:flex;align-items:center;justify-content:center;gap:12px;border-radius:12px;font-size:16px;line-height:24px;font-weight:700;padding:15px 20px;min-height:54px;border:1px solid #286964;text-align:center;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.story-primary{background:#286964;color:white;box-shadow:0 7px 20px #28696425}
.story-primary:hover{background:#1c534f;transform:translateY(-1px);box-shadow:0 11px 24px #28696432}
.story-secondary{background:#fffcf5;color:#245f5a;border-color:#bed0c9}
.story-secondary:hover{background:#eaf3ea;transform:translateY(-1px)}
.story-options{display:flex;flex-direction:column;gap:12px;margin:26px 0 14px}
.story-choice{display:grid;grid-template-columns:35px minmax(0,1fr) 20px;gap:10px;align-items:center;min-height:64px;background:#fffdf8;border:1px solid #d3ddd1;border-radius:12px;padding:15px 16px;color:#2a4144;font-size:16px;line-height:24px;text-align:left;font-weight:600;transition:transform .2s ease,background .2s ease,border-color .2s ease}
.story-choice:hover{border-color:#7cae9d;background:#eaf1e8;transform:translateX(3px)}
.story-choice .choice-number{font-size:12px;letter-spacing:.07em;color:#8c907b;font-weight:750}
.story-choice .choice-arrow{font-size:20px;color:#3c8a7f}
.story-stakes{border-radius:12px;padding:13px 16px;background:#f6ede1;border-left:3px solid #c19e68;color:#795f4c;font-size:14px;line-height:20px}
.scene-person{display:flex;gap:14px;align-items:center;margin:10px 0 22px;border-radius:14px;background:#f1f2e8;padding:12px}
.scene-person>div{min-width:0}.scene-person strong{display:block;color:#2b4446;font-size:18px}.scene-person small{display:block;color:#6a7574;font-size:14px;line-height:20px;margin-top:4px}
.portrait-svg{display:block;width:62px;height:68px;flex:0 0 auto;border-radius:14px;box-shadow:0 3px 8px #394e3826}
.portrait-big{width:83px;height:91px}
.scene-dialogue{font-size:18px;line-height:28px;color:#334b4b;margin-bottom:18px}
.film-stats{display:grid;grid-template-columns:1fr 1fr;column-gap:18px;row-gap:14px;margin:22px 0}
.film-stat>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;color:#607271}
.film-stat strong{font-size:14px;color:#306d66}
.film-stat .meter{height:6px;margin-top:7px;border-radius:99px;overflow:hidden;background:#dee9dc}
.film-stat .meter span{display:block;background:#8eb9a2;height:100%;width:100%;transform-origin:left;border-radius:99px;transition:transform .25s ease}
.film-controls{display:flex;gap:12px;margin:12px 0 26px}.film-controls button{flex:1;padding:10px 12px;min-height:44px;font-size:14px}
.chronicle{border-top:1px solid #e2e8df;padding-top:22px}.chronicle>h2,.book-subtitle{font-weight:700;color:#284a4a;font-size:20px;line-height:28px;letter-spacing:-.02em;margin:10px 0 18px}.chronicle h2 small{display:block;font-size:12px;font-weight:500;color:#758480;letter-spacing:0}
.chronicle-line{border-left:2px solid #c7d5c7;padding:0 0 16px 15px;margin-left:3px;position:relative}.chronicle-line:before{content:"";width:8px;height:8px;position:absolute;top:4px;left:-5px;background:#d0a36d;border-radius:50%}.chronicle-line small{display:block;color:#84908c;font-size:12px;margin-bottom:3px}.chronicle-line strong{display:block;color:#375956;font-size:14px}.chronicle-line p{font-size:14px;line-height:21px;color:#75827e;margin:4px 0 0}
.consequence{border-radius:16px;background:#e7f1e4;border:1px solid #c9ddc6;padding:22px;margin:16px 0}.consequence span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#557e6e}.consequence strong{display:block;color:#2b645b;margin-top:12px;font-size:20px;line-height:28px}
.film-cast{flex-shrink:0;background:#f1f2e9;border-top:1px solid #e3e7da;padding:18px 20px 20px}
.film-cast-title{display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:700;font-size:14px;margin:0 4px 12px;color:#456260}.film-cast-title small{font-size:12px;font-weight:500;color:#87918b}
.cast-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cast-card{border-radius:12px;border:1px solid #d8e3d6;background:#fffdf6;padding:6px;min-width:0;text-align:left;transition:transform .2s ease,border-color .2s ease}
.cast-card:hover{transform:translateY(-2px);border-color:#6b9e92}
.cast-photo .portrait-svg{width:100%;height:55px;object-fit:cover;border-radius:8px}
.cast-info strong{display:block;font-size:13px;color:#284d4c;margin-top:7px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cast-info small{display:block;font-size:10px;line-height:15px;color:#78837c;margin-top:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cast-bond{width:100%;height:3px;border-radius:10px;background:#d6e4d9;margin-top:9px;overflow:hidden}.cast-bond span{display:block;height:100%;border-radius:10px}
.person-dialog{position:fixed;inset:0;z-index:100;background:#102d34a8;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.person-dialog[hidden]{display:none!important}
.person-dialog-card{width:min(100%,470px);border-radius:24px;background:#fffcf3;padding:32px;box-shadow:0 24px 90px #152c2855;position:relative;max-height:90vh;overflow-y:auto}
.person-dialog-card>p{color:#506463;font-size:16px;line-height:24px}.person-dialog-card strong{color:#315a56}.person-close{position:absolute;top:14px;right:16px;background:transparent;border:0;font-size:30px;color:#476969}
.person-profile{display:flex;gap:16px;align-items:center;margin:16px 0 22px}.person-profile h2{font-size:30px;line-height:36px;color:#2b4646;margin:6px 0}.person-profile p{color:#74817e;margin:0}
.epilogue-person{display:flex;align-items:flex-start;gap:13px;border-bottom:1px solid #e0e7dd;padding:13px 0}.epilogue-person .portrait-svg{width:56px;height:62px}.epilogue-person strong{color:#2c5954;font-size:14px}.epilogue-person p{font-size:14px;color:#5b6f6a;margin:6px 0 0;line-height:22px}
.epilogue-last{background:#eaf1e4;color:#325e55;border-radius:14px;padding:20px;font-weight:650;line-height:26px}
.final-happiness{display:flex;gap:18px;align-items:center;padding:16px 0 20px;border-bottom:1px solid #d6e0d6}.final-happiness strong{font-size:60px;line-height:60px;letter-spacing:-.04em;color:#2b756d}.final-happiness span{font-size:14px;line-height:20px;color:#697f78}
#game-app :is(button,a):focus-visible{outline:3px solid #efad62;outline-offset:3px}
@media(max-width:1190px){.film-shell{grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr)}.film-reader-main{padding:30px 28px 24px}.film-stage{min-height:700px}}
@media(max-width:850px){#game-app{padding:0 12px}.film-shell{display:flex;flex-direction:column;height:auto;max-height:none;min-height:0}.film-stage{height:min(53vh,470px);min-height:330px;flex:0 0 auto}.film-reader{overflow:visible;min-height:0}.film-reader-main{padding:28px 24px 26px;overflow:visible}.film-reader-main .film-title{font-size:30px;line-height:36px}.film-chapter{bottom:68px}.film-stage-footer{padding:12px 18px}.film-header{padding:17px 16px}.film-year{font-size:12px;padding:7px 10px}.film-brand{font-size:18px}.film-brand small{display:none}.film-cast{padding:16px}.cast-row{grid-template-columns:repeat(4,minmax(0,1fr))}.film-stats{gap:13px}}
@media(max-width:420px){.film-stage{height:42vh;min-height:295px}.film-reader-main{padding:24px 18px}.film-reader-main .film-title{font-size:24px;line-height:32px}.film-brand{font-size:16px}.film-brand>span{font-size:20px}.film-chapter{font-size:12px;left:14px;bottom:67px}.cast-card{padding:4px}.cast-info strong{font-size:12px}.cast-info small{display:none}.cast-photo .portrait-svg{height:53px}.story-choice{padding:12px;min-height:60px;font-size:14px;line-height:20px}.reader-prose{font-size:16px;line-height:24px}.scene-dialogue{font-size:16px;line-height:24px}.reader-quote{font-size:18px;line-height:28px}.film-cast-title{font-size:12px}.film-stats{column-gap:10px}.film-stage-footer{font-size:12px}}
@media(prefers-reduced-motion:reduce){#game-app *,#game-app *:before,#game-app *:after{transition:none!important;animation:none!important}}

/* A little life in the image: small human moments are visible, not hidden in a timeline. */
.film-moment{position:absolute;z-index:4;left:28px;top:104px;width:min(368px,calc(100% - 56px));pointer-events:none;display:flex;gap:10px;align-items:flex-start;transform:translateY(-8px);opacity:0;transition:opacity .32s ease,transform .32s ease}
.film-moment.is-visible{transform:translateY(0);opacity:1}
.film-moment .film-moment-text{padding:12px 16px;background:rgba(255,253,240,.96);box-shadow:0 12px 38px #183c3640;border-radius:13px;backdrop-filter:blur(9px)}
.film-moment .film-moment-text strong{display:block;font-size:13px;color:#2b645d;line-height:19px;margin-bottom:3px}
.film-moment .film-moment-text span{display:block;font-size:12px;color:#3c5657;line-height:18px}
@media(max-width:850px){.film-moment{left:15px;top:70px;width:min(295px,calc(100% - 30px))}.film-moment .film-moment-text{padding:9px 12px}.film-moment .film-moment-text span{font-size:11px;line-height:15px}}
@media(prefers-reduced-motion:reduce){.film-moment{transition:none;transform:none}.film-moment.is-visible{transform:none}}

.film-reader-action{padding:14px 22px;background:#fffbf2;border-top:1px solid #e7ebdf;flex:0 0 auto}
.film-reader-action .story-primary{width:100%;min-height:50px;padding:10px 14px}
@media(max-width:850px){.film-reader-action{padding:0 20px 22px;border-top:0}}

/* TYTOPIA 0.4 - One character, a whole world. A cinematic reader beside a living diorama. */
.mirror-shell{width:100%;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(390px,.8fr);min-height:700px;height:clamp(710px,calc(100dvh - 106px),960px);border:1px solid #d4dfd6;border-radius:25px;overflow:hidden;background:#fffbf2;box-shadow:0 28px 75px #183f4520}
.mirror-stage{position:relative;overflow:hidden;min-height:0;background:#d6e9e1;isolation:isolate}
.mirror-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(15,46,49,.14),transparent 27%,transparent 75%,rgba(13,55,50,.17));z-index:1}
.mirror-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.mirror-stage-top{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 26px}
.mirror-brand{display:flex;align-items:center;gap:10px;color:#174b49;font-size:26px;line-height:29px;font-weight:800;letter-spacing:-.05em;text-shadow:0 1px #ffffff50}.mirror-brand strong{font-size:22px}.mirror-brand>span{display:block;font-size:9px;line-height:13px;letter-spacing:.11em;font-weight:750;margin-left:7px;max-width:140px;color:#326c67}
.mirror-year{display:inline-flex;flex:none;padding:9px 12px;align-items:center;background:#fffcf0e8;border:1px solid #ffffffbf;border-radius:99px;font-size:11px;line-height:16px;font-weight:800;color:#346c67;white-space:nowrap;box-shadow:0 6px 22px #163c3a16}
.mirror-stage-bottom{position:absolute;bottom:20px;left:23px;right:23px;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:4}
.mirror-badge{display:inline-flex;align-items:center;gap:8px;background:#fffcf0ef;border:1px solid #fcf4e2;border-radius:99px;padding:11px 14px;box-shadow:0 12px 28px #214e432a;color:#245b54;font-size:11px;font-weight:800;letter-spacing:.03em}.mirror-live-dot{background:#52ac88;width:8px;height:8px;border-radius:100%;box-shadow:0 0 0 4px #61bd9529}
.mirror-sound,.mirror-inspect{border:1px solid #f4edd0db;background:#fffcf0ef;color:#2b6159;border-radius:99px;padding:10px 13px;font-weight:750;font-size:11px;cursor:pointer;box-shadow:0 5px 20px #143d3b14}
.mirror-inspect{position:absolute;bottom:78px;left:23px;z-index:4;letter-spacing:.055em}.mirror-sound:hover,.mirror-inspect:hover{background:white}
.mirror-live-event{position:absolute;z-index:6;top:108px;left:24px;max-width:min(350px,calc(100% - 48px));pointer-events:none;opacity:0;transform:translateY(-12px);transition:opacity .3s ease,transform .3s ease}.mirror-live-event.is-on{opacity:1;transform:translateY(0)}
.mirror-voice{padding:15px 17px 16px;background:#fffaf0f5;border:1px solid #f8e7cb;border-radius:17px;box-shadow:0 16px 46px #143d3b38;backdrop-filter:blur(8px)}.mirror-voice span{display:block;font-size:10px;letter-spacing:.13em;font-weight:800;color:#397b73;margin-bottom:8px}.mirror-voice strong{display:block;font-size:15px;line-height:22px;color:#294c4c;font-weight:650}
.mirror-reader{display:flex;min-width:0;min-height:0;overflow:hidden;flex-direction:column;background:#fffbf2}
.mirror-act{padding:22px 33px 17px;border-bottom:1px solid #e9e9da;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;color:#2d6a65;font-size:11px;line-height:17px;font-weight:850;letter-spacing:.075em;text-transform:uppercase;flex:0 0 auto}.mirror-act-sub{font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;text-align:right;color:#87918c;max-width:175px}
.mirror-reading{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:35px 35px 22px;scrollbar-color:#c6d7c9 transparent;scrollbar-width:thin}
.mirror-kicker{display:block;font-size:11px;font-weight:850;letter-spacing:.15em;color:#a07655;margin-bottom:22px}
.mirror-title{font-size:clamp(31px,2.55vw,45px);font-weight:800;line-height:1.12;letter-spacing:-.05em;color:#223d40;margin:0 0 22px;overflow-wrap:anywhere}.mirror-title em{font-style:normal;color:#2b7970}
.mirror-text{font-size:17px;line-height:1.75;font-weight:450;color:#506565;margin:0 0 22px}.mirror-text strong{color:#284c4b;font-weight:750}.mirror-smaller{font-size:15px;line-height:1.68}
.mirror-line{border-left:3px solid #d6a879;background:#f6eddf;padding:15px 16px;margin:20px 0 24px;display:flex;gap:14px;align-items:center;border-radius:0 12px 12px 0}.mirror-line-icon{color:#bc8559;font-size:24px}.mirror-line p{font-size:15px;line-height:1.55;color:#625b51;margin:0;font-weight:650}
.mirror-footnote{font-size:12px;line-height:1.7;color:#89928d;margin:16px 0 0}.mirror-context{font-size:14px;color:#637873;line-height:1.6;margin:20px 0}
.mirror-progress{height:4px;width:100%;background:#e1e9dc;border-radius:99px;overflow:hidden;margin:0 0 28px}.mirror-progress span{display:block;height:100%;background:#2b7970;border-radius:99px;transition:width .3s ease}
.mirror-options{display:flex;flex-direction:column;gap:10px;margin:21px 0 6px}
.mirror-option{display:grid;grid-template-columns:30px minmax(0,1fr) 20px;align-items:center;gap:11px;min-height:69px;text-align:left;background:#fffdf8;border:1px solid #d9e1d6;border-radius:13px;padding:14px 15px;font-size:15px;line-height:1.48;color:#2d4c4a;font-weight:700;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.mirror-option:hover{border-color:#6da99a;transform:translateX(3px);background:#f0f8ed}.mirror-option:active{transform:scale(.99)}.mirror-option-num{font-size:11px;font-weight:850;color:#ad9977}.mirror-option b{font-size:19px;color:#34867b}
.mirror-action{flex:0 0 auto;padding:13px 30px;background:#fffbf2;border-top:1px solid #e9e9df}.mirror-action:empty{display:none}.mirror-action .story-primary{width:100%;min-height:54px}
.mirror-bottom-info{flex:none;border-top:1px solid #e1e8da;background:#f3f4ea;display:grid;grid-template-columns:1.17fr .83fr .8fr;gap:10px;padding:18px 27px}
.mirror-bottom-info>div{min-width:0}.mirror-bottom-info>div+div{border-left:1px solid #dce4d8;padding-left:16px}.mirror-bottom-info span{display:block;color:#87918a;font-size:9px;line-height:14px;letter-spacing:.065em;font-weight:800}.mirror-bottom-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;color:#315a55;font-size:13px;line-height:18px;font-weight:850}
.mirror-trait-list{display:flex;flex-direction:column;gap:13px;margin:24px 0}.mirror-trait{display:grid;grid-template-columns:122px 1fr 28px;gap:10px;align-items:center}.mirror-trait small{font-size:11px;color:#627871}.mirror-trait>div,.mirror-meter{height:6px;border-radius:20px;background:#e1e8d9;overflow:hidden}.mirror-trait>div span,.mirror-meter span{display:block;height:100%;background:#6ba995;border-radius:20px;transition:width .4s ease}.mirror-trait b{font-size:11px;color:#3a6d64;text-align:right}
.mirror-sim-title{font-size:26px;line-height:1.2;margin-bottom:10px}.mirror-sim-sub{font-size:14px;line-height:1.5;margin-bottom:14px}.mirror-current-quote{padding:13px 15px;background:#e7eee3;border-radius:11px;font-size:14px;font-weight:650;line-height:1.6;color:#3d635b;margin:13px 0 19px}
.mirror-metrics{display:grid;grid-template-columns:1fr 1fr;column-gap:16px;row-gap:16px}.mirror-metric>div:first-child{display:flex;justify-content:space-between;gap:7px;align-items:center}.mirror-metric span{font-size:11px;color:#75827b}.mirror-metric strong{font-size:13px;color:#326c62}.mirror-meter{margin-top:7px}
.mirror-controls{display:flex;gap:11px;margin:20px 0 19px}.mirror-controls button{flex:1;min-height:42px;padding:8px;font-size:13px}
.mirror-chronicle{border-top:1px solid #e2e9dd;padding-top:15px}.mirror-chronicle h2{font-size:15px;line-height:23px;font-weight:800;letter-spacing:-.02em;color:#2e514c}.mirror-chronicle h2 span{font-size:11px;color:#8b948a;display:block;font-weight:550;letter-spacing:0}
.mirror-news{display:grid;grid-template-columns:54px 1fr;gap:11px;padding:12px 0;border-bottom:1px solid #e8ece2}.mirror-news>span{font-size:10px;color:#998367;letter-spacing:.07em;font-weight:850}.mirror-news strong{display:block;font-size:12px;color:#34534f;line-height:1.45}.mirror-news small{display:block;font-size:11px;color:#87928c;line-height:1.45;margin-top:4px}
.mirror-citizen-asks{display:flex;gap:13px;align-items:center;background:#e8f1e9;padding:18px 16px;border-radius:14px;margin:21px 0}.mirror-small-person{width:40px;height:40px;display:grid;place-items:center;flex:none;background:#d0e4d2;border-radius:50%;font-size:29px;color:#2b786e}.mirror-citizen-asks p{font-size:15px;line-height:1.56;color:#385e57;margin:0;font-weight:700}.mirror-citizen-asks span{display:block;font-size:10px;letter-spacing:.12em;font-weight:850;color:#708d79;margin-bottom:6px}
.mirror-danger{border:1px solid #e4d5b8;background:#fbedd7;color:#896145;border-radius:10px;padding:13px 15px;font-size:13px;font-weight:700}
.mirror-outcome{border:1px solid #cbded1;border-radius:15px;padding:22px;background:#e6f3e6;margin:25px 0}.mirror-outcome span,.mirror-outcome small{display:block;color:#5d8b75;font-weight:750;font-size:10px;letter-spacing:.09em}.mirror-outcome strong{display:block;color:#285f55;margin:10px 0;font-size:21px;line-height:1.45}
.mirror-final-number{display:flex;align-items:center;gap:22px;padding:21px 0;border-top:1px solid #e6eadc;border-bottom:1px solid #e6eadc;margin:24px 0}.mirror-final-number strong{font-size:70px;line-height:1;color:#2a7469;letter-spacing:-.08em}.mirror-final-number span{font-size:13px;line-height:1.7;color:#74837b}.mirror-final-quote{font-size:16px;line-height:1.7;background:#f4e7d4;padding:17px;border-radius:12px;color:#7e6451}.mirror-final-quote strong{display:block;color:#425e58;margin-top:7px}
.mirror-recap{margin:25px 0}.mirror-recap h2,.mirror-share-heading{font-size:20px;line-height:28px;font-weight:800;color:#315c56;margin:0 0 14px}.mirror-recap>div{border-left:2px solid #b6d2bc;padding:0 0 13px 16px;margin:0 0 6px}.mirror-recap>div small{display:block;color:#a18964;font-size:10px;letter-spacing:.08em;font-weight:800}.mirror-recap>div strong{display:block;color:#315b55;font-size:14px;margin:5px 0}.mirror-recap>div span{display:block;color:#7c8780;font-size:13px;line-height:1.5}
.mirror-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0 12px}.mirror-actions-grid button{min-height:52px;padding:9px 11px;font-size:13px;line-height:1.45}.mirror-ai-status{font-size:13px;color:#4f746c;padding-bottom:16px;line-height:1.6}
.mirror-unavailable{padding:72px 40px;text-align:center;background:#fffaf2;margin:25px auto;max-width:690px;border-radius:25px}.mirror-unavailable p{margin:16px 0 25px;color:#667b70}
@media(max-width:1090px){.mirror-shell{grid-template-columns:minmax(0,1.05fr) minmax(370px,.95fr)}.mirror-reading{padding:27px 26px 18px}.mirror-title{font-size:34px}.mirror-act{padding:20px 25px 15px}}
@media(max-width:850px){#game-app{padding:0 12px;margin:0 auto 24px}.mirror-shell{display:flex;flex-direction:column;min-height:0;height:auto;max-height:none;border-radius:20px}.mirror-stage{height:min(54vh,480px);min-height:355px;flex:none}.mirror-reader{min-height:0;overflow:visible;display:flex}.mirror-reading{overflow:visible;flex:none;padding:27px 25px 20px}.mirror-action{padding:0 22px 18px;border-top:0}.mirror-act{padding:16px 24px;min-height:56px}.mirror-title{font-size:clamp(29px,5.7vw,39px)}.mirror-text{font-size:16px;line-height:1.7}.mirror-bottom-info{padding:15px 22px}.mirror-stage-top{padding:18px}.mirror-stage-bottom{bottom:16px;left:16px;right:16px}.mirror-inspect{left:16px;bottom:72px}}
@media(max-width:430px){.mirror-stage{height:40vh;min-height:310px}.mirror-brand{font-size:20px}.mirror-brand strong{font-size:18px}.mirror-brand>span{display:none}.mirror-year{font-size:10px;padding:7px 9px}.mirror-reading{padding:24px 19px 18px}.mirror-title{font-size:30px;line-height:1.16;margin-bottom:16px}.mirror-kicker{margin-bottom:14px}.mirror-act{padding:14px 17px}.mirror-act-sub{font-size:10px;max-width:120px}.mirror-footnote{font-size:11px}.mirror-option{font-size:14px;min-height:62px;padding:12px}.mirror-final-number strong{font-size:55px}.mirror-final-number span{font-size:12px}.mirror-actions-grid{grid-template-columns:1fr 1fr}.mirror-action{padding:0 18px 17px}.mirror-bottom-info{padding:12px 16px}.mirror-bottom-info strong{font-size:12px}.mirror-badge{font-size:9px}.mirror-voice{padding:10px 12px}.mirror-voice strong{font-size:13px;line-height:18px}.mirror-stage-top{padding:12px}.mirror-live-event{left:13px;top:57px;max-width:calc(100% - 26px)}}
@media(prefers-reduced-motion:reduce){.mirror-shell *, .mirror-shell *:before, .mirror-shell *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* v0.5.0 · interactive cinematic lens. Camera controls do not cover story actions. */
.mirror-stage canvas[role="button"]{cursor:zoom-in;touch-action:manipulation}
.mirror-stage canvas[role="button"]:focus-visible{outline:3px solid #e0a967;outline-offset:-6px}
.mirror-camera-controls{position:absolute;right:23px;bottom:80px;z-index:5;display:flex;gap:8px;align-items:center}
.mirror-camera-controls button{border:1px solid #f1ead7;background:#fffdf3f2;color:#2d6760;border-radius:999px;padding:10px 12px;font-size:10px;line-height:16px;letter-spacing:.03em;font-weight:750;cursor:pointer;box-shadow:0 5px 22px #153b3524;transition:transform .5s cubic-bezier(.22,1,.36,1),background-color .3s cubic-bezier(.22,1,.36,1)}
.mirror-camera-controls button:hover{transform:translateY(-2px);background:#fff}
.mirror-camera-controls button:active{transform:scale(.98)}
.mirror-camera-controls button[aria-pressed="true"]{background:#286e66;color:#fff;border-color:#286e66}
.mirror-civic-hud{position:absolute;left:23px;bottom:138px;z-index:4;max-width:min(340px,calc(100% - 46px));padding:12px 15px;background:rgba(255,252,239,.93);border:1px solid #faf4df;border-radius:13px;box-shadow:0 12px 32px #1c53472a;pointer-events:none;backdrop-filter:blur(7px)}
.mirror-civic-hud span{display:block;color:#6e9185;font-size:9px;font-weight:750;letter-spacing:.1em;margin-bottom:4px}
.mirror-civic-hud strong{display:block;color:#2a5b58;font-size:14px;line-height:20px;font-weight:750}
@media(max-width:850px){.mirror-camera-controls{right:15px;bottom:71px}.mirror-camera-controls button{padding:8px 10px}.mirror-civic-hud{left:15px;bottom:128px}}
@media(max-width:430px){.mirror-camera-controls{right:14px;bottom:74px;gap:5px}.mirror-camera-controls button{padding:7px 8px;font-size:9px}.mirror-inspect{max-width:150px;white-space:normal;text-align:left;font-size:9px;padding:8px 10px}.mirror-civic-hud{left:13px;bottom:122px;max-width:190px;padding:8px 10px}.mirror-civic-hud strong{font-size:11px;line-height:15px}.mirror-civic-hud span{font-size:8px}}
@media(prefers-reduced-motion:reduce){.mirror-camera-controls button{transition:none!important}}
/* Give the miniature world room on small phones: the story scrolls underneath it. */
@media(max-width:430px){
 .mirror-stage{height:clamp(380px,51dvh,470px);min-height:380px}
 .mirror-civic-hud{max-width:230px;bottom:126px}
 .mirror-camera-controls{bottom:70px}
 .mirror-inspect{bottom:70px}
}
@media(max-width:430px){.mirror-stage.is-talking .mirror-civic-hud{opacity:0;transition:opacity .3s cubic-bezier(.22,1,.36,1)} }
.mirror-video-download{display:inline-flex;align-items:center;justify-content:center;width:100%;margin:0 0 10px;padding:11px 14px;line-height:23px;min-height:48px;text-decoration:none;border-radius:12px;font-size:14px}
#video-status span{display:block;color:#718178;font-size:12px;line-height:19px}
