html,body{min-height:100%;height:100%}#app{height:100vh;height:100dvh}
:root{--ink:#edf4f8;--deep:#192b3b;--soft:#b2c0d0;--gold:#eec69b;--edge:rgba(255,255,255,.29);--glass:rgba(22,35,53,.55);--shadow:0 18px 70px rgba(3,11,22,.24)}*{box-sizing:border-box}body{margin:0;background:#142335;color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.65}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}#app{position:relative;width:100%;height:100dvh;min-height:0;overflow:hidden}.screen{display:none;position:absolute;inset:0;overflow:hidden}.screen.active{display:block}.glass{border:1px solid var(--edge);background:var(--glass);box-shadow:var(--shadow);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}.hidden{display:none!important}.overline{font-size:10px;letter-spacing:.24em;font-weight:800;color:#f4d2ad}.splash{background:linear-gradient(118deg,#172a42 0%,#35485a 46%,#ca9e9f 100%)}.cover-art{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 35%,rgba(255,230,187,.54),transparent 30%),radial-gradient(ellipse at 95% 99%,rgba(237,151,167,.65),transparent 46%),linear-gradient(transparent 64%,rgba(8,24,43,.5));overflow:hidden}.sun-halo{position:absolute;right:13%;top:13%;width:min(43vw,400px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.38);box-shadow:0 0 0 40px rgba(255,255,255,.025),0 0 0 90px rgba(255,255,255,.025),0 0 0 152px rgba(255,255,255,.012);background:radial-gradient(circle at 40% 42%,rgba(255,248,216,.4),transparent 68%)}.cover-petals{position:absolute;top:20%;right:8%;font-size:40px;color:rgba(255,229,222,.55);letter-spacing:1.7em;transform:rotate(-12deg)}.cover-content{position:relative;z-index:1;width:min(490px,90vw);height:100%;margin-left:clamp(20px,9vw,130px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:20px 0}.cover-content .overline{margin:0 0:12px}.cover-content h1{font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(36px,5.4vw,72px);line-height:1.3;letter-spacing:.11em;font-weight:500;margin:10px 0;color:#fff;text-shadow:0 9px 35px rgba(0,0,0,.2)}.cover-content h1 span{padding-left:1.4em}.cover-sub{color:#e5e8ef;font-size:clamp(12px,1.7vw,17px);letter-spacing:.23em;margin:7px 0 25px}.cover-menu{display:grid;gap:9px;width:300px;max-width:94%}.menu-btn{background:rgba(14,29,46,.26);border:1px solid rgba(255,255,255,.25);border-radius:11px;color:white;text-align:left;font-size:14px;letter-spacing:.13em;padding:10px 15px;display:flex;justify-content:space-between;align-items:center;backdrop-filter:blur(8px)}.menu-btn.primary{background:rgba(255,244,224,.93);color:#263344;font-weight:700}.menu-btn:hover:not(:disabled){border-color:#fff;background:rgba(255,255,255,.24)}.menu-btn.primary:hover{background:#fff}.cover-foot{margin-top:18px;color:#d3dbe1;opacity:.75;font-size:10px}.setup{background:radial-gradient(at 75% 20%,#796b83,transparent 40%),linear-gradient(120deg,#203749,#b19ca1);overflow:auto;padding:20px}.back-mini{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:8px 15px;font-size:12px;position:relative;z-index:3}.setup-card{width:min(520px,90vw);margin:6vh auto 8vh;padding:27px 33px;border-radius:20px}.setup-card h2{font-family:"Yu Mincho",serif;font-weight:600;font-size:28px;line-height:1.6;margin:14px 0}.setup-card p{font-size:13px;color:#e1e9ed}.setup-card label{display:block;margin-top:18px;margin-bottom:6px;font-size:13px;font-weight:700}.required,.optional{font-size:10px;font-weight:400;margin-left:6px;color:#e8ba9f}.optional{color:#c7d4df}.setup-card input{background:rgba(255,255,255,.89);border:1px solid #fff;color:#142439;border-radius:9px;padding:12px 14px;width:100%;font-size:16px}.cta{margin-top:23px;width:100%;border:0;background:#efcfaa;color:#213444;font-size:15px;font-weight:800;padding:13px;border-radius:10px}.mini-note{font-size:11px!important;color:#c5d2dc!important;margin-bottom:0}.play{background:#657d8b}.backdrop{position:absolute;inset:-2%;transition:background 1.2s;background:linear-gradient(170deg,#89a5bb 0%,#d2c1aa 65%,#708a8a);overflow:hidden}.backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,25,43,.37),transparent 52%,rgba(11,25,43,.1));pointer-events:none}.backdrop.school-bg{background:linear-gradient(160deg,#a1c2d0,#efd2b5 58%,#9ab4aa)}.backdrop.restaurant-bg{background:linear-gradient(145deg,#826f6a,#bb9086 45%,#d7b18a)}.backdrop.city-bg{background:linear-gradient(135deg,#678caa 0%,#baa9a8 65%,#e6b28a)}.backdrop.home-bg{background:linear-gradient(155deg,#879da8,#a1a8ac 48%,#dfb4a5)}.backdrop.library-bg{background:linear-gradient(145deg,#566e80,#8e8f84 50%,#bd9f87)}.backdrop.night{filter:brightness(.65) saturate(.85)}.backdrop.dusk{filter:saturate(.92) sepia(.18)}.light-patch{position:absolute;top:-15%;right:10%;width:40vw;height:40vw;background:radial-gradient(circle,rgba(255,241,208,.85),transparent 70%);filter:blur(50px)}.bg-building{position:absolute;background:rgba(255,243,232,.29);filter:blur(4px);box-shadow:inset 0 0 100px rgba(17,34,52,.1)}.bg-building-one{width:55%;height:67%;bottom:17%;left:-9%;transform:skew(-7deg);border:20px solid rgba(55,75,84,.12)}.bg-building-two{width:45%;height:56%;bottom:12%;right:-4%;transform:skew(5deg);border:19px solid rgba(55,75,84,.12)}.bg-path{position:absolute;left:0;bottom:-30%;width:140%;height:60%;transform:rotate(-8deg);background:rgba(242,225,214,.29);filter:blur(15px)}.bg-trees{position:absolute;bottom:15%;left:38%;width:17vw;height:30vw;background:rgba(54,89,84,.19);filter:blur(17px);border-radius:60% 45% 30% 25%}.restaurant-bg .bg-building{background:rgba(120,58,56,.24);border-color:rgba(244,216,178,.13)}.city-bg .bg-building{background:rgba(59,96,115,.34)}.game-header{flex-direction:row-reverse;position:absolute;top:0;left:0;right:0;z-index:6;display:flex;justify-content:space-between;align-items:flex-start;padding:14px max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));pointer-events:none}.time-panel{padding:10px 16px;border-radius:12px;min-width:162px;pointer-events:auto}.time-panel>span{font-size:12px;letter-spacing:.07em}.clockrow{display:flex;align-items:center;gap:9px}.clockrow strong{font-size:25px;font-weight:500;letter-spacing:.05em;font-variant-numeric:tabular-nums}.clock-icon{font-size:20px;color:var(--gold)}#timePeriod{margin-left:auto;color:#e5d7c9;font-size:12px}.header-tools{display:flex;gap:7px;pointer-events:auto}.header-tools button{color:#f8f8f9;background:rgba(19,32,48,.38);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(12px);border-radius:9px;padding:8px 12px;font-size:13px}.chapter-tag{position:absolute;right:16px;top:75px;padding:6px 13px;border-radius:10px;z-index:4;font-size:11px;letter-spacing:.1em}.figure-wrap{position:absolute;top:9%;bottom:24%;left:50%;width:clamp(170px,28vw,350px);transform:translateX(-50%);z-index:2;display:flex;align-items:center;justify-content:center;transition:opacity .25s}.character-figure{width:72%;height:94%;position:relative;filter:drop-shadow(0 23px 17px rgba(29,33,40,.21))}.figure-hair{position:absolute;top:6%;left:28%;width:45%;height:45%;border-radius:50% 50% 40% 43%;background:#5b4c56;opacity:.9}.figure-face{position:absolute;top:13%;left:34%;width:35%;height:28%;border-radius:43% 43% 45% 47%;background:#e6c3b9;opacity:.85}.figure-body{position:absolute;top:37%;left:11%;width:80%;height:74%;border-radius:35% 35% 4% 4%;background:linear-gradient(130deg,#b3a2af,#555773);opacity:.88}.figure-initial{position:absolute;top:55%;left:0;right:0;text-align:center;color:rgba(255,255,255,.65);font-family:"Yu Mincho",serif;font-size:60px;text-shadow:0 2px 15px rgba(0,0,0,.2)}.figure-tag{position:absolute;bottom:0;border-radius:7px;border:1px solid rgba(255,255,255,.2);background:rgba(20,32,47,.28);padding:2px 11px;font-size:10px;color:#dfebf0}.figure-wrap[data-char="hiyori"] .figure-hair{background:#9c6b51}.figure-wrap[data-char="koharu"] .figure-hair{background:#6d6257}.figure-wrap[data-char="sakuya"] .figure-hair{background:#44485e}.figure-wrap[data-char="ritsuka"] .figure-hair{background:#484b57}.figure-wrap[data-char="kureha"] .figure-hair{background:#854f61}.figure-wrap[data-char="hiyori"] .figure-body{background:linear-gradient(135deg,#e0b1ae,#977d95)}.figure-wrap[data-char="koharu"] .figure-body{background:linear-gradient(135deg,#d9c9a5,#709c89)}.figure-wrap[data-char="sakuya"] .figure-body{background:linear-gradient(135deg,#9d9fb9,#656b87)}.figure-wrap[data-char="ritsuka"] .figure-body{background:linear-gradient(135deg,#c3b6c1,#697989)}.figure-wrap[data-char="kureha"] .figure-body{background:linear-gradient(135deg,#c0929d,#625768)}.action-panel{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(820px,calc(100% - 28px));z-index:5;border-radius:19px;padding:15px 20px 12px;max-height:65%;overflow-y:auto}.action-heading{display:flex;justify-content:space-between;align-items:end;gap:15px}.action-heading h2{margin:3px 0 12px;font-size:18px;font-weight:500}.hint{font-size:11px;color:#c6d3da}.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.action-choice{color:#fff;text-align:left;background:rgba(246,252,255,.11);border:1px solid rgba(255,255,255,.25);border-radius:12px;padding:11px 12px;min-height:64px;display:flex;flex-direction:column;gap:3px;transition:.15s}.action-choice:hover:not(:disabled){background:rgba(255,255,255,.19);transform:translateY(-1px)}.action-choice .action-label{font-weight:700;font-size:13px;line-height:1.3}.action-choice .action-caption{font-size:10px;color:#e0dce0;line-height:1.4}.action-choice:disabled{border-style:dashed;opacity:.46}.action-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:8px;font-size:11px;color:#cad7df}.small-action{background:none;border:0;color:#f8d8b0;font-size:12px;white-space:nowrap}.dialogue-panel{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(900px,calc(100% - 28px));height:clamp(180px,35%,270px);z-index:6;border-radius:15px;padding:20px 28px;display:flex;flex-direction:column}.dialogue-name{font-size:13px;color:#ffe3b8;font-weight:700;letter-spacing:.13em;padding-bottom:4px}.dialogue-text{margin:4px 0;min-height:60px;font-size:clamp(14px,1.7vw,17px);line-height:1.85;white-space:pre-wrap;letter-spacing:.025em;flex:1}.dialogue-progress{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#c2cbd5}.advance{color:#ffdfb4;background:transparent;border:0;font-size:12px;padding:7px 0}.choice-list{position:absolute;left:16px;right:16px;bottom:calc(100% + 9px);display:grid;gap:6px;max-height:45vh;overflow-y:auto}.choice-list button{width:100%;padding:10px 15px;text-align:left;background:rgba(23,35,52,.82);border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:10px;backdrop-filter:blur(14px);font-size:13px}.choice-list button:hover{background:rgba(96,109,124,.88)}.toast{position:absolute;top:25%;left:50%;transform:translateX(-50%);background:rgba(16,32,44,.8);border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:13px 20px;z-index:20;font-size:13px;max-width:90vw;text-align:center;pointer-events:none}.collections{background:radial-gradient(circle at 70% 20%,#5d6174,transparent 45%),linear-gradient(130deg,#1a3041,#525569);overflow:auto;padding:25px max(20px,7vw) 70px}.collection-head{max-width:1000px;margin:0 auto}.collection-head .overline{margin-top:24px}.collection-head h2{font-family:"Yu Mincho",serif;font-size:32px;margin:6px 0 0}.collection-head p{font-size:13px;color:#d8dce2}.gallery-tabs{display:flex;gap:8px;max-width:1000px;margin:25px auto;overflow-x:auto}.gallery-tab{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;padding:10px 16px;white-space:nowrap;font-size:13px}.gallery-tab.selected{background:#f2d8bc;color:#213449}.gallery-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:1000px;margin:0 auto}.memory-card{background:rgba(255,255,255,.1);color:#fff;text-align:left;border:1px solid rgba(255,255,255,.23);border-radius:13px;padding:17px;min-height:113px;display:flex;flex-direction:column;justify-content:space-between}.memory-card strong{font-size:14px}.memory-card small{font-size:11px;color:#cbd2df}.memory-card.locked{opacity:.55;cursor:default}.overlay{position:absolute;inset:0;z-index:25;background:rgba(5,13,25,.7);display:flex;align-items:center;justify-content:center;padding:14px;backdrop-filter:blur(7px)}.modal-card{width:min(515px,100%);max-height:92dvh;overflow:auto;border-radius:18px;padding:26px}.modal-card h2{font-family:"Yu Mincho",serif;font-size:24px;margin-top:0}.modal-card p,.modal-card label{font-size:13px}.modal-card button:not(.modal-dismiss){border:1px solid rgba(255,255,255,.25);border-radius:9px;padding:10px 12px;background:rgba(255,255,255,.14);color:#fff;font-size:13px;margin:4px;min-width:125px}.modal-dismiss{display:block;margin:20px 0 0 auto;padding:10px 21px;color:#1c3143;background:#f0d1b0;border:0;border-radius:9px}.setting-row{margin:16px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.setting-row select{background:#e8edf2;color:#24384e;border:0;border-radius:7px;padding:7px}.setting-row input{accent-color:#f4d0a8}.record{border-bottom:1px solid rgba(255,255,255,.13);padding:10px 0;font-size:13px}.record small{display:block;color:#cbd5df;font-size:11px}.menu-actions{display:flex;flex-wrap:wrap;gap:4px}.menu-actions .danger{color:#ffe0d2!important}.ending-card{max-width:620px;margin:8vh auto;background:rgba(19,35,49,.67);border:1px solid rgba(255,255,255,.3);border-radius:18px;padding:33px;backdrop-filter:blur(12px)}.ending-card h2{font-family:"Yu Mincho",serif;font-size:29px}.ending-card p{line-height:2}.muted{color:#bfcddd;font-size:12px}::selection{background:#eac3ac;color:#233549}
@media(min-width:1100px){.figure-wrap{left:67%;bottom:19%;width:360px}.action-panel{left:37%;width:min(650px,58vw);transform:translateX(-50%)}.dialogue-panel{width:min(950px,90vw)}}@media(max-width:650px){#app{min-height:0}.cover-content{margin-left:7vw}.cover-content h1{font-size:clamp(31px,9vw,52px)}.cover-sub{font-size:12px}.cover-menu{width:min(300px,85vw)}.setup-card{padding:23px}.action-panel{max-height:64%;padding:12px}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.action-choice{min-height:55px;padding:8px 10px}.action-heading h2{font-size:16px}.time-panel{padding:6px 11px;min-width:134px}.time-panel>span{font-size:10px}.clockrow strong{font-size:20px}.chapter-tag{top:59px;font-size:10px}.figure-wrap{bottom:27%;top:12%;width:43vw;max-width:210px}.dialogue-panel{height:clamp(190px,38%,245px);padding:12px 15px}.dialogue-text{font-size:14px}.gallery-items{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-height:550px){.cover-content h1{font-size:clamp(28px,6vh,38px);margin:4px 0}.cover-sub{margin:3px 0 9px}.cover-menu{gap:5px}.menu-btn{padding:5px 12px}.cover-foot{margin-top:8px}.action-panel{max-height:70%;padding:10px 15px}.action-heading h2{margin:0 0 7px;font-size:15px}.action-choice{min-height:43px;padding:6px 9px}.dialogue-panel{height:clamp(145px,44%,205px);padding:10px 18px}.dialogue-text{min-height:35px}.figure-wrap{bottom:25%;top:4%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0s!important;transition-duration:0s!important}}

.backdrop.summer{filter:saturate(1.18) brightness(1.06)}.backdrop.autumn{filter:sepia(.24) saturate(.86)}.backdrop.winter{filter:saturate(.65) brightness(.92)}.backdrop.night.summer{filter:saturate(.85) brightness(.65)}.backdrop.night.autumn{filter:sepia(.15) brightness(.61)}.backdrop.night.winter{filter:saturate(.55) brightness(.58)}

/* v0.2: transparent dialogue character art, consistent in landscape and portrait. */
.figure-wrap {top:6%;bottom:25%;left:62%;width:min(43vw,450px);transform:translateX(-50%);z-index:3;display:flex;align-items:flex-end;pointer-events:none}
.portrait-image {height:100%;width:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 17px rgba(17,19,42,.36))}
.figure-tag {position:absolute;right:8%;bottom:4%;font-weight:600;font-size:11px;white-space:nowrap;background:rgba(17,34,53,.6)}
.gallery-toolrow{max-width:1000px;margin:12px auto 0}.gallery-toolrow button{font-size:12px}
.preview-controls{display:flex;flex-wrap:wrap;gap:7px}.preview-controls select {background:#f2e8e5;color:#24354a;border-radius:8px;padding:9px;font-size:14px;max-width:100%;flex:1;min-width:90px}
.preview-portrait-box {height:min(48vh,345px);display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(130deg,#6d7789,#b2acba);border-radius:14px;overflow:hidden;margin:12px 0}.preview-portrait-box img{max-height:100%;max-width:90%;object-fit:contain;object-position:center bottom}
.seasonal-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.seasonal-choices .seasonal-button {min-width:0 !important;margin:0 !important;padding:10px 6px !important}
@media(min-width:1100px){.figure-wrap{left:67%;width:min(38vw,490px);bottom:23%}}
@media(max-width:750px){.figure-wrap{left:62%;width:54vw;top:5%;bottom:35%}.figure-tag{font-size:9px;right:2%;bottom:1%}.action-panel{max-height:57%}.dialogue-panel{height:clamp(148px,47%,230px);padding:11px 15px}.dialogue-text{font-size:14px!important;line-height:1.55}.dialogue-name{font-size:11px}}
@media (max-height:470px) and (orientation:landscape){.figure-wrap{top:4%;bottom:27%;width:min(34vw,370px);left:66%}.dialogue-panel{height:48%;padding:9px 17px}.action-panel{max-height:65%}.preview-portrait-box{height:48vh}.figure-tag{display:none}}
/* Landscape dialogue box should not obscure most of the speaking portrait. */
@media (max-height:470px) and (orientation:landscape){
  .figure-wrap{top:0%;bottom:14%;width:min(40vw,390px);left:67%}
  .dialogue-panel{height:clamp(126px,36%,148px);padding:10px 18px;max-height:38%}
  .dialogue-text{line-height:1.55!important;font-size:13px!important;min-height:0}
  .dialogue-name{font-size:11px;padding-bottom:0}
  .dialogue-progress{margin-top:auto}
  .scene-tag{top:65px}
}
@media (min-height:471px) and (min-width:751px){.dialogue-panel{height:clamp(146px,27%,192px)}}
@media (max-width:650px) and (orientation:portrait){
 .figure-wrap{left:50%;width:min(82vw,390px);top:11%;bottom:33%}
 .figure-tag{display:none}
}

/* v0.3 Minimal, landscape-first UI: deliberately frameless. */
.splash{background:#fbe8df}
.splash .cover-art{inset:0;background-image:url('assets/title_spring.png');background-size:cover;background-position:center center}
.splash .cover-art:after{content:"";position:absolute;inset:auto auto 0 0;width:min(45%,430px);height:45%;background:linear-gradient(0deg,rgba(31,35,54,.4),transparent);pointer-events:none}
.cover-menu{position:absolute;z-index:2;left:clamp(15px,4vw,55px);bottom:clamp(12px,4vh,35px);width:230px;display:grid;gap:2px}
.menu-btn,.menu-btn.primary{color:white;background:transparent;border:0;border-radius:0;padding:4px 8px 4px 12px;font-size:clamp(12px,1.45vw,15px);font-weight:650;text-shadow:0 2px 7px rgba(33,23,44,.9);backdrop-filter:none;-webkit-backdrop-filter:none;line-height:1.45;border-left:2px solid transparent}
.menu-btn.primary{border-left-color:#ffeac9;color:#fff6e9}
.menu-btn:hover:not(:disabled),.menu-btn.primary:hover{background:rgba(35,30,48,.18);border-left-color:white}
.setup{display:none;background:linear-gradient(135deg,#d5aeb3,#93abbc);overflow:hidden;padding:0}
.setup.active{display:flex;align-items:center;justify-content:center}
.setup .back-mini{position:absolute;top:14px;left:16px;background:transparent;border:0;font-size:13px}
.setup-card{margin:0;max-width:min(370px,85vw);padding:22px 14px;background:none;box-shadow:none;border:0;text-align:center}
.setup-card h2{font-size:clamp(20px,5vh,27px);line-height:1.25;margin:0 0 16px}
.setup-card input{height:46px;text-align:center;background:rgba(255,255,255,.94);font-size:17px;border:0;border-radius:9px}
.setup-card .cta{margin-top:12px;height:44px;border-radius:9px;padding:8px}
.game-header{padding:9px max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));align-items:center}
.time-panel{display:flex;align-items:center;gap:10px;min-width:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none;padding:3px 1px;color:white;text-shadow:0 1px 7px rgba(12,24,35,.8);white-space:nowrap}
.time-panel>span,.time-panel strong{font-size:clamp(11px,1.65vw,14px);letter-spacing:.015em;font-weight:600}
.time-panel .place-inline{border-left:1px solid rgba(255,255,255,.55);padding-left:10px;max-width:165px;overflow:hidden;text-overflow:ellipsis}
.header-tools button{border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;font-size:22px;line-height:1;padding:6px;color:white;text-shadow:0 1px 6px rgba(12,24,35,.8)}
.figure-wrap,.figure-wrap[data-char]{left:50%;transform:translateX(-50%);top:4%;bottom:113px;width:min(47vw,450px);max-width:none;z-index:3;align-items:flex-end}
.portrait-image{width:100%;height:100%;max-height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 9px rgba(18,26,39,.35))}
.figure-tag{display:none}
.dialogue-panel{left:0;bottom:0;transform:none;border:0;border-top:1px solid rgba(255,255,255,.19);border-radius:0;width:100%;height:110px;max-height:none;padding:9px clamp(17px,4vw,60px) 13px;display:flex;flex-direction:column;justify-content:flex-start;background:rgba(21,30,43,.76);backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);box-shadow:none;z-index:7}
.dialogue-name{font-size:12px;line-height:1.2;padding:0;letter-spacing:.04em}
.dialogue-text,.dialogue-text[style]{font-size:clamp(12px,1.8vw,15px);line-height:1.47;min-height:0;flex:1;overflow:auto;margin:4px 29px 0 0;letter-spacing:0}
.advance{position:absolute;bottom:9px;right:20px;font-size:22px;line-height:1;background:transparent;border:0;color:#ffe0c9;padding:0 8px}
.choice-list{position:absolute;left:50%;right:auto;transform:translateX(-50%);width:min(620px,calc(100% - 24px));bottom:calc(100% + 7px);display:flex;flex-direction:column;gap:0;max-height:50vh;overflow:auto;padding:5px 10px;background:rgba(22,32,45,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.choice-list button{padding:6px 12px;border:0;border-bottom:1px solid rgba(255,255,255,.15);border-radius:0;background:transparent;text-align:left;color:white;font-size:13px;line-height:1.45;backdrop-filter:none}
.choice-list button:last-child{border-bottom:0}
.choice-list button:hover{background:rgba(255,255,255,.12)}
.action-panel{left:clamp(16px,5vw,72px);bottom:clamp(10px,4vh,22px);transform:none;width:min(345px,65vw);max-height:70vh;overflow:auto;background:rgba(21,33,45,.65);border:0;box-shadow:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:5px;padding:8px 13px 5px}
.action-panel h2{font-size:14px;font-weight:600;line-height:1.4;margin:0 0 5px;color:white}
.action-grid{display:flex;flex-direction:column;gap:0}
.action-choice{display:flex;flex-direction:row;align-items:baseline;min-height:0;width:100%;gap:10px;padding:5px 4px;border:0;border-bottom:1px solid rgba(255,255,255,.14);border-radius:0;background:none;color:#fff;transition:none}
.action-choice:last-child{border-bottom:0}
.action-choice .choice-letter{color:#f6d3af;font-family:Georgia,serif;font-weight:700;font-size:13px;flex:0 0 20px}
.action-choice .action-label{font-size:12px;line-height:1.3;font-weight:550}
.action-choice:hover:not(:disabled){transform:none;background:rgba(255,255,255,.1)}
.action-choice:disabled{border-style:solid}
.action-footer{display:flex;gap:10px;justify-content:flex-start;padding-top:2px;margin-top:3px;border-top:1px solid rgba(255,255,255,.15)}
.action-footer .small-action{color:#dfe9ed;font-size:10px;padding:2px 3px}
@media (orientation:portrait){.figure-wrap,.figure-wrap[data-char]{width:min(88vw,470px);left:50%;top:6%;bottom:138px}.dialogue-panel{height:134px;padding:12px 14px 17px}.dialogue-text,.dialogue-text[style]{font-size:15px}.action-panel{left:12px;bottom:14px;width:calc(100% - 24px);max-height:45vh}.cover-menu{bottom:4vh;left:6vw;width:190px}.menu-btn,.menu-btn.primary{font-size:14px;padding:6px 10px}.time-panel{gap:7px}.time-panel .place-inline{max-width:115px;padding-left:7px}}
@media (orientation:landscape) and (max-height:470px){.figure-wrap,.figure-wrap[data-char]{top:3%;bottom:108px;left:50%;width:min(40vw,390px)}.dialogue-panel{height:106px;padding:8px 24px 10px}.dialogue-text,.dialogue-text[style]{font-size:13px}.action-panel{max-height:74vh}.action-choice{padding:4px}.cover-menu{bottom:11px}}
@media (max-height:320px) and (orientation:landscape){.dialogue-panel{height:89px}.figure-wrap,.figure-wrap[data-char]{bottom:92px}.menu-btn,.menu-btn.primary{font-size:11px;padding:2px}.cover-menu{gap:0}.setup-card input{height:38px}.setup-card h2{margin-bottom:8px}.setup-card .cta{height:38px}}
/* A slightly larger speaking portrait, bottom aligned above the text strip. */
@media (orientation:landscape){.portrait-image{transform:scale(1.13);transform-origin:center bottom}}
