@font-face{font-family:LocalSerif;src:local('Noto Serif KR'),local('Batang'),local('Georgia');font-display:swap}
:root{color-scheme:dark;--bg:#0b161a;--ink:#eeeae0;--muted:#a8b4b2;--gold:#cfb782;--line:rgba(201,186,145,.23);--stage-accent:#ba9c69;--serif:LocalSerif,'Noto Serif KR','Batang',Georgia,serif;--sans:'Malgun Gothic','Apple SD Gothic Neo',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 var(--sans);overflow-x:hidden}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:transparent;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.35}button:focus-visible,input:focus-visible{outline:2px solid #f3d494;outline-offset:5px}button{transition:background .2s,transform .2s,color .2s}button:hover:not(:disabled){color:#fff}a{color:var(--gold)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.35;word-break:keep-all}h1{font-size:clamp(30px,4vw,54px)}h2{font-size:32px}h3{font-size:24px}small{font-size:11px}#app{position:relative;min-height:100svh;isolation:isolate;overflow:hidden}#app>main,#app>header,#app>footer{position:relative}::selection{background:#b8a374;color:#10191c}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);font-weight:600}.muted{color:var(--muted)}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:46px;padding:12px 25px;letter-spacing:.3px;font-size:13px}.primary{background:var(--gold);color:#182124;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}.primary:hover:not(:disabled){background:#e5cc96;color:#101c20;transform:translateY(-1px)}.primary span{margin-left:auto;font-size:19px}.secondary{border:1px solid var(--line);background:rgba(14,29,34,.48)}.secondary:hover:not(:disabled){background:rgba(207,183,130,.13);border-color:var(--gold)}.large{min-height:53px}.small{padding:7px 17px;min-height:36px;font-size:12px}.quiet{color:var(--muted);font-size:12px;padding:8px 10px}.quiet:hover{color:var(--gold)!important}.text-button{padding:10px 0;font-size:12px;color:#ded8c8}.text-button span{margin-left:26px;color:var(--gold)}.icon-button{display:grid;place-items:center;width:36px;height:36px;font-size:19px;color:#d9d0b7;border:1px solid var(--line)}.icon-button:hover{background:#cbb68320}.full-width{width:100%}.row-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.danger{color:#c49589}.topbar{z-index:10;height:92px;margin:0 4.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;text-align:left;gap:12px;padding:0;font-family:var(--serif);font-size:14px;letter-spacing:1px}.brand img{width:37px;height:42px;opacity:.9}.brand small{display:block;font:8px/1.9 var(--sans);letter-spacing:2px;color:#a5aeaa}.section-label{font-size:9px;letter-spacing:2.5px;color:#a5b3b5}.topbar nav{display:flex;align-items:center;gap:12px}.title-backdrop{position:absolute;inset:0;z-index:-3;background:#13262c url('assets/hero.webp') center/cover no-repeat}.title-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,17,22,.81),rgba(5,17,22,.39) 47%,rgba(5,17,22,.03) 77%),linear-gradient(0deg,#08151a 0%,transparent 34%,rgba(7,18,23,.27) 90%)}.grain{position:absolute;inset:0;z-index:-1;opacity:.06;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.6' filter='url(%23n)'/%3E%3C/svg%3E")}.title-main{padding:clamp(50px,9vh,100px) 9% 80px;min-height:calc(100svh - 172px)}.title-main>.eyebrow{display:flex;align-items:center;gap:14px;letter-spacing:2px}.title-main>.eyebrow span{width:29px;height:1px;background:var(--gold)}.title-main h1{position:relative;margin-top:24px;font-size:clamp(44px,5.2vw,78px);letter-spacing:-3px;line-height:1.22;max-width:610px;text-shadow:0 3px 30px #07171b}.title-main h1 small{display:block;font:17px/1.5 var(--serif);letter-spacing:3px;margin-bottom:13px;color:#d4cdbd}.title-main h1 em{font-style:normal;color:#ddc695}.title-main h1 i{display:block;font:11px/1.4 Georgia,serif;letter-spacing:15px;margin:20px 0 0 3px;color:#a89e87}.title-copy{font-size:13px;line-height:1.9;margin-top:26px;color:#b4c1c1;letter-spacing:.5px}.title-actions{display:grid;width:286px;gap:11px;margin-top:29px}.title-actions .primary{justify-content:space-between}.title-actions .secondary{justify-content:space-between;font-size:12px}.title-actions small{color:#93a0a1;font-size:10px}.title-actions .text-button{text-align:left;padding:9px 2px}.title-meta{display:flex;gap:0;font-size:9px;color:#94a09f;letter-spacing:1px;margin-top:25px}.title-meta span+span:before{content:'·';margin:0 12px;color:var(--gold)}.title-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:80px;margin:0 4.5%;border-top:1px solid var(--line);font-size:10px;color:#99a7a7;letter-spacing:.5px}.title-footer b{font-size:18px;letter-spacing:4px;color:var(--gold);margin-left:10px}.chapter-dots{display:flex;gap:13px;align-items:center}.chapter-dots span{font:10px Georgia;color:#9d9c8c}.chapter-dots span:first-child{color:#dfc68e}.chapter-dots i{width:32px;height:1px;background:var(--line)}
.scene-art{position:absolute;inset:0;z-index:-3;background-image:url('assets/scenes.webp');background-size:200% 300%;background-repeat:no-repeat}.art-0{background-position:0 0}.art-1{background-position:100% 0}.art-2{background-position:0 50%}.art-3{background-position:100% 50%}.art-4{background-position:0 100%}.art-5{background-position:100% 100%}.story-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,rgba(5,14,18,.97),rgba(7,19,22,.10) 65%,rgba(7,19,22,.45)),linear-gradient(90deg,rgba(8,21,25,.8),transparent 78%)}.story-heading{position:absolute;top:24%;left:7%}.story-heading h2{font-size:clamp(26px,4vw,48px);margin-top:14px}.screen-story{display:flex;flex-direction:column;min-height:100svh}.screen-story>.scene-art{background-size:200% 300%}.screen-story .topbar{flex-shrink:0}.dialogue-panel{display:flex;gap:28px;align-items:center;width:86%;max-width:1150px;margin:auto auto 45px;padding:32px 35px;background:linear-gradient(105deg,rgba(9,22,27,.93),rgba(17,30,34,.9));border:1px solid var(--line);border-left:2px solid var(--gold);box-shadow:0 20px 80px #0007;min-height:215px}.portrait{background-image:url('assets/scenes.webp');background-size:auto 300%;background-repeat:no-repeat;background-color:#14282e;width:170px;height:210px;border:1px solid var(--line);box-shadow:0 10px 35px #0005;flex-shrink:0}.portrait.art-0,.portrait.art-2,.portrait.art-4{background-position-x:34%}.portrait.art-1,.portrait.art-3,.portrait.art-5{background-position-x:98%}.hero-portrait{background-image:url('assets/hero.webp');background-size:auto 160%;background-position:95% 10%}.dialogue-panel .portrait{width:100px;height:120px}.dialogue-text{flex:1}.speaker{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:2px;color:var(--gold);margin-bottom:14px}.speaker span{font:10px Georgia;color:#8a999b;letter-spacing:3px}.dialogue-text p{font-family:var(--serif);font-size:clamp(17px,2vw,24px);line-height:1.8;word-break:keep-all;min-height:50px}.dialogue-actions{display:flex;justify-content:flex-end;gap:20px;align-items:center;margin-top:21px}.dialogue-actions .primary{min-width:162px}
.map-backdrop{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 50% 50%,#17373d,#0b1c22 75%)}.map-backdrop:after{content:'';position:absolute;inset:0;opacity:.08;background:url('assets/hero.webp') center/cover;mix-blend-mode:luminosity}.map-title{display:flex;justify-content:space-between;align-items:flex-end;margin:35px 7% 0;position:relative;z-index:2}.map-title h2{margin-top:6px;font-size:32px}.map-title p{font-size:11px;color:#94a9aa;margin-top:5px}.progress-label{font:38px Georgia;color:var(--gold)}.progress-label small{font:11px var(--sans);color:#8fa5a6}.map-canvas{width:88%;max-width:1250px;aspect-ratio:1000/560;margin:-12px auto 0;position:relative!important}.sea-chart{position:absolute;width:100%;height:100%;overflow:visible}.land path{fill:#364745;stroke:#879085;stroke-width:1;opacity:.75}.coast-lines path{fill:none;stroke:#86a09c;stroke-width:.6;opacity:.16}.map-text text{font:12px var(--serif);fill:#9ca995;letter-spacing:3px}.map-text .ocean-label{font:italic 13px Georgia;fill:#a4aaa0;letter-spacing:5px;text-anchor:middle;opacity:.5}.route-shadow{fill:none;stroke:#d1b576;stroke-width:10;opacity:.035}.route{fill:none;stroke:#bba77b;stroke-width:1.6;stroke-dasharray:5 8;opacity:.6}.compass{fill:none;stroke:#a8a17f;stroke-width:.8;opacity:.55}.compass path{fill:#a8a17f22}.compass text{fill:#c0ad87;font:11px Georgia;stroke:none;text-anchor:middle}.map-node{position:absolute;transform:translate(-50%,-22%);z-index:2;text-align:center;min-width:115px;padding:0}.map-node:hover:not(:disabled){transform:translate(-50%,-22%) translateY(-3px)}.node-ring{display:grid;place-items:center;margin:0 auto 9px;width:38px;height:38px;border-radius:50%;border:1px solid #af9e76;background:#11282c;box-shadow:0 0 0 5px #d1b57e0b;font:13px Georgia;color:#dac38e}.map-node strong{display:block;font-family:var(--serif);font-size:15px;line-height:1.5;white-space:nowrap;font-weight:400;text-shadow:0 2px 8px #071418}.map-node small{font-size:9px;color:#9da9a0}.map-node.locked{opacity:.5}.map-node.locked .node-ring{border-color:#6e8785;color:#94a3a3}.map-node.cleared .node-ring{background:#536551;color:#e5dfc4}.map-node.current .node-ring{background:#ccb880;color:#1c302e;box-shadow:0 0 0 6px #d1b57e16,0 0 30px #d1b57e33;animation:pulse 3s infinite}.map-node.current strong{color:#e5d2a9}.troy-marker{position:absolute;left:88%;top:20%;text-align:center;font-size:12px;color:#c7c6ac;transform:translate(-50%,-50%)}.troy-marker i{display:block;width:7px;height:7px;background:var(--gold);transform:rotate(45deg);margin:0 auto 6px}.troy-marker small{display:block;font-size:9px;color:#8e9f9e}.ship-marker{position:absolute;z-index:4;pointer-events:none;transform:translate(-50%,-130%);text-align:center;filter:drop-shadow(0 4px 8px #0009)}.ship-marker img{width:32px;height:32px;border:1px solid var(--gold);border-radius:50%}.ship-marker span{display:block;font-size:8px;background:#102326;color:#d2bf95;padding:1px 5px;white-space:nowrap}.ship-marker.arrived{animation:bob 3s ease-in-out infinite}.destination{display:flex;align-items:center;gap:25px;margin:0 7% 32px;padding:20px 0;border-top:1px solid var(--line)}.destination-art{position:relative;isolation:isolate;width:130px;height:84px;border:1px solid var(--line);flex-shrink:0;overflow:hidden}.destination-copy{flex:1}.destination-copy h3{margin:4px 0 2px;font-size:25px}.destination-copy p{font-size:11px;color:#93a5a5}.destination-copy .eyebrow{font-size:9px}.destination-copy .eyebrow span{color:#92a4a3;letter-spacing:1px}.destination-actions{text-align:right;display:flex;align-items:center;gap:12px}.destination-actions>span{font-size:10px;color:#98aaa6;max-width:140px;line-height:1.8}.destination-actions .quiet{position:absolute;right:0;bottom:-10px;font-size:10px}
.screen-battle{min-height:100svh}.battle-background{opacity:.2;filter:saturate(.65);background-size:200% 300%}.battle-shade{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at center,#091c1d66,#071319da 85%)}.screen-battle .topbar{height:76px}.battle-layout{display:grid;grid-template-columns:minmax(150px,1fr) minmax(360px,640px) minmax(150px,1fr);gap:clamp(22px,4vw,65px);max-width:1420px;margin:0 auto;padding:30px 5% 10px;align-items:start}.player-panel,.boss-panel{padding-top:45px;text-align:center}.player-panel .portrait,.boss-panel .portrait{width:min(100%,190px);height:clamp(150px,18vw,235px);margin:auto;mask-image:linear-gradient(#000 75%,transparent);border:0;box-shadow:none}.player-title{margin-top:7px}.player-title .eyebrow{font-size:8px;letter-spacing:1.5px;color:var(--stage-accent)}.player-title h2{font-size:25px;margin-top:7px}.player-title p{font-size:10px;color:#91a29f;margin-top:7px}.player-score{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px}.player-score>span{font:48px/1 Georgia;color:#e4e1d8}.player-score small{width:100%;font-size:9px;letter-spacing:2px;color:#aab1a8}.mini-disc{display:inline-block;vertical-align:middle;flex-shrink:0;width:23px;height:23px;border-radius:50%}.mini-disc.black{background:radial-gradient(circle at 35% 28%,#536065 0%,#1c272b 34%,#080f12 76%);border:1px solid #687376;box-shadow:0 2px 4px #0008}.mini-disc.white{background:radial-gradient(circle at 33% 25%,#fffef5,#dadbd0 53%,#9caaa5);border:1px solid #f7edcc;box-shadow:0 2px 4px #0008}.player-detail{display:flex;justify-content:space-between;gap:6px;border-top:1px solid var(--line);padding-top:17px;margin-top:23px;font-size:9px;color:#9aaba8}.player-detail b{color:var(--stage-accent);font-weight:400;font-size:12px}.difficulty{letter-spacing:2px;font-size:9px!important}.difficulty i{font-style:normal;opacity:.3}blockquote{font:13px/1.9 var(--serif);color:#afb5aa;margin:25px 0;word-break:keep-all}.chapter-progress{display:flex;justify-content:center;gap:8px}.chapter-progress i{height:3px;width:23px;background:#3a4946}.chapter-progress .done{background:#65795e}.chapter-progress .active{background:var(--gold)}.ai-detail{font-size:9px;color:#839793;line-height:1.8}.board-heading{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.board-heading .eyebrow{font-size:8px;letter-spacing:2.5px}.board-heading h2{font-size:29px;margin-top:3px}.board-size{font:12px Georgia;letter-spacing:1px;color:var(--gold);padding:7px 10px;border:1px solid var(--line)}.turn-status{display:flex;align-items:center;justify-content:center;gap:10px;height:43px;margin:17px 0 4px;background:linear-gradient(90deg,transparent,#72938b18,transparent);font-size:12px;color:#dbcba8}.turn-status small{font-size:9px;color:#99aaa5;margin-left:5px}.turn-status .mini-disc{width:17px;height:17px}.thinking{color:#b9ccc6}.thinking-dots{display:flex;gap:4px}.thinking-dots i{width:4px;height:4px;background:var(--gold);border-radius:50%;animation:blink 1.1s infinite}.thinking-dots i:nth-child(2){animation-delay:.16s}.thinking-dots i:nth-child(3){animation-delay:.32s}.board-tools{display:flex;align-items:center;justify-content:space-between;margin:3px 0 7px;font-size:9px;color:#a8b4a9}.board-tools>div{display:flex;gap:2px}.tool{padding:3px 8px;min-height:29px;font-size:11px;color:#bcbda9;border:1px solid #c4ae7420}.tool:hover{background:#c4ae7420}.board-viewport{overflow:auto;max-height:min(62vh,670px);max-width:100%;scrollbar-width:thin;scrollbar-color:#978462 #132b2c;border:6px solid #283b38;outline:1px solid #a395664d;box-shadow:0 15px 60px #0005,inset 0 0 0 2px #b2a07233;padding:3px;background:#8e88694a;overscroll-behavior:contain}.board{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));aspect-ratio:1;gap:1px;background:#67766544;isolation:isolate}.cell{position:relative;display:block;aspect-ratio:1;min-width:0;min-height:0;padding:0;border-radius:0;background:linear-gradient(135deg,#28534d,#244740);touch-action:pan-x pan-y}.cell:nth-child(3n){background:linear-gradient(135deg,#29524b,#244a43)}.cell.legal:hover{background:#45665a}.disc{position:absolute;width:79%;height:79%;left:10.5%;top:10.5%;border-radius:50%;display:none;pointer-events:none}.occupied .disc{display:block}.black .disc{background:radial-gradient(ellipse at 34% 23%,#596366,#2e3a3c 24%,#152124 51%,#060e10 95%);border:1px solid #82928a77;box-shadow:1px 2px 3px #0008,inset 0 0 1px #c4d2c240}.white .disc{background:radial-gradient(ellipse at 34% 23%,#fffef0,#e6e6d8 34%,#c3cbc0 68%,#8b9e94);border:1px solid #f4f1d8a8;box-shadow:1px 2px 3px #0007}.move-dot{display:none;position:absolute;left:40%;top:40%;width:20%;height:20%;border-radius:50%;background:#d7be80aa;box-shadow:0 0 10px #c0b97b20;pointer-events:none}.legal .move-dot{display:block}.cell.selected{box-shadow:inset 0 0 0 2px #f4d695;background:#71896a}.cell.selected .move-dot{width:65%;height:65%;left:17.5%;top:17.5%;background:#0d202780;border:1px dashed #dfc988}.last-move:after{content:'';position:absolute;inset:40%;border:1px solid #d3ad6f;transform:rotate(45deg);pointer-events:none}.flipping .disc{animation:flip .38s ease-in-out both;animation-delay:var(--delay,0ms)}.board-bottom{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:5px;font-size:9px;color:#92a29b}.board-bottom>span{display:flex;align-items:center;gap:7px}.legal-dot{display:inline-block;width:6px;height:6px;background:var(--gold);border-radius:50%}.last-dot{display:inline-block;width:6px;height:6px;border:1px solid var(--gold);transform:rotate(45deg)}.board-bottom .quiet{font-size:10px;padding:3px 0}.selection-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;min-height:36px}.selection-bar>span{font-size:10px;color:#bfc7b7}.selection-bar button:disabled{opacity:.2}.battle-tip{font-size:10px;color:#8c9d97;text-align:center;line-height:1.8;margin-top:9px;word-break:keep-all}.battle-footer{display:flex;justify-content:space-between;align-items:center;margin:10px 5% 0;padding:14px 0;border-top:1px solid var(--line);font-size:9px;letter-spacing:1px;color:#819691}.save-light{display:inline-block;width:4px;height:4px;border-radius:50%;background:#a3bd8b;margin-left:5px}
.victory-content{max-width:670px;padding:clamp(45px,8vh,110px) 0 65px;margin-left:8%;text-align:left}.victory-symbol{font:60px Georgia;color:var(--gold);line-height:1;margin-bottom:10px;text-shadow:0 0 40px #d5b271}.victory-content h1{margin:20px 0;font-size:44px;letter-spacing:-1px}.victory-quote{font:20px/1.7 var(--serif);color:#ddcba3;word-break:keep-all}.narrative{font:14px/2 var(--serif);color:#aebbb8;max-width:480px;word-break:keep-all;margin-top:21px}.victory-stats{display:flex;gap:45px;margin:33px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:470px}.victory-stats div{display:grid;gap:6px}.victory-stats span{font-size:9px;color:#abb6b0;letter-spacing:1px}.victory-stats b{font:29px Georgia;color:#e7d8b8}.victory-stats i{font-style:normal;color:#8e9c94}.saved-note{display:block;color:#8e9d92;font-size:9px;margin-top:12px}.defeat-content{max-width:740px;margin:14vh auto 80px;text-align:center;padding:0 25px}.defeat-content h1{font-size:38px;margin:16px 0 25px}.defeat-content>p{font-family:var(--serif);color:#b7c1b8}.result-score{display:flex;gap:27px;align-items:center;justify-content:center;margin:30px 0}.result-score span{font-size:11px;color:var(--muted)}.result-score b{display:block;font:50px Georgia;color:var(--ink)}.result-score i{font:30px Georgia;color:var(--gold)}.defeat-content .row-actions{margin-top:30px}.summary-backdrop{position:absolute;inset:0;opacity:.23;z-index:-2}.summary-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b161aee,#0b161a88)}.summary-content{max-width:680px;padding:45px 28px 70px;margin:auto;text-align:center}.summary-content h1{font-size:30px;margin:10px 0 14px}.summary-content>p{font:13px/1.8 var(--serif);color:#aab7ae}.total-score{display:flex;flex-direction:column;margin:30px 0 22px}.total-score>span{font-size:10px;letter-spacing:2px;color:var(--gold)}.total-score strong{font:65px/1.3 Georgia;color:#e7c995}.total-score small{color:#a9b6a9;letter-spacing:1px}.result-table{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-table>div{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;padding:10px 2px;border-bottom:1px solid #a8997720;color:#adb8b0}.result-table>div:last-child{border:0}.result-table>div>span:first-child{flex:1;text-align:left}.result-table b{min-width:80px;text-align:right;color:#d2bf93;font-weight:400}.completion-bonus{color:#e2c897!important}.record-form{margin:27px 0 25px;text-align:left}.record-form label{font-size:11px;color:#c4c4b4;display:block;margin-bottom:8px}.record-form>div{display:flex;gap:9px}.record-form input{background:#08161999;border:1px solid var(--line);color:#eae3cf;min-width:0;flex:1;padding:12px 15px;font-size:12px}.record-form small{color:#879991;font-size:9px;display:block;margin-top:8px}.rank-backdrop{opacity:.2}.ranks-content{max-width:1050px;margin:auto;padding:65px 6% 90px}.ranks-content h1{font-size:44px;margin:8px 0 15px}.ranks-content>p{font:13px var(--serif);color:#a6b4ad}.ranking-wrap{margin-top:35px;border:1px solid var(--line);overflow-x:auto;background:#0b1b20bb}table{border-collapse:collapse;width:100%;text-align:left}th{padding:17px 20px;color:#aaac97;font-size:10px;font-weight:400;letter-spacing:1px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:17px 20px;border-bottom:1px solid #d0ba8212;font-size:12px;color:#b3c0b5;white-space:nowrap}td:first-child{font:18px Georgia;color:#9ba699}td:nth-child(2){color:#e0dfce}td:nth-child(3){font:20px Georgia;color:var(--gold)}td small{display:block;font-size:8px;color:var(--gold);margin-top:3px}.first{background:#c5ac6c0a}.first td:first-child{color:var(--gold)}.empty-ranks{text-align:center;padding:70px 20px;font:16px/2 var(--serif)!important;color:#c9cbb9!important}.empty-ranks small{font:11px var(--sans);color:#839890}.ranking-note{font:10px/1.8 var(--sans)!important;margin:14px 0 28px;color:#7f948d!important}.ranks-content .row-actions{justify-content:space-between}
dialog{color:var(--ink);border:1px solid #b8a47355;background:#11242a;box-shadow:0 30px 130px #000c;width:min(520px,calc(100% - 28px));max-height:90svh;padding:0}dialog::backdrop{background:#050c11c9;backdrop-filter:blur(7px)}.modal-content{padding:32px}.modal-content h2{font-size:26px;margin:5px 0 20px}.modal-content>p{font-size:13px;color:#b8c3bc;line-height:1.9;word-break:keep-all}.modal-content>.row-actions{margin-top:27px}.modal-top{display:flex;justify-content:space-between;align-items:start}.modal-top .icon-button{border:0;font-size:26px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid var(--line);font-size:12px}.setting-row small{display:block;font-size:9px;color:#92a69e;margin-top:3px}.setting-row input[type=checkbox]{appearance:none;background:#32453f;width:38px;height:21px;border-radius:20px;position:relative;cursor:pointer;flex-shrink:0}.setting-row input[type=checkbox]:before{content:'';position:absolute;width:15px;height:15px;left:3px;top:3px;border-radius:50%;background:#a8b7ab;transition:.2s}.setting-row input[type=checkbox]:checked{background:#bca675}.setting-row input[type=checkbox]:checked:before{left:20px;background:#10262b}.setting-row input[type=range]{width:150px;accent-color:var(--gold)}.small-copy{font-size:10px!important;margin:16px 0 24px}.rule-demo{display:flex;align-items:center;justify-content:center;gap:9px;background:#263e3b;padding:17px 10px;margin:4px 0 18px}.rule-demo .mini-disc{width:20px;height:20px}.rule-demo>span{margin:0 6px;color:var(--gold)}.rules-list{padding-left:20px;color:#aebfb4;font-size:12px;line-height:1.9}.rules-list li{padding-bottom:12px}.rules-list b{font-weight:400;color:#e4d7b3}.score-rule{font-size:11px!important;color:#c8b68c!important;padding:13px;background:#081b21;margin:12px 0 20px}.loading{display:grid;place-items:center;gap:22px;align-content:center;min-height:100svh;color:var(--gold);font-size:12px;letter-spacing:1px}.loading-ring{width:50px;height:50px;border-radius:50%;border:1px solid #cbb77f30;border-top-color:#cbb77f;animation:spin 1.5s linear infinite}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);max-width:90%;padding:13px 24px;z-index:100;background:#11282df2;border:1px solid #cbb78288;box-shadow:0 10px 40px #0005;color:#e5dcc5;font-size:12px;pointer-events:none;opacity:0;transition:.3s;text-align:center;word-break:keep-all}#toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes flip{0%{transform:rotateY(0) scale(.88);filter:brightness(.65)}50%{transform:rotateY(90deg) scale(.95)}100%{transform:rotateY(180deg) scale(1)}}@keyframes blink{50%{opacity:.25;transform:translateY(-2px)}}@keyframes pulse{50%{box-shadow:0 0 0 9px #d1b57e07,0 0 35px #d1b57e44}}@keyframes bob{50%{transform:translate(-50%,-139%)}}
.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.screen-map .map-canvas{width:min(88%,calc((100svh - 345px)*1.7857));margin-top:0;min-width:540px}
.board-panel{min-width:0}.board-viewport{width:min(100%,calc(100svh - 400px));max-height:calc(100svh - 400px);margin-left:auto;margin-right:auto}
@media(min-width:1500px){.title-main{padding-top:12vh}.title-main h1{font-size:88px}.title-actions{margin-top:38px}.battle-layout{grid-template-columns:220px minmax(360px,700px) 220px}}
@media(max-width:1050px){.section-label{display:none}.battle-layout{grid-template-columns:120px minmax(300px,590px) 120px;gap:22px;padding:25px 3% 10px}.player-title h2{font-size:19px}.player-panel,.boss-panel{padding-top:55px}.player-panel .portrait,.boss-panel .portrait{height:170px}blockquote{font-size:11px}.player-detail{display:block}.player-detail b{display:block;margin-top:5px}.destination-actions>span{display:none}.map-title{margin-top:25px}.title-main{padding-left:7%}.title-footer>span:first-child{max-width:150px}.chapter-dots i{width:20px}}
@media(max-width:760px){.topbar{height:76px;margin:0 5%}.brand{font-size:11px;gap:8px}.brand img{width:29px;height:33px}.brand small{font-size:7px;letter-spacing:1px}.topbar nav{gap:7px}.topbar nav .quiet{font-size:0;width:32px;padding:0}.topbar nav .quiet:first-letter{font-size:21px}.icon-button{width:32px;height:32px;font-size:17px}.title-backdrop{background-position:62% center}.title-backdrop:after{background:linear-gradient(90deg,#07151bda,#07151b40 85%),linear-gradient(0deg,#07151b 1%,#07151b33 95%)}.title-main{padding:70px 7% 45px;min-height:calc(100svh - 135px)}.title-main h1{font-size:57px;letter-spacing:-3px}.title-main h1 small{font-size:14px;letter-spacing:2px}.title-main h1 i{font-size:10px;letter-spacing:10px;margin-top:15px}.title-copy{font-size:11px}.title-actions{width:270px}.title-meta{font-size:8px}.title-footer{min-height:60px;margin:0 7%;font-size:8px}.title-footer>span:first-child{display:none}.chapter-dots{gap:8px}.chapter-dots i{width:15px}.title-footer b{font-size:13px}.dialogue-panel{width:90%;gap:17px;padding:23px;margin-bottom:28px}.dialogue-panel .portrait{width:68px;height:91px;align-self:flex-start;margin-top:15px}.dialogue-text p{font-size:19px;min-height:100px}.dialogue-actions{gap:5px;margin-top:17px}.dialogue-actions .quiet{font-size:10px}.dialogue-actions .primary{font-size:11px;min-width:130px;padding:10px 16px}.story-heading{top:21%;left:7%}.story-heading h2{font-size:34px}.screen-story>.scene-art,.screen-victory>.scene-art,.screen-defeat>.scene-art{background-size:auto 300%;background-position-x:82%}.screen-story>.art-0,.screen-victory>.art-0,.screen-defeat>.art-0,.screen-story>.art-2,.screen-victory>.art-2,.screen-defeat>.art-2,.screen-story>.art-4,.screen-victory>.art-4,.screen-defeat>.art-4{background-position-x:29%}.screen-story>.art-5{background-position-x:98%}.map-title{margin:25px 6% 0}.map-title h2{font-size:28px}.map-title .eyebrow{font-size:8px}.map-title p{font-size:10px}.progress-label{font-size:30px}.progress-label small{font-size:9px}.map-canvas{width:100%;aspect-ratio:1.2;margin:15px auto 0}.sea-chart{width:133%;left:-17%;height:100%}.map-node{min-width:70px}.node-ring{width:29px;height:29px;font-size:10px;margin-bottom:7px}.map-node strong{font-size:11px}.map-node small{font-size:7px;display:none}.ship-marker{transform:translate(-50%,-150%)}.ship-marker img{width:24px;height:24px}.ship-marker span{font-size:7px}.troy-marker{font-size:9px}.troy-marker small{font-size:7px}.destination{margin:0 6% 25px;gap:15px;flex-wrap:wrap}.destination-art{width:90px;height:65px}.destination-copy h3{font-size:21px}.destination-copy p{font-size:9px}.destination-copy .eyebrow{font-size:8px;letter-spacing:1px}.destination-actions{width:100%;justify-content:flex-end}.destination-actions .primary{width:100%}.destination-actions .quiet{bottom:-21px}.battle-layout{grid-template-columns:1fr 1fr;gap:12px;padding:16px 4% 10px;max-width:660px}.player-panel,.boss-panel{display:grid;grid-template-columns:53px 1fr auto;text-align:left;gap:0 10px;padding:0;align-items:center}.player-panel{grid-column:1}.boss-panel{grid-column:2;grid-row:1}.player-panel .portrait,.boss-panel .portrait{width:53px;height:66px;grid-column:1;grid-row:1 / 3;mask-image:none}.player-title{margin:0;grid-column:2}.player-title h2{font-size:15px;margin:3px 0}.player-title p{display:none}.player-title .eyebrow{font-size:6px;letter-spacing:.5px;display:block}.player-score{margin:0;gap:5px;grid-column:2;grid-row:2;justify-content:flex-start}.player-score>span{font-size:25px}.player-score .mini-disc{width:13px;height:13px}.player-score small{font-size:7px;letter-spacing:0;width:auto}.player-detail,blockquote,.chapter-progress,.ai-detail{display:none}.board-panel{grid-column:1 / 3;grid-row:2;margin-top:10px}.board-heading h2{font-size:25px}.board-heading .eyebrow{font-size:7px;letter-spacing:1.8px}.board-size{font-size:11px}.turn-status{margin-top:12px}.board-viewport{border-width:4px;max-height:57svh}.board-tools{font-size:9px}.board-bottom{gap:20px}.battle-tip{font-size:9px;margin:5px 0}.battle-footer{margin:0 4%;padding:9px 0;letter-spacing:0}.battle-footer .quiet{font-size:9px}.selection-bar{margin-top:10px}.selection-bar>span{font-size:9px}.selection-bar .primary{font-size:10px;min-height:34px;padding:6px 15px}.victory-content{margin:0 7%;padding-top:65px;max-width:540px}.victory-content h1{font-size:32px}.victory-quote{font-size:18px;max-width:350px}.narrative{font-size:12px;max-width:390px}.victory-stats{gap:32px}.victory-stats b{font-size:25px}.victory-stats span{font-size:9px}.victory-content .large{min-height:48px}.summary-content{padding-top:35px}.summary-content h1{font-size:27px}.total-score strong{font-size:57px}.result-table>div{font-size:10px;gap:5px}.result-table b{min-width:65px}.ranks-content{padding:45px 5% 65px}.ranks-content h1{font-size:36px}.ranks-content>p{font-size:11px}.ranking-wrap{margin-top:28px}th{padding:13px 10px;font-size:8px}td{padding:14px 10px;font-size:10px}td:nth-child(3){font-size:17px}td:first-child{font-size:15px}.ranking-note{font-size:9px!important}.modal-content{padding:25px}.defeat-content{margin-top:16vh}.defeat-content h1{font-size:30px}}
@media(max-width:390px){.title-main h1{font-size:49px}.title-main{padding-top:45px}.title-main>.eyebrow{font-size:9px}.title-actions{width:250px}.title-footer>span:last-child{font-size:7px}.dialogue-panel{padding:18px;gap:12px}.dialogue-panel .portrait{display:none}.dialogue-text p{min-height:120px}.player-panel,.boss-panel{grid-template-columns:40px 1fr;gap:0 7px}.player-panel .portrait,.boss-panel .portrait{width:40px;height:59px}.player-title h2{font-size:13px}.player-score small{font-size:6px}.board-bottom{gap:12px}.destination-copy p{max-width:190px}.record-form .primary{padding:12px 15px}.rule-demo{gap:7px}.rule-demo .mini-disc{width:18px;height:18px}.rule-demo>span{margin:0 3px}.victory-stats{gap:22px}}
@media(max-width:760px){.screen-map .map-canvas{width:100%;min-width:0;aspect-ratio:1.2;margin-top:15px}.sea-chart{width:100%;left:0}.screen-map{min-height:100svh}.board-viewport{width:100%;max-height:45svh}.screen-story>.art-5{background-position-x:74%}.portrait.art-5{background-position-x:82%}}
@media(max-height:700px) and (min-width:761px){.title-main{padding-top:35px;padding-bottom:35px}.title-main h1{font-size:53px}.title-main h1 small{font-size:13px}.title-copy{margin-top:20px}.title-actions{margin-top:20px;gap:8px}.title-actions .large{min-height:44px}.title-meta{margin-top:16px}.title-footer{min-height:60px}.topbar{height:76px}.dialogue-panel{margin-bottom:25px}.battle-layout{padding-top:17px}.player-panel,.boss-panel{padding-top:37px}.player-panel .portrait,.boss-panel .portrait{height:140px}.player-score>span{font-size:36px}.player-detail{margin-top:17px}blockquote{margin:17px 0}.map-title{margin-top:18px}.map-canvas{max-width:820px;margin-top:-35px}.destination{margin-bottom:15px;padding:12px 0}.victory-content{padding-top:30px}}

/* The illustrated chart uses one coordinate space for landmarks, sea routes and the ship. */
.screen-map{background:#081a23}.screen-map .map-backdrop{background:radial-gradient(ellipse at 50% 35%,#1b3b43,#071720 85%)}.screen-map .map-backdrop:after{display:none}
.screen-map .topbar{height:73px}.screen-map .map-title{margin:20px 4.5% 15px;align-items:center}.screen-map .map-title h2{font-size:27px;margin-top:3px}.screen-map .map-title p{font-size:11px}.screen-map .map-title .eyebrow{font-size:9px}
.map-scroll{position:relative;max-width:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#b7a071 #10232c;overscroll-behavior-x:contain}
.screen-map .map-canvas{width:min(94%,calc((100svh - 310px)*1.777));min-width:0;max-width:1700px;aspect-ratio:1000/563;margin:0 auto;position:relative;isolation:isolate;box-shadow:0 18px 80px #0008}
.map-painting{position:absolute;inset:0;z-index:-3;overflow:hidden}.map-painting>img{width:100%;height:100%;object-fit:fill;display:block}.map-painting:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 35px #07121933;pointer-events:none}
.voyage-routes{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.voyage-leg{fill:none;stroke:#f1dcaa;stroke-width:1.6;stroke-dasharray:4 7;filter:drop-shadow(0 1px 2px #051621)}.voyage-leg.sailed{stroke:#e7d58f;opacity:.6}.voyage-leg.next-leg{stroke:#ffe8a9;stroke-width:2.1;opacity:.92}.voyage-leg.future-leg{opacity:.25}
.screen-map .map-node{min-width:105px;transform:translate(-50%,-15%);padding:5px 9px 6px;border:1px solid #c5ad733b;background:linear-gradient(110deg,#061823ee,#0c2531d9);box-shadow:0 4px 12px #03121a80;text-align:left;border-radius:2px;display:grid;grid-template-columns:22px 1fr;column-gap:6px;line-height:1.2;backdrop-filter:blur(3px)}
.screen-map .map-node:hover{transform:translate(-50%,-15%) translateY(-2px);background:#193c49}.screen-map .node-ring{width:21px;height:21px;font-size:9px;margin:2px 0 0;border-width:1px;grid-row:1 / 3;box-shadow:none}.screen-map .map-node strong{font-size:12px;color:#eee4c9;text-shadow:0 2px 3px #000;line-height:1.45}.screen-map .map-node small{font-size:8px;display:block;color:#9fb6bc;line-height:1.7}.screen-map .map-node.locked{opacity:.82}.screen-map .map-node.current{border-color:#efd39a;background:linear-gradient(110deg,#143641ee,#133b46df);box-shadow:0 0 0 2px #ebcd841b,0 5px 18px #0006}.screen-map .map-node.current strong{color:#ffe8b1}.screen-map .map-node.current .node-ring{animation:none}.screen-map .map-node.cleared .node-ring{background:#b0b789;color:#142b29}
.screen-map .troy-marker{left:91%;top:28%;background:#071a25e8;border:1px solid #cdb27a55;padding:5px 10px;color:#eddfb9;font-size:10px;line-height:1.35;z-index:2}.screen-map .troy-marker i{display:none}.screen-map .troy-marker small{font-size:8px;color:#acbbb8}
.screen-map .ship-marker{width:106px;transform:translate(-50%,-68%);filter:drop-shadow(0 5px 4px #051a2588);z-index:4}.screen-map .ship-marker img{display:block;width:106px;height:77px;border:0;border-radius:0;object-fit:contain;position:relative;z-index:2}.screen-map .ship-marker.sailing-east img{transform:scaleX(-1)}.screen-map .ship-marker:before{content:'';position:absolute;left:15%;bottom:23%;width:72%;height:19%;border-radius:50%;box-shadow:0 0 8px #daffff80,0 2px 2px #dfffff80;background:#d7fbff33;transform:rotate(-18deg);z-index:1}.screen-map .ship-marker span{position:relative;display:inline-block;background:#062131e6;font-size:8px;color:#f0dfb5;padding:2px 6px;border:1px solid #ddc18455;border-radius:2px;z-index:3}.screen-map .ship-marker.arrived{animation:ship-rock 3.5s ease-in-out infinite}
.map-reading{display:flex;justify-content:center;gap:24px;padding:8px 4%;font-size:9px;color:#a1b5b9;letter-spacing:.4px}.map-touch-hint{display:none}.screen-map .destination{margin:0 4.5% 16px;padding:12px 0;gap:20px}.screen-map .destination-art{width:90px;height:60px}.screen-map .destination-copy h3{font-size:22px}.screen-map .destination-copy p{font-size:10px}.screen-map .destination-actions .quiet{bottom:-13px}.screen-map .destination-actions>span{font-size:10px}
@keyframes ship-rock{50%{transform:translate(-50%,-71%) rotate(2deg)}}
.map-overview-button{display:none}.map-stage-strip{display:none}
@media(max-width:760px){.screen-map .topbar{height:66px}.screen-map .map-title{margin:20px 5% 16px}.screen-map .map-title h2{font-size:25px}.screen-map .map-title p{font-size:10px}.screen-map .map-title .eyebrow{font-size:8px;letter-spacing:2px}.screen-map .map-title .progress-label{font-size:27px}.screen-map .map-title .progress-label small{font-size:8px}.screen-map .map-canvas{width:760px;max-width:none;min-width:760px;aspect-ratio:1000/563;margin:0}.map-scroll{border-top:1px solid #bba57855;border-bottom:1px solid #bba57855}.screen-map .map-node{min-width:96px;column-gap:5px;padding:5px 7px}.screen-map .map-node strong{font-size:11px}.screen-map .map-node small{font-size:8px}.screen-map .ship-marker{width:88px}.screen-map .ship-marker img{width:88px;height:64px}.map-reading{font-size:8px;gap:13px;padding:8px 3%;flex-wrap:wrap}.map-touch-hint{display:inline;color:#d2bc89}.screen-map .destination{margin:0 5% 22px;gap:13px;padding:14px 0}.screen-map .destination-copy h3{font-size:22px}.screen-map .destination-actions{margin-top:1px}.screen-map .destination-art{width:83px;height:61px}.screen-map .destination-copy p{font-size:9px}}
@media(max-width:760px){.map-overview-button{display:inline-block;color:#eed4a0;font-size:10px;border:1px solid #b8a27355;padding:4px 9px;background:#112b37}.screen-map .overview .map-canvas{width:100%;min-width:0}.screen-map .overview .map-node{padding:0;border:0;min-width:0;display:block;background:none;backdrop-filter:none;box-shadow:none}.screen-map .overview .map-node strong,.screen-map .overview .map-node small{display:none}.screen-map .overview .map-node .node-ring{width:23px;height:23px;box-shadow:0 2px 5px #0008}.screen-map .overview .ship-marker{width:56px}.screen-map .overview .ship-marker img{width:56px;height:43px}.screen-map .overview .ship-marker span{display:none}.screen-map .overview .troy-marker{font-size:8px;padding:2px 4px}.screen-map .overview .troy-marker small{display:none}.map-stage-strip{display:flex;gap:4px;margin:2px 5% 12px;justify-content:space-between}.map-stage-strip button{flex:1;min-width:0;font-size:8px;color:#8fa7ad;padding:5px 1px;border-bottom:1px solid #6d8c8744;white-space:nowrap}.map-stage-strip button span{display:block;color:#b8ae8b;font-size:10px;margin-bottom:2px}.map-stage-strip .active{color:#f4d99e;border-color:#dfc58a}}

/* Stone impact and distance-based reversal waves. */
.cell{perspective:240px}.cell.placed,.cell.flipping{z-index:1}
.placed .disc{animation:stone-land .29s cubic-bezier(.2,.75,.35,1) both}
.cell.placed:before,.cell.flipping:before{content:'';position:absolute;inset:9%;border:1px solid #ffdc91;border-radius:50%;pointer-events:none;opacity:0;animation:stone-ring .52s ease-out both}
.cell.flipping:before{border-color:#a9ead7;animation-delay:calc(var(--delay) + 180ms);animation-duration:.4s}
.flipping .disc{animation:stone-turn .46s cubic-bezier(.35,.05,.25,1) both;animation-delay:var(--delay,0ms)}
.black.flipping{--old-disc:radial-gradient(ellipse at 34% 23%,#fffef0,#e6e6d8 34%,#c3cbc0 68%,#8b9e94)}
.white.flipping{--old-disc:radial-gradient(ellipse at 34% 23%,#596366,#2e3a3c 24%,#152124 51%,#060e10 95%)}
.flipping .disc:before{content:'';position:absolute;inset:-1px;border-radius:50%;background:var(--old-disc);border:1px solid #a5b5a977;animation:stone-face .46s linear both;animation-delay:var(--delay,0ms)}
.reversal-label{color:#f2d492;letter-spacing:.5px;text-shadow:0 0 14px #d2ba7560}
@keyframes stone-land{0%{transform:translateY(-35%) scale(1.25);opacity:.5}65%{transform:scale(.94)}100%{transform:scale(1);opacity:1}}
@keyframes stone-turn{0%{transform:rotateY(0deg) scale(1)}45%{transform:translateY(-12%) rotateY(85deg) scale(1.13);filter:brightness(1.25)}55%{transform:translateY(-12%) rotateY(100deg) scale(1.13);filter:brightness(1.25)}100%{transform:rotateY(180deg) scale(1);filter:brightness(1)}}
@keyframes stone-face{0%,49.99%{opacity:1}50%,100%{opacity:0}}
@keyframes stone-ring{0%{transform:scale(.75);opacity:0}18%{opacity:.8}100%{transform:scale(1.9);opacity:0}}
.reduce-motion .flipping .disc:before{display:none}

/* Mobile portrait: the complete board is the default, including 30×30. */
@media(max-width:760px){
 .screen-battle{height:100svh;min-height:0!important;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,0px);--fit-board:min(calc(100vw - 24px),calc(100svh - 292px - env(safe-area-inset-bottom,0px)))}
 .screen-battle .topbar{height:45px;min-height:45px;flex-shrink:0;margin:0 12px;gap:8px}.screen-battle .brand{font-size:10px;gap:6px;letter-spacing:0}.screen-battle .brand img{width:22px;height:27px}.screen-battle .brand small{font-size:6px;letter-spacing:.5px}.screen-battle .topbar nav{gap:4px}.screen-battle .icon-button{width:29px;height:29px;font-size:16px}.screen-battle .topbar nav .quiet{width:27px}.screen-battle .homepage-link{padding:4px;font-size:10px}
 .screen-battle .battle-layout{width:100%;max-width:none;gap:6px 10px;padding:7px 12px 0;margin:0;flex:1;align-content:start;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .screen-battle .player-panel,.screen-battle .boss-panel{grid-template-columns:36px minmax(0,1fr);gap:0 7px;min-width:0;height:46px}.screen-battle .player-panel .portrait,.screen-battle .boss-panel .portrait{width:36px;height:44px}.screen-battle .player-title{min-width:0}.screen-battle .player-title h2{font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 3px}.screen-battle .player-title .eyebrow{display:none}.screen-battle .player-score{gap:5px;line-height:1}.screen-battle .player-score>span{font-size:22px}.screen-battle .player-score small{font-size:7px}.screen-battle .player-score .mini-disc{width:12px;height:12px}
 .screen-battle .board-panel{margin:0;min-height:0}.screen-battle .board-heading{height:27px;padding:0}.screen-battle .board-heading h2{font-size:18px;margin:0}.screen-battle .board-heading .eyebrow{display:none}.screen-battle .board-size{font-size:10px;padding:2px 6px}.screen-battle .turn-status{height:28px;min-height:28px;margin:2px 0 0;font-size:11px}.screen-battle .turn-status small{font-size:8px}.screen-battle .board-tools{height:29px;margin:0 0 5px;font-size:9px}.screen-battle .tool{min-height:26px;padding:2px 8px;font-size:10px}
 .screen-battle .board-viewport{width:var(--fit-board);height:var(--fit-board);max-height:none;max-width:100%;min-width:0;min-height:0;border-width:3px;padding:2px;margin:0 auto;box-shadow:0 8px 30px #0005}.screen-battle .board{gap:1px}.screen-battle .disc{width:82%;height:82%;left:9%;top:9%}.screen-battle .disc{border-width:.65px}.screen-battle .move-dot{min-width:2.5px;min-height:2.5px;left:50%;top:50%;transform:translate(-50%,-50%)}.screen-battle .cell.selected .move-dot{left:50%;top:50%}
 .screen-battle .selection-bar{margin-top:6px;min-height:33px;height:33px;gap:6px}.screen-battle .selection-bar>span{font-size:9px;line-height:1.3}.screen-battle .selection-bar .primary{font-size:10px;min-height:31px;padding:5px 13px;flex-shrink:0}.screen-battle .board-bottom{height:22px;margin:1px 0 0;font-size:8px;gap:14px}.screen-battle .board-bottom .quiet{font-size:9px}.screen-battle .battle-tip{display:none}.screen-battle .battle-footer{height:29px;min-height:29px;flex-shrink:0;padding:0;margin:0 12px;font-size:8px}.screen-battle .battle-footer .quiet{padding:4px 0;font-size:9px}
}
/* A short landscape viewport keeps the portraits alongside the board. */
@media(orientation:landscape) and (max-height:500px){
 .screen-battle{height:100svh;min-height:0!important;display:flex;flex-direction:column;--fit-board:min(44vw,calc(100svh - 202px))}
 .screen-battle .topbar{height:39px;min-height:39px;margin:0 14px;gap:8px}.screen-battle .brand small,.screen-battle .section-label{display:none}.screen-battle .brand{font-size:11px}.screen-battle .brand img{height:25px;width:23px}.screen-battle .icon-button{width:28px;height:28px}
 .screen-battle .battle-layout{width:100%;display:grid;grid-template-columns:minmax(90px,1fr) minmax(160px,1.9fr) minmax(90px,1fr);gap:10px;padding:5px 15px 0;margin:0;flex:1;align-items:center;align-content:center;max-width:none}.screen-battle .player-panel,.screen-battle .boss-panel{display:block;padding:0;grid-column:auto;grid-row:auto;text-align:center;height:auto}.screen-battle .player-panel .portrait,.screen-battle .boss-panel .portrait{width:60px;height:70px;margin:auto}.screen-battle .player-title h2{font-size:12px;margin:4px 0;white-space:normal}.screen-battle .player-score{justify-content:center;margin:4px 0}.screen-battle .player-score>span{font-size:23px}.screen-battle .player-score small{width:auto;font-size:8px}.screen-battle .player-title .eyebrow,.screen-battle .player-title p,.screen-battle .player-detail,.screen-battle blockquote,.screen-battle .chapter-progress,.screen-battle .ai-detail{display:none}
 .screen-battle .board-panel{grid-column:2;grid-row:1;margin:0}.screen-battle .board-heading{height:22px}.screen-battle .board-heading h2{font-size:16px;margin:0}.screen-battle .board-heading .eyebrow{display:none}.screen-battle .board-size{padding:1px 5px;font-size:9px}.screen-battle .turn-status{height:23px;margin:0;font-size:10px}.screen-battle .board-tools{height:25px;margin:0 0 3px;font-size:8px}.screen-battle .tool{min-height:23px;padding:1px 7px;font-size:10px}.screen-battle .board-viewport{width:var(--fit-board);height:var(--fit-board);max-height:none;border-width:3px;padding:2px;margin:auto}.screen-battle .selection-bar{height:29px;min-height:29px;margin-top:4px}.screen-battle .selection-bar>span{font-size:8px}.screen-battle .selection-bar .primary{min-height:27px;padding:3px 10px;font-size:9px}.screen-battle .board-bottom{height:20px;margin:0;font-size:8px;gap:10px}.screen-battle .board-bottom .quiet{font-size:9px}.screen-battle .battle-tip{display:none}.screen-battle .battle-footer{height:25px;min-height:25px;margin:0 15px;padding:0;font-size:8px}.screen-battle .battle-footer .quiet{padding:0;font-size:9px}
}

/* Cinematic dialogue: changing shots, fast readable text, quiet gold accents. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.story-film{position:absolute;inset:0;overflow:hidden;z-index:-3;background:#08171c;animation:shot-reveal .45s ease both}
.story-film .story-picture{position:absolute;inset:0;z-index:0;animation:shot-drift 9s ease-out both;transform-origin:70% 35%}
.story-picture.hero-shot{background:url('assets/hero.webp') 64% center/cover no-repeat}
.story-picture.hero-shot.close-shot{background-position:90% 40%;background-size:auto 145%;transform-origin:85% 40%}
.story-picture.chart-shot{background:url('assets/voyage-map.webp') center/cover no-repeat;filter:brightness(.83) saturate(.8);transform-origin:60% 40%}
.story-film .memory-shot{filter:sepia(.17);transform-origin:80% 40%}
.story-film .reunion-shot.close-shot{transform-origin:80% 50%;animation-name:shot-close}
.story-inset{position:absolute;right:5%;top:19%;width:25%;aspect-ratio:16/10;border:1px solid #d9c18688;box-shadow:0 15px 50px #0008;overflow:hidden;opacity:.88}
.story-inset>.scene-art{z-index:0}.story-inset>span{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;font-size:10px;color:#e5d4ad;background:#071319b8}
.story-heading{top:18%;max-width:65%;animation:caption-in .5s ease both}.story-heading h2{font-size:clamp(28px,4vw,52px);text-shadow:0 3px 25px #000a}.shot-caption{font-size:11px;color:#c8cbbb;letter-spacing:2px;border-left:2px solid var(--gold);padding-left:12px;margin-top:17px}
.screen-story .dialogue-panel{position:relative;border-radius:3px;background:linear-gradient(105deg,#07181eef,#11292de8);backdrop-filter:blur(12px);box-shadow:0 20px 85px #0008;animation:dialogue-enter .32s ease both}
.dialogue-panel:before{content:'';position:absolute;top:-1px;left:0;width:36%;height:1px;background:linear-gradient(90deg,#edd5a0,transparent)}
.dialogue-panel .portrait{border-color:#d9c68f66;box-shadow:0 0 25px #e2b96a12;animation:portrait-enter .45s ease both}
.athena-portrait{background:radial-gradient(ellipse at 50% 30%,#82978b,#142c30 60%,#0b1c24);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#ecd6a0}.athena-portrait b{font:70px/1 Georgia;text-shadow:0 0 30px #ffe5a7}.athena-portrait span{font:10px Georgia;letter-spacing:3px}
.story-line{cursor:pointer}.type-caret{display:none;width:3px;height:1em;background:#ddca94;vertical-align:-2px;margin-left:4px;box-shadow:0 0 9px #f3d99b}.is-typing .type-caret{display:inline-block;animation:caret .45s steps(1) infinite}.dialogue-hint{margin-right:auto;color:#8dabae;font-size:9px;letter-spacing:.3px}.dialogue-actions .primary{min-width:162px}
.story-motes{position:absolute;inset:0;pointer-events:none}.story-motes i{position:absolute;left:calc(var(--i)*11%);bottom:25%;width:2px;height:2px;background:#ffe5a0;border-radius:50%;box-shadow:0 0 8px #e2c37a;animation:mote-rise 6s linear infinite;animation-delay:calc(var(--i)*-.6s)}
@keyframes shot-reveal{from{opacity:.2;filter:brightness(.65)}to{opacity:1;filter:brightness(1)}}
@keyframes shot-drift{from{transform:scale(1.015)}to{transform:scale(1.10)}}
@keyframes shot-close{from{transform:scale(1.18)}to{transform:scale(1.3)}}
@keyframes caption-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes dialogue-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes portrait-enter{from{opacity:.3;filter:brightness(1.5)}to{opacity:1;filter:brightness(1)}}
@keyframes caret{50%{opacity:.25}}
@keyframes mote-rise{0%{transform:translate(0,0);opacity:0}20%{opacity:.5}100%{transform:translate(40px,-45vh);opacity:0}}
.board{position:relative}#impact-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none}
.board-viewport.impact-active{animation:board-recoil .24s ease-out both}
.cell.flipping:before{border-width:2px;box-shadow:0 0 10px #c7f6da88}.flipping .disc{filter:drop-shadow(0 0 3px #c5f3df55)}
@keyframes board-recoil{0%{transform:translate(0,0)}20%{transform:translate(0,2px)}45%{transform:translate(-1px,-1px)}70%{transform:translate(1px,0)}100%{transform:translate(0,0)}}
@media(max-width:760px){.screen-story .topbar{height:58px;min-height:58px}.story-heading{top:16%;max-width:85%}.story-heading h2{font-size:29px;margin-top:10px}.story-heading .eyebrow{font-size:8px;letter-spacing:2px}.shot-caption{margin-top:12px;font-size:10px;letter-spacing:1px}.story-film .scene-art{background-size:auto 300%;background-position-x:98%}.story-film .art-0,.story-film .art-2,.story-film .art-4{background-position-x:29%}.story-picture.hero-shot{background-position:75% center}.story-picture.hero-shot.close-shot{background-position:94% 25%;background-size:auto 120%}.story-inset{right:5%;top:32%;width:39%}.screen-story .dialogue-panel{width:calc(100% - 24px);padding:17px;gap:13px;margin-bottom:18px;min-height:215px}.screen-story .dialogue-panel .portrait{display:block;width:55px;height:75px;margin-top:2px}.screen-story .dialogue-text p{font-size:17px;line-height:1.75;min-height:120px;margin:0}.speaker{font-size:11px;margin-bottom:10px;letter-spacing:1px}.dialogue-actions{flex-wrap:wrap;gap:7px;margin-top:13px;justify-content:space-between}.dialogue-hint{width:100%;font-size:8px}.dialogue-actions .primary{min-width:125px;padding:10px;font-size:11px}.dialogue-actions .quiet{font-size:9px;padding:8px 0}.athena-portrait b{font-size:45px}.athena-portrait span{font-size:7px}}
@media(max-width:380px){.screen-story .dialogue-panel{gap:10px;padding:14px}.screen-story .dialogue-panel .portrait{width:42px;height:61px}.screen-story .dialogue-text p{font-size:16px;min-height:135px}.dialogue-actions .primary{min-width:110px;font-size:10px}.dialogue-actions .quiet{font-size:8px}}
@media(max-height:500px) and (orientation:landscape){.screen-story .topbar{height:45px;min-height:45px}.story-heading{top:21%;left:5%}.story-heading h2{font-size:25px;margin:8px 0}.shot-caption{margin-top:8px}.story-heading .eyebrow{font-size:8px}.screen-story .dialogue-panel{min-height:0;width:90%;padding:13px 18px;gap:16px;margin-bottom:12px}.screen-story .dialogue-panel .portrait{width:53px;height:67px;margin:0}.screen-story .dialogue-text p{font-size:16px;line-height:1.65;min-height:45px}.dialogue-hint{display:none}.dialogue-actions{margin-top:5px;flex-wrap:nowrap;justify-content:flex-end}.dialogue-actions .primary{padding:7px 12px;min-height:32px}.speaker{margin-bottom:5px}.story-inset{width:20%;top:18%;right:6%}}
.reduce-motion .story-film,.reduce-motion .story-picture,.reduce-motion .story-heading,.reduce-motion .dialogue-panel,.reduce-motion .portrait,.reduce-motion .board-viewport{animation:none!important}.reduce-motion .story-motes,.reduce-motion #impact-canvas{display:none}

.homepage-link{color:var(--gold);text-decoration:none;padding:8px;font-size:12px;border:1px solid #c8b47b44;white-space:nowrap}.homepage-link:focus-visible{outline:2px solid var(--gold)}

.combo-callout{display:none;position:absolute;z-index:9;top:5%;left:50%;transform:translateX(-50%);padding:6px 13px;white-space:nowrap;pointer-events:none;font:700 clamp(11px,2vw,19px)/1.4 var(--serif);letter-spacing:2px;border:1px solid #ffcb7399;border-radius:2px;color:#fff0c3;text-shadow:0 0 12px #ff8b25;background:#3e150bcc;box-shadow:0 0 24px #ff781944}.combo-callout.fire,.combo-callout.nuclear{display:block;animation:combo-banner 1.85s ease both}.combo-callout.nuclear{animation-duration:2.6s;background:#25190fe8;border-color:#fff0aa;color:#fffbd5;box-shadow:0 0 40px #ffbe5c66}.board-viewport.impact-fire{animation:fire-recoil .4s ease-out both}.board-viewport.impact-nuclear{animation:nuclear-recoil .65s ease-out both}@keyframes combo-banner{0%{opacity:0;transform:translate(-50%,8px) scale(.8)}12%,75%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-10px) scale(1.05)}}@keyframes fire-recoil{0%,100%{transform:translateY(0)}20%{transform:translateY(3px)}45%{transform:translateY(-2px)}70%{transform:translateY(1px)}}@keyframes nuclear-recoil{0%,100%{transform:translate(0,0)}12%{transform:translate(-4px,4px)}26%{transform:translate(4px,-3px)}42%{transform:translate(-3px,2px)}60%{transform:translate(2px,-2px)}78%{transform:translate(-1px,1px)}}.reduce-motion .combo-callout{display:none!important}

.board-tools .surrender-button{color:#f0b3a5;border-color:#c56c5759;margin-left:6px;min-width:42px}.board-tools .surrender-button:hover{background:#ad4f3933;border-color:#db8e77}.board-tools .surrender-button:focus-visible{outline:2px solid #f6b598;outline-offset:2px}
