/* Original Grimwood art and mythic action-RPG menu composition. */
:root{--gold:#edce80;--teal:#87dcbb;--paper:#fff0d1;--line:#cda45d80}
#title-screen{background:linear-gradient(90deg,#050e0fed 0%,#061113ab 34%,transparent 68%),url('assets/art/linde-cover.png') center/cover no-repeat;overflow:auto;align-items:center}
.title-content{width:min(450px,46vw);margin-left:7vw;padding:28px 0}.title-content:before{content:'◆  EL LINDE ILUSTRADO  ◆';color:#91d3b3;font:12px Georgia;letter-spacing:.2em;margin-bottom:18px}.title-content h1{font-size:clamp(44px,6vw,90px);font-weight:bold;letter-spacing:-.035em;transform:skew(-5deg);text-shadow:4px 4px #5c2128,0 6px 25px #000;margin:18px 0}.title-divider{color:#8ddab5}.title-divider span{background:#8ddab5}.title-content .subtitle{letter-spacing:.14em;font-size:17px;color:#efd08a}.title-content .intro{font:18px/1.6 Georgia;color:#e1d7bc;margin:22px 0}
.title-content .primary,.title-content .secondary{font:bold 24px Georgia;text-transform:uppercase;letter-spacing:.035em;border:0;border-left:4px solid #ac3646;background:linear-gradient(90deg,#102e2bcc,transparent);padding:16px 23px;margin:7px 0;transition:color .15s,transform .15s;box-shadow:none;color:#f6deb1}.title-content button:hover,.title-content button:focus-visible{color:#a1ffce;transform:translateX(7px);background-color:#2a655329}.title-links{display:flex;gap:22px}.title-content .text-button{color:#efdbad;font:bold 16px Georgia}.edition{font-size:12px;color:#d5c7a6}#loading{background:#07100d99;padding:7px 11px;color:#e1d3b2;max-width:36vw}
dialog{position:relative;width:min(1070px,94vw);max-height:90dvh;padding:28px 38px 30px 305px;background:linear-gradient(115deg,#102a23 0%,#0c1b1b 36%,#071113 100%);border:2px solid #d3b273;box-shadow:0 0 0 5px #091316,0 0 0 7px #61755c,0 25px 100px #000d;overflow:auto}dialog::backdrop{background:#010909b8;backdrop-filter:blur(3px)}dialog h2{color:#ffe2a5;font:bold clamp(28px,3.4vw,45px)/1.08 Georgia;text-transform:uppercase;letter-spacing:-.01em;padding:0 0 20px;margin:12px 0 20px;border-bottom:2px solid #91c69c77;text-shadow:2px 3px #06100e}.panel-top .eyebrow{font-size:12px;color:#8ed4ab;letter-spacing:.2em}.icon-button{border:1px solid #dbc086;background:#112821;color:#ffe4ab}.icon-button:hover{background:#2e6047}
#panel-portrait{position:absolute;left:10px;top:80px;width:275px;height:390px;background-image:url('assets/art/linde-portraits.png');background-repeat:no-repeat;background-size:300% 100%;background-position:left center;mask-image:linear-gradient(black 75%,transparent);pointer-events:none}dialog[data-portrait=smith] #panel-portrait{background-position:center}dialog[data-portrait=vespera] #panel-portrait{background-position:right}dialog[data-portrait=none] #panel-portrait{background-image:url('assets/art/linde-cover.png');background-size:cover;background-position:70% center}
.menu-grid{display:flex;flex-direction:column;gap:0}.menu-grid button{border:0;border-bottom:1px solid #77927544;padding:13px 17px;min-height:49px;color:#e6d8b4;font:bold 20px Georgia;background:transparent;transition:transform .13s,color .13s}.menu-grid button:hover,.menu-grid button:focus-visible{background:linear-gradient(90deg,#8ee5ba30,transparent);color:#adffd2;transform:translateX(5px)}.menu-grid button:before{content:'◆';color:#a64c50;font:12px Georgia;margin-right:16px}.menu-grid button:hover:before{color:#a5ffcd}.menu-grid kbd{background:#15372f;color:#abddb5;border:0}.muted{font-size:14px;color:#b7c1ad}#panel-body{color:#dfdcc9}#panel-body h3{font:bold 22px Georgia;color:#98d8ae}.hint{border-color:#91d7b1;background:#679d7520}
.cards,.cards.two,.equip-grid{display:grid;grid-template-columns:1fr;gap:13px}.choice,.equip-grid .choice{min-height:120px;padding:23px 22px 22px 80px;border:1px solid #a5966299;border-left:5px solid #bd894a;background:linear-gradient(100deg,#163931,#122424);box-shadow:inset 0 0 0 4px #091a1666;transition:background .15s,transform .15s}.choice:hover:not(:disabled),.choice:focus-visible{transform:translateX(4px);background:linear-gradient(100deg,#30624b,#142929);border-color:#d8ecaa}.choice .sigil{position:absolute;left:20px;top:26px;font-size:36px;margin:0;color:#ffe4a0}.choice strong,.equip-grid .choice strong{font:bold 23px Georgia;color:#f5dda3;line-height:1.15}.choice small{font-size:15px;color:#d2d9c6;line-height:1.5}.choice em{font-size:13px;color:#9ce0b3}.choice.selected{border-color:#93f2b7;background:linear-gradient(100deg,#31563c,#102824);box-shadow:inset 0 0 0 3px #85ca8e22}.choice.selected:after{color:#aff7bd;font-size:10px}.choice:not(:has(.sigil)){padding-left:25px}.choice:disabled{opacity:.53}.cloth-swatch{float:left;margin:0 20px 10px 0}.cards:has([data-hero]){grid-template-columns:1fr 1fr}.cards:has([data-hero]) .choice{padding:25px 18px 20px;min-height:180px}.cards:has([data-hero]) .sigil{position:static;margin-bottom:15px}
#panel-footer{border-top:1px solid #86b88e66;padding-top:17px;gap:14px}#panel-footer .primary,#panel-footer .secondary{border:1px solid #baac6d;background:#173b2e;color:#f6dfa5;font:bold 16px Georgia;min-height:45px;padding:12px 16px;margin:0}#panel-footer button:hover{background:#386044;color:#c0ffd2}.setting{font-size:16px;border-color:#8ba57344}.setting select{background:#13332c;border-color:#bbac73;color:#f8e1b4}.setting input{accent-color:#a2d69d}.route-step.current{background:#416345;border-color:#b8e99b;color:#d4ffba}.stat{background:#18372b66}.stat strong{color:#9ce0b3}.topic-list button:hover{background:#72dca222}.topic-list strong{color:#f6dda5}.topic-list small{color:#9ed4ac}.lore{color:#e0ddc7}
dialog[data-kind=boons]{width:min(1120px,95vw)}dialog[data-kind=boons] .choice{min-height:132px;border-left-color:#8edab8}dialog[data-kind=boons] .choice:nth-child(2){border-left-color:#e1bd71}dialog[data-kind=boons] .choice:nth-child(3){border-left-color:#bb9ade}
dialog[data-kind=dialogue]{position:fixed;bottom:3vh;top:auto;width:min(1100px,95vw);padding:22px 32px 20px 330px;min-height:265px;max-height:85dvh;overflow:auto;border:2px solid #e0bd78;background:linear-gradient(100deg,#14382bef,#091c1bf5);box-shadow:0 0 0 5px #061411,0 20px 80px #000b}dialog[data-kind=dialogue] #panel-portrait{width:290px;height:370px;top:0;left:12px;mask-image:linear-gradient(black 70%,transparent)}dialog[data-kind=dialogue] h2{font:bold 29px Georgia;text-transform:uppercase;color:#a5e7bb;border:0;margin:8px 0}.spoken{font:23px/1.5 Georgia;color:#fff0cf}.dialogue-location{font-size:12px;color:#d5bc82}.dialogue-count{color:#9dcca7}.dialogue-page{min-height:95px}.player-vitals{border-color:#a0dcaa}.health-track{border-color:#d8b974}.ability{border-bottom:2px solid #b59759;background:linear-gradient(0deg,#122a23e8,transparent)}
@media(max-width:750px){dialog{padding:22px;width:94vw}#panel-portrait{display:none}dialog h2{font-size:29px}.menu-grid button{font-size:18px;min-height:48px}.title-content{width:86vw;margin-left:7vw}.title-content h1{font-size:14vw}#title-screen{background:linear-gradient(90deg,#041111ed,#07191975),url('assets/art/linde-cover.png') 65% center/cover}.title-content .primary,.title-content .secondary{font-size:21px}.title-content .intro{max-width:300px}#loading{max-width:80vw;bottom:35px;font-size:11px}.edition{font-size:10px;bottom:8px}.choice strong,.equip-grid .choice strong{font-size:21px}.cards:has([data-hero]){grid-template-columns:1fr}.cards:has([data-hero]) .choice{min-height:110px;padding-left:70px}.cards:has([data-hero]) .sigil{position:absolute}dialog[data-kind=dialogue]{padding:19px;min-height:240px}dialog[data-kind=dialogue] #panel-portrait{display:block;position:relative;width:90px;height:100px;float:left;left:0;top:0;margin:0 15px 8px 0;mask-image:none}dialog[data-kind=dialogue] h2{font-size:24px}.spoken{font-size:19px}.title-links{gap:18px}}
@media(max-height:620px){.title-content{padding:8px 0}.title-content:before{display:none}.title-content h1{font-size:48px;margin:8px 0}.title-content .intro{margin:12px 0;font-size:16px}.title-content .primary,.title-content .secondary{font-size:19px;padding:10px 20px}.title-content .text-button{padding:8px 0}.edition,#loading{bottom:8px}dialog{max-height:94dvh}#panel-portrait{height:300px;top:70px}dialog[data-kind=dialogue]{bottom:2vh;min-height:200px}.spoken{font-size:19px}}
@media(prefers-reduced-motion:reduce){button{transition:none!important;transform:none!important}}


/* Refugio ilustrado: retratos suministrados por el usuario. */
dialog[data-portrait^=support-] #panel-portrait{background-image:url('assets/art/npc-support.png');background-size:300% 100%;}
dialog[data-portrait=support-left] #panel-portrait{background-position:left center}
dialog[data-portrait=support-center] #panel-portrait{background-position:center center}
dialog[data-portrait=support-right] #panel-portrait{background-position:right center}
dialog[data-portrait^=oracle-] #panel-portrait{background-image:url('assets/art/npc-oracles.png');background-size:300% 100%;}
dialog[data-portrait=oracle-left] #panel-portrait{background-position:left center}
dialog[data-portrait=oracle-center] #panel-portrait{background-position:center center}
dialog[data-portrait=oracle-right] #panel-portrait{background-position:right center}

/* V8 · El Refugio Recuerda — illustrated boss interludes and living-hub presentation. */
dialog[data-kind=scene]{width:min(1120px,96vw);min-height:520px;max-height:88dvh;padding:42px 46px 36px 52%;overflow:auto;border:1px solid #b99c63;background:
 linear-gradient(90deg,#080b0be8 0%,#090c0cce 43%,#090c0c72 61%,#090c0c48 100%),
 url('assets/art/linde-cover.png') 64% center/cover no-repeat;box-shadow:0 0 0 5px #070909,0 0 0 6px #9a7c4b55,0 35px 110px #000f}
dialog[data-kind=scene] #panel-portrait{display:none}dialog[data-kind=scene] h2{font-size:clamp(34px,4.3vw,58px);max-width:520px;border-bottom:1px solid #b39a624e;text-shadow:0 4px 20px #000;margin-top:24px}dialog[data-kind=scene] #panel-body{max-width:520px}.comic-scene-copy{margin-top:28px;border-left:2px solid #b7985d;padding:3px 0 3px 22px;background:linear-gradient(90deg,#080b0ba8,transparent)}.comic-scene-copy p:last-child{font:22px/1.65 Georgia,serif;color:#e3dcc9;text-shadow:0 2px 9px #000}.scene-kicker{font:11px/1.4 Arial,sans-serif;color:#c7a96a;letter-spacing:.22em;text-transform:uppercase;margin:0 0 12px}dialog[data-kind=scene] #panel-footer{max-width:520px;margin-top:30px}
dialog[data-scene="boss-0"],dialog[data-scene="phase-0"],dialog[data-scene="fall-0"]{box-shadow:inset 0 0 140px #2b6c5033,0 0 0 5px #070909,0 35px 110px #000f}dialog[data-scene="boss-1"],dialog[data-scene="phase-1"],dialog[data-scene="fall-1"]{box-shadow:inset 0 0 140px #477ca133,0 0 0 5px #070909,0 35px 110px #000f}dialog[data-scene="boss-2"],dialog[data-scene="phase-2"],dialog[data-scene="fall-2"]{box-shadow:inset 0 0 140px #ba613a40,0 0 0 5px #070909,0 35px 110px #000f}dialog[data-scene="boss-3"],dialog[data-scene="phase-3"],dialog[data-scene="fall-3"]{box-shadow:inset 0 0 140px #7552a844,0 0 0 5px #070909,0 35px 110px #000f}
.npc-story{border-left:2px solid #a98c5b;padding-left:18px;margin:16px 0;color:#d8d0bb}.hub-memory{display:inline-flex;gap:6px;align-items:center;border:1px solid #a88d5a55;padding:5px 8px;color:#d0b67c;font:11px Arial;letter-spacing:.09em}
@media(max-width:750px){dialog[data-kind=scene]{min-height:66dvh;padding:28px 24px;background:linear-gradient(0deg,#080b0bf3 0%,#080b0bdc 58%,#080b0b78 100%),url('assets/art/linde-cover.png') 68% center/cover no-repeat}dialog[data-kind=scene] h2{font-size:32px;margin-top:16px}.comic-scene-copy p:last-child{font-size:18px}}

/* ================================================================
   V9 · VOCES DEL LINDE — audiovisual interface pass
   Gothic ink, animated menus, boss-state portraits and living HUD.
   ================================================================ */
:root{--v9-red:#7e2630;--v9-red-bright:#b7434b;--v9-purple:#9d6bd4;--v9-brass:#c8aa6e;--v9-ink:#080909}
#title-screen{background:linear-gradient(90deg,#050606fd 0%,#090b0af0 27%,#090b0a91 43%,#090b0a22 67%),url('assets/art/v9-title-world.jpg') right center/cover no-repeat;overflow:hidden}
#title-screen::before{content:'';position:absolute;inset:-8%;pointer-events:none;background:radial-gradient(ellipse at 74% 20%,#8f5cbd22,transparent 28%),radial-gradient(ellipse at 67% 55%,#74b79a14,transparent 44%);animation:v9Fog 13s ease-in-out infinite alternate;mix-blend-mode:screen}
#title-screen::after{content:'';position:absolute;inset:-12%;pointer-events:none;background-image:radial-gradient(circle,#d7b47c88 0 1px,transparent 1.5px),radial-gradient(circle,#7f233677 0 1px,transparent 1.4px);background-size:113px 97px,157px 139px;background-position:10px 0,61px 49px;opacity:.32;animation:v9Ash 20s linear infinite}
.title-content{position:relative;z-index:2;padding:26px 0 34px 28px;border-left:1px solid #c1a66f52;background:linear-gradient(90deg,#05060692,transparent);width:min(455px,47vw)}
.title-content:before{content:'VOCES DEL LINDE  ·  IX';font:11px/1.2 Georgia,serif;letter-spacing:.38em;color:#baa16c;margin-bottom:22px}
.title-content h1{font-size:clamp(48px,5.5vw,86px);letter-spacing:.055em;text-shadow:0 4px 0 #271618,0 12px 35px #000;filter:drop-shadow(0 0 1px #e0cfac)}
.title-content .subtitle{color:#ccb177;letter-spacing:.28em}.title-content .intro{color:#c6c0ae;max-width:390px}
.title-content .primary,.title-content .secondary{position:relative;clip-path:polygon(0 0,95% 0,100% 50%,95% 100%,0 100%,2.5% 50%);border:1px solid #9f8358;background:linear-gradient(90deg,#34171be8,#15100ff0 73%,transparent);color:#e4d3af;font:21px/1.2 Georgia,serif;text-transform:uppercase;letter-spacing:.12em;transition:transform .16s ease,filter .16s ease,color .16s ease;padding:14px 22px 14px 30px}
.title-content .primary::before,.title-content .secondary::before{content:'✦';position:absolute;left:10px;color:#b38e58;font-size:10px}.title-content .primary:hover,.title-content .primary:focus-visible,.title-content .secondary:hover,.title-content .secondary:focus-visible{transform:translateX(9px);filter:brightness(1.22);color:#fff0c9;background:linear-gradient(90deg,#6f2028f0,#241316ee 73%,transparent)}
.title-content .text-button{font:14px Georgia,serif;letter-spacing:.08em;color:#a99e87;transition:color .15s,transform .15s}.title-content .text-button:hover,.title-content .text-button:focus-visible{color:#ddc48f;transform:translateX(4px)}
.edition{z-index:2;color:#a8997c}#loading{z-index:2;color:#a8997c;background:#08090982;border-left:1px solid #90764e;padding:7px 10px}

/* player HUD */
.player-vitals{width:335px;min-height:95px;padding:9px 14px 10px 88px;border:1px solid #9d83524a;border-left:2px solid #ba985e;background:linear-gradient(105deg,#090b0bf2 0%,#111211db 65%,transparent);clip-path:polygon(0 0,96% 0,100% 50%,96% 100%,0 100%)}
.hero-portrait{position:absolute;left:5px;top:5px;width:76px;height:84px;border:1px solid #aa8e5b88;background-image:url('assets/art/linde-portraits.png');background-size:300% 100%;background-position:left center;box-shadow:inset 0 0 24px #000,0 0 0 3px #090a09;clip-path:polygon(8% 0,92% 0,100% 10%,100% 90%,92% 100%,8% 100%,0 90%,0 10%)}
#hud[data-hero=vespera] .hero-portrait{background-position:right center}.name-line{margin-bottom:8px}.health-track{height:12px;background:#241316;border-color:#9e7750}.health-track #hp-fill{background:linear-gradient(90deg,#64242b,#b54148 70%,#d36b65)}.stamina-track #stamina-fill{background:linear-gradient(90deg,#487e72,#7fc0ac)}
body.low-health #vignette{background:radial-gradient(ellipse at center,transparent 52%,#23080acb 77%,#050202f2),repeating-radial-gradient(ellipse at center,transparent 0 54%,#5e111223 55% 56%,transparent 57% 61%);box-shadow:inset 0 0 18vw 3vw #1a0507;animation:lowInk 1.15s ease-in-out infinite alternate}

/* boss HUD with live illustrated state */
#boss-hud{top:112px;width:min(690px,63vw);height:82px;display:grid;grid-template-columns:66px minmax(0,1fr) 76px;align-items:center;gap:12px;text-align:left;padding:7px 10px;background:linear-gradient(90deg,transparent,#090a09e8 12%,#090a09e8 88%,transparent);border-top:1px solid #80694455;border-bottom:1px solid #80694455}
#boss-hud[hidden]{display:none!important}#boss-hud>div{height:auto;background:none;border:0;margin:0;padding:0}
#boss-portrait{width:62px!important;height:68px!important;background:center 23%/cover no-repeat!important;border:1px solid #b499605c!important;box-shadow:inset 0 0 18px #000,0 0 0 2px #080909;clip-path:polygon(10% 0,90% 0,100% 12%,100% 88%,90% 100%,10% 100%,0 88%,0 12%)}
.boss-copy{min-width:0}.boss-copy small{display:block;color:#9c8a69;font:9px/1.2 Arial,sans-serif;letter-spacing:.21em;margin-bottom:4px}.boss-copy #boss-name{display:block;color:#e8d7b6;font:19px/1.1 Georgia,serif;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.boss-track{height:10px!important;margin-top:9px!important;border:1px solid #a0875a77!important;padding:2px!important;background:#1b1115!important;clip-path:polygon(0 0,99% 0,100% 50%,99% 100%,0 100%)}#boss-fill{background:linear-gradient(90deg,#6e2029,#be424c 70%,#df7771);transition:width .28s ease}
#boss-phase{justify-self:end;color:#d6c18d;font:12px Georgia,serif;letter-spacing:.14em;border:1px solid #8c744d66;padding:9px 7px;white-space:nowrap}#boss-hud[data-phase="2"] #boss-phase{color:#d6a7ee;border-color:#875ca8;animation:phasePulse 1.15s ease-in-out infinite alternate}#boss-hud[data-phase="2"]{box-shadow:inset 0 0 35px #6c318122}

/* cinematic dialogue */
dialog[data-kind=dialogue]{bottom:3.5vh;width:min(1120px,96vw);min-height:275px;padding:26px 38px 22px 355px;border:1px solid #b2945c;background:linear-gradient(102deg,#11130ff7 0%,#0b0d0cf9 62%,#151111f2);box-shadow:0 0 0 4px #050606,0 -1px 0 #d0ae6b44,0 26px 90px #000e;animation:dialogueRise .25s ease-out}
dialog[data-kind=dialogue] #panel-portrait{display:block;position:absolute;left:22px;top:-76px;width:310px;height:335px;mask-image:linear-gradient(black 68%,transparent 98%);filter:drop-shadow(16px 10px 25px #000);animation:portraitBreathe 4.8s ease-in-out infinite alternate}
dialog[data-kind=dialogue] h2{font-size:31px;color:#d2b777;letter-spacing:.06em;margin:3px 0 7px}.dialogue-location{letter-spacing:.2em;color:#8d8f82}.spoken{font-size:22px;line-height:1.65;min-height:72px;color:#eee4cc;text-shadow:0 1px 8px #000}.spoken.typing::after{content:'▮';color:#b89a61;margin-left:4px;animation:caretBlink .7s steps(1) infinite}.dialogue-count{color:#807867}.dialogue-page{position:relative}.dialogue-page::before{content:'“';position:absolute;left:-22px;top:22px;font:50px Georgia;color:#8067432f}
#panel-footer .primary,#panel-footer .secondary{position:relative;overflow:hidden}#panel-footer .primary::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#fff1 48%,transparent 72%);transform:translateX(-120%);transition:transform .45s}#panel-footer .primary:hover::after{transform:translateX(120%)}

/* boss state scenes use the V9 portrait sheet crops directly */
dialog[data-kind=scene]{padding:38px 46px 34px 52%;background-color:#090a09;background-size:46% 100%,100% 100%;background-position:left center,center;background-repeat:no-repeat;animation:sceneOpen .36s ease-out}
dialog[data-kind=scene]::before{content:'';position:absolute;left:44%;top:0;bottom:0;width:11%;background:linear-gradient(90deg,transparent,#090a09);pointer-events:none}
dialog[data-scene="boss-0"]{background-image:url('assets/art/bosses/morcant_intro.jpg'),linear-gradient(90deg,#0b100b,#090909)}dialog[data-scene="phase-0"]{background-image:url('assets/art/bosses/morcant_phase.jpg'),linear-gradient(90deg,#0b100b,#090909)}dialog[data-scene="fall-0"]{background-image:url('assets/art/bosses/morcant_fall.jpg'),linear-gradient(90deg,#0b100b,#090909)}
dialog[data-scene="boss-1"]{background-image:url('assets/art/bosses/custodio_intro.jpg'),linear-gradient(90deg,#0b0d12,#090909)}dialog[data-scene="phase-1"]{background-image:url('assets/art/bosses/custodio_phase.jpg'),linear-gradient(90deg,#0b0d12,#090909)}dialog[data-scene="fall-1"]{background-image:url('assets/art/bosses/custodio_fall.jpg'),linear-gradient(90deg,#0b0d12,#090909)}
dialog[data-scene="boss-2"]{background-image:url('assets/art/bosses/forjador_intro.jpg'),linear-gradient(90deg,#150c08,#090909)}dialog[data-scene="phase-2"]{background-image:url('assets/art/bosses/forjador_phase.jpg'),linear-gradient(90deg,#150c08,#090909)}dialog[data-scene="fall-2"]{background-image:url('assets/art/bosses/forjador_fall.jpg'),linear-gradient(90deg,#150c08,#090909)}
dialog[data-scene="boss-3"]{background-image:url('assets/art/bosses/mago_intro.jpg'),linear-gradient(90deg,#100b15,#090909)}dialog[data-scene="phase-3"]{background-image:url('assets/art/bosses/mago_phase.jpg'),linear-gradient(90deg,#100b15,#090909)}dialog[data-scene="fall-3"]{background-image:url('assets/art/bosses/mago_fall.jpg'),linear-gradient(90deg,#100b15,#090909)}
dialog[data-scene^="phase-"]{border-color:#9a67bd;box-shadow:inset 0 0 90px #6d34822e,0 0 0 5px #050606,0 28px 100px #000f}dialog[data-scene^="fall-"]{filter:saturate(.75)}
.comic-scene-copy{position:relative;animation:sceneText .4s .08s both}.scene-kicker{color:#c3a76d}.comic-scene-copy p:last-child{font-size:23px}

/* banners, panels and buttons respond with ink rather than plain boxes */
#room-banner{z-index:2}#room-banner.visible strong{animation:bannerInk .52s ease-out}#room-banner.visible small{animation:bannerInk .42s ease-out}.ability{clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}
.menu-grid button,.topic-list button,.choice{transition:background .16s,transform .16s,color .16s,filter .16s}.menu-grid button:hover,.menu-grid button:focus-visible{transform:translateX(4px);color:#ead8af}.choice:hover:not(:disabled),.choice:focus-visible{filter:brightness(1.12)}

@keyframes v9Fog{from{transform:translate3d(-1.5%,0,0) scale(1)}to{transform:translate3d(1.5%,1%,0) scale(1.035)}}
@keyframes v9Ash{from{transform:translateY(-2%) translateX(0)}to{transform:translateY(8%) translateX(-2%)}}
@keyframes lowInk{from{opacity:.76}to{opacity:1}}
@keyframes phasePulse{from{text-shadow:0 0 0 transparent;transform:scale(.98)}to{text-shadow:0 0 14px #b776dc;transform:scale(1.03)}}
@keyframes dialogueRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes portraitBreathe{from{transform:translateY(1px) scale(1)}to{transform:translateY(-3px) scale(1.012)}}
@keyframes caretBlink{50%{opacity:0}}
@keyframes sceneOpen{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
@keyframes sceneText{from{opacity:0;transform:translateX(15px)}to{opacity:1;transform:translateX(0)}}
@keyframes bannerInk{from{opacity:0;filter:blur(7px);letter-spacing:.18em}to{opacity:1;filter:blur(0);letter-spacing:normal}}

@media(max-width:780px){
 .title-content{width:88vw;margin-left:6vw;padding-left:16px}.title-content .primary,.title-content .secondary{font-size:18px}.title-links{gap:18px;flex-wrap:wrap}
 .player-vitals{width:225px;padding-left:63px;min-height:76px}.hero-portrait{width:55px;height:65px}.resource-caption{display:none}
 #boss-hud{top:86px;width:82vw;grid-template-columns:48px minmax(0,1fr) 56px;height:64px;gap:8px}#boss-portrait{width:46px!important;height:50px!important}.boss-copy #boss-name{font-size:14px}.boss-copy small{font-size:7px}.boss-track{height:8px!important}#boss-phase{font-size:9px;padding:6px 4px}
 dialog[data-kind=dialogue]{padding:18px 18px 17px 124px;min-height:220px;bottom:2vh}dialog[data-kind=dialogue] #panel-portrait{position:absolute;width:112px;height:150px;left:8px;top:16px;float:none;margin:0;mask-image:linear-gradient(black 72%,transparent)}dialog[data-kind=dialogue] h2{font-size:23px}.spoken{font-size:18px;line-height:1.55}.dialogue-location{font-size:9px}
 dialog[data-kind=scene]{padding:250px 22px 24px;background-size:100% 245px,100% 100%;background-position:center top,center;min-height:72dvh}dialog[data-kind=scene]::before{left:0;top:210px;right:0;bottom:auto;width:auto;height:70px;background:linear-gradient(transparent,#090a09)}dialog[data-kind=scene] h2{font-size:30px}.comic-scene-copy p:last-child{font-size:18px}
}
@media(prefers-reduced-motion:reduce){#title-screen::before,#title-screen::after,.hero-portrait,#boss-phase,.spoken.typing::after{animation:none!important}.spoken.typing::after{display:none}}
