/* Shared reading and control typography across the complete game. */
@font-face{font-family:Poppins;src:url('assets/fonts/Poppins-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url('assets/fonts/Poppins-Medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url('assets/fonts/Poppins-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600 800;font-display:swap}
@font-face{font-family:Lora;src:url('assets/fonts/Lora-Variable.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:"Review Sans SC";src:url('assets/fonts/NotoSansSC-Game.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--font:Poppins,"Review Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--serif:Lora,"Review Sans SC","Iowan Old Style",Georgia,"PingFang SC","Microsoft YaHei",serif;--ink:#292925;--muted:#73726c;--line:#e3e1d8;--orange:#d97757;--orange-soft:#bd6044;--panel2:#f0eee6}
body{font-family:var(--font);color:var(--ink);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:var(--font)}
h1,h2,h3,strong,b{font-weight:500}
.mono{font-variant-numeric:tabular-nums}
.eyebrow,.tag,.count,.brand-context,.operator,.file-label,.message-top,.author-credit,.top-title small,.action-card .code,.action-card .action-meta,.ban-notice span,.source-label,.dossier-top small{font-family:var(--font);letter-spacing:.035em;font-weight:400}
.brand-name{font-family:var(--serif);letter-spacing:-.055em}
.btn{font-weight:500;border-radius:.65rem;box-shadow:none;transition:background .16s,border-color .16s,color .16s,box-shadow .16s}
.btn.primary{background:#292925;border-color:#292925;color:#faf9f5}.btn.primary:hover:not(:disabled){background:#45443e;border-color:#45443e;transform:none}
.btn.ghost,.btn.soft{color:#494841}.btn:hover:not(:disabled){transform:none}
.btn.danger{background:#b2533b;border-color:#b2533b}.btn.danger:hover:not(:disabled){background:#98432f;border-color:#98432f}
.tag{font-size:.65rem;text-transform:none;background:#f4f3ed;border-color:#e5e2d9}.tag.orange{background:#f3e7dc;border-color:#e3cbb9;color:#a55f43}
.landing-main .subtitle,.message-text,.reply-preview>p,.last-words p,.ending-card>p,.result-story,.ban-notice p,.details,.receipt-reason p{font-family:var(--serif);font-weight:400;line-height:1.85;letter-spacing:0;color:#3d3c36}
.message.user .message-text{font-family:var(--font);font-size:.87rem;line-height:1.8}
.message.assistant .message-text{font-size:1rem;line-height:1.85;color:#30302b}
.message-top{font-size:.65rem;font-weight:500;color:#6f6e66}.message-top .dim{font-size:.56rem;font-weight:400;color:#a19f95}
.message.user{background:#efeee7;border:0;border-radius:.8rem;padding:1rem 1.2rem}
.message.assistant{padding:.2rem .25rem}
.terminal .chat-panel,.terminal .dossier-panel{border-color:#e4e2d9;border-radius:.85rem;box-shadow:none;background:#fdfcf9}
.terminal .chat-panel .messages{padding-left:1.8rem;padding-right:1.8rem}
.case-header{background:#faf9f5;border-color:#e8e6dc}.case-header h2,.dossier-top h2{font-family:var(--font);font-weight:500;font-size:.92rem}
.case-header .subtle{font-size:.67rem;color:#7b796f}
.composer{margin:.6rem 1rem 1rem;border:1px solid #dfddd3;border-radius:1rem;padding:1rem 1.1rem;box-shadow:0 .15rem .55rem #29251b06;background:#fff}
.composer .btn{font-size:.76rem}.composer-note{font-size:.62rem;color:#8b887d}.patience-track{background:#e8e6dc}.patience-track div{background:#d97757}
.top-title .terminal-game-title{font-family:var(--serif)!important;letter-spacing:-.035em;font-size:1.05rem!important}
.top-title small{font-size:.53rem;color:#8c897d}.nav button{font-size:.74rem;font-weight:400;color:#706d64}
.terminal .metric>span{font-size:.66rem;color:#79766c}.terminal .metric>strong{font-family:var(--font);font-weight:500;font-size:1.03rem;font-variant-numeric:tabular-nums}.terminal .metric>small{font-family:var(--font)}
.dossier-top{background:#faf9f5}.dossier-tabs{background:#faf9f5}.dossier-tabs button{font-size:.74rem;font-weight:400;color:#77746a}.dossier-tabs button.active{font-weight:500;background:none;color:#292925;border-bottom-color:#b1aa9b}
.file-label{font-size:.57rem;letter-spacing:.08em;color:#949084}.data-row{font-size:.8rem;border-color:#ebe8de}.data-row>span{font-size:.71rem;color:#888275}.data-row strong{font-weight:400;color:#3d3b34;line-height:1.8}
.record-line p,.reason-choice p{font-family:var(--font);font-size:.79rem;color:#4c4940}.record-line .reason-link{font-size:.63rem;color:#8e7964}
.device-tile,.device-tile.opened{background:#f5f3ed;border-color:#e2ddd1;color:#696153}.device-tile strong{font-size:.72rem;font-weight:400}.device-tile:hover{background:#edeae0;border-color:#c8bdad}
.modal{background:#faf9f5;border-color:#e7e2d6;box-shadow:0 1rem 4rem #25231c24}.modal-header h2{font-family:var(--serif);font-size:1.5rem;letter-spacing:-.025em;color:#292925;font-weight:400}
.modal-header,.modal-footer{border-color:#e4e0d6}.modal-header .eyebrow{font-size:.58rem;letter-spacing:.06em;color:#949084}
.choice-grid .choice{background:#fdfcf9;border-color:#e2ddd1;border-radius:.7rem;min-height:4.5rem}.choice-grid .choice strong{font-weight:500;font-size:.87rem}.choice-grid .choice.active{border-color:#b9b1a0;background:#efede5;box-shadow:inset 0 0 0 1px #b9b1a0}
.filter-pills button{font-size:.7rem;border-color:#e0dbcf;color:#787267;background:#faf9f5}.filter-pills button.active{color:#34312b;background:#e9e5d9;border-color:#cec5b3}
.action-card{border-color:#dfdacf;box-shadow:none}.action-card .action-title{font-size:.84rem;font-weight:500;color:#3f3a32}.action-card p{font-family:var(--serif);font-size:.79rem;line-height:1.8;color:#6d6558}.action-card .action-meta{font-size:.6rem;color:#8f8371}.action-card .code{font-size:.56rem;color:#9c907d}
.reply-preview{background:#fffdf9;border-color:#e2dace;border-radius:.8rem}.reply-label{font-size:.76rem;font-weight:500;color:#514b40}.reply-preview>p{font-size:.96rem}.details{font-size:.88rem;color:#565044}.source-label{font-size:.65rem}
.process-table{font-family:var(--font);font-size:.72rem}.process-table th{font-weight:500;font-size:.64rem;letter-spacing:.02em;background:#eeebe2;color:#817461}.process-table td{color:#51493d}
.score-tile,.stat-box{background:#efede5;border-color:#ded8cb;box-shadow:none}.score-tile strong,.stat-box strong{font-family:var(--font);font-size:1.5rem;font-weight:500;font-variant-numeric:tabular-nums}.score-tile small,.stat-box span{font-family:var(--font);font-size:.64rem;color:#918675}
.compliance-verdict strong{font-size:.94rem;font-weight:500}.compliance-verdict p{font-family:var(--serif);font-size:.84rem}.history-item p{font-size:.8rem}.history-item small{font-size:.64rem}.empty{font-family:var(--font);font-size:.76rem;color:#8e8472}
.setting-row label{font-family:var(--font);font-size:.82rem;color:#595347}.setting-row select,.search-input,.filter-row select{background:#fffdf9;color:#514a3e;border-color:#d8cfbf;border-radius:.5rem}
.achievement{border-color:#ded8ca;color:#928b7c;border-radius:.6rem}.achievement.earned{color:#57614b;background:#e9ede2;border-color:#c4cdb7}.achievement strong{font-size:.77rem;font-weight:500}.achievement p{font-size:.65rem}
.ending-card h1{font-family:var(--serif);font-weight:400;letter-spacing:-.045em}.ending-card>p{font-size:.95rem}.wrongful-list h2{font-family:var(--font);font-weight:500;font-size:.9rem}.wrongful-list article strong{font-weight:500}.wrongful-list article p{font-family:var(--serif);font-size:.8rem;line-height:1.85}

/* The start button is anchored to the center of the full landing page. */
.landing-showcase{position:static;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:22%}
.landing-showcase .landing-main{align-self:center}
.landing-showcase .landing-main .game-title{font-family:var(--serif);font-size:2.8rem;line-height:1.06;letter-spacing:-.065em}
.landing-main .game-title em{font-family:var(--serif);font-size:2em;line-height:1.08;letter-spacing:-.075em;color:#be684b;margin:.12em 0 .17em}
.game-title .title-sub{font-family:var(--serif);font-size:1.05rem;letter-spacing:-.02em;gap:.5rem}.title-sub>span:last-child{font-family:var(--font);font-size:.65em;letter-spacing:.06em}.title-divider{width:1.8rem}
.landing-main>.eyebrow{font-family:var(--font);font-size:.67rem;letter-spacing:.06em;text-transform:none}
.landing-main .subtitle{font-size:.92rem;max-width:27rem;margin:1.4rem 0;line-height:1.85;color:#696459}
.center-start{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:8}
.center-start .start-review{min-width:14.5rem;min-height:3.8rem;padding:.9rem 1.25rem;gap:.85rem;border-radius:.8rem;font-size:1rem;font-weight:500;background:#292925;border-color:#292925;box-shadow:0 .5rem 1.8rem #35302518;white-space:nowrap}
.start-review .start-mark{width:1.6rem;height:1.6rem;flex:none}.start-review .icon{margin-left:.7rem;width:1.15rem;height:1.15rem;transition:translate .2s}
.center-start .start-review:hover{background:#3b3932;border-color:#3b3932;box-shadow:0 .6rem 2.2rem #d9775738;transform:none}.start-review:hover .icon{translate:.2rem 0}.start-review:focus-visible{outline:2px solid #d97757;outline-offset:5px}
.resume-card{background:#f0eee6cc;border-color:#e4ded2;border-radius:.65rem;max-width:25rem;font-size:.65rem;padding:.6rem .75rem;margin-top:1.5rem}.resume-card .btn{font-size:.65rem}
.production-credit p,.production-credit strong,.author-credit{font-family:var(--font);font-size:.59rem;font-weight:400;color:#827a6c}.production-credit .credit-command{font-size:inherit}.production-credit{padding:.6rem 0;border-color:#e5dfd3}
.landing .dario-speech p{font-family:var(--font);font-weight:500;line-height:1.65;font-size:.99rem}.landing .dario-speech>span{font-family:var(--font);font-size:.6rem;letter-spacing:0}.landing .dario-speech{transition:background .2s,border-color .2s}
.landing-foot{font-family:var(--font);font-size:.57rem}.landing-foot .version{font-size:.55rem}

@media(max-width:1200px) and (min-width:801px){.landing-showcase{column-gap:24%}.landing-showcase .landing-main .game-title{font-size:2.1rem}.game-title .title-sub{font-size:.8rem;gap:.3rem}.title-divider{width:1rem}.landing-main .subtitle{font-size:.82rem}.center-start .start-review{min-width:12rem;padding:.85rem 1rem;gap:.55rem;font-size:.9rem}.landing .dario-speech p{font-size:.85rem}.landing .dario-stage{height:24rem}}
@media(max-width:800px){.landing-showcase{grid-template-columns:1fr;gap:2rem;margin:2rem 0}.landing-showcase .landing-main{text-align:center;justify-self:center;max-width:30rem}.landing-main>.row{justify-content:center}.landing-showcase .landing-main .game-title{font-size:2.7rem}.game-title .title-sub{justify-content:center;font-size:1rem}.landing-main .subtitle{font-size:.88rem}.resume-card{margin:1.2rem auto 0;text-align:left}.center-start{position:static;transform:none;justify-self:center;grid-row:2}.landing .dario-scene{grid-row:3;justify-self:center}.center-start .start-review{min-width:15rem}.terminal .chat-panel .messages{padding:1rem}.message.assistant .message-text{font-size:.95rem}.composer{margin:.5rem .6rem .7rem}.production-credit p,.production-credit strong,.author-credit{font-size:.56rem}.top-title .terminal-game-title{font-size:.78rem!important}.modal-header h2{font-size:1.3rem}}
@media(max-height:720px) and (min-width:801px){.landing-content{min-height:100dvh;padding-top:1rem;padding-bottom:1rem}.landing-showcase{margin:1rem 0}.landing-showcase .landing-main .game-title{font-size:2rem;margin:1rem 0}.landing-main .subtitle{font-size:.8rem;margin:1rem 0}.landing .dario-stage{height:19rem;min-height:0}.landing .dario-speech p{font-size:.85rem;min-height:2.5em}.landing-foot{padding-top:.6rem}.resume-card{margin-top:.8rem}.center-start .start-review{min-width:12rem}}

/* Align the title rule to the word independently of underscore font metrics. */
.landing-main .game-title .judge-title{display:inline-flex;align-items:center;gap:.035em;vertical-align:top}
.judge-title .judge-dash{display:block;width:.45em;height:.045em;flex:none;background:currentColor}

/* Match both halves of the title at every responsive heading size. */
.landing-main .game-title .title-sub{display:block;font:inherit;line-height:1.06;letter-spacing:inherit;white-space:normal;margin:.38em 0 0;color:inherit}
.landing-main .game-title .title-sub-opening{display:block;font:inherit;line-height:1.05;letter-spacing:inherit;white-space:nowrap}
.landing-main .game-title .title-sub-name{display:block;font:400 2em/1.08 var(--serif);letter-spacing:-.075em;margin-top:.12em;color:#be684b;white-space:nowrap}
@media(max-width:420px){.landing-showcase .landing-main .game-title{font-size:clamp(1.7rem,8.5vw,2.7rem)}}
