/* Group A: nautical atlas, explorable scenes, real conversations and results only. */
dialog.voyage-dialog:is([data-page=sea],[data-page=map],[data-page=dialogue],[data-page=story],[data-page=storyEnd],[data-page=chapterRewards],[data-page=rewards])>header{background:linear-gradient(#092d46f2,#092e46bd),url('/assets/premium-pass-one/naval-leather-v1.png') center/350px;border-bottom:1px solid #d2c79b88;box-shadow:0 2px 8px #001c3033}
dialog.voyage-dialog:is([data-page=sea],[data-page=map],[data-page=dialogue],[data-page=chapterRewards],[data-page=rewards])>nav{background:linear-gradient(#14394ce6,#061b2cf5),url('/assets/premium-pass-one/naval-leather-v1.png') center/300px;border-top:1px solid #dfc88c}
/* Atlas remains pannable and retains all thirteen original anchors. */
dialog.voyage-dialog[data-page=sea] .sea-region-label{padding:6px 9px;background:linear-gradient(#17475ae8,#06283de8),url('/assets/premium-pass-one/naval-leather-v1.png') center/280px;box-shadow:inset 0 1px #fff5,0 3px 6px #00233755}
dialog.voyage-dialog[data-page=sea] .world-map-toolbar{top:calc(114px + env(safe-area-inset-top,0px));padding:3px;gap:3px;border:1px solid #b8c6b8;box-shadow:inset 0 1px #fff3,0 3px 7px #00293b66}
dialog.voyage-dialog[data-page=sea] .world-map-toolbar button{min-height:44px;min-width:44px;padding:5px 8px;background:linear-gradient(#1e4a60,#08263d);border-radius:4px;color:#fff0c4;box-shadow:inset 0 1px #fff3}
dialog.voyage-dialog[data-page=sea] .sea-travel-panel{background:linear-gradient(#0e3c50e6,#06263eea),url('/assets/premium-pass-one/naval-leather-v1.png') center/340px;box-shadow:inset 0 0 0 3px #c6ae7033,0 3px 8px #00233666}
dialog.voyage-dialog[data-page=sea] .sea-travel-panel>summary{min-height:44px;padding:10px 12px;font:600 18px 'Carto Condensed';color:#fff0c2}
dialog.voyage-dialog[data-page=sea] .sea-destinations .world-stop{box-shadow:inset 0 0 0 2px #f8e4af55;color:#30291c}
dialog.voyage-dialog[data-page=sea] .sea-destinations .world-stop strong{font-size:15px;text-shadow:0 1px #fff9}
dialog.voyage-dialog[data-page=sea] .sea-destinations .world-stop.current{background-color:#f6dfa8;filter:drop-shadow(0 0 7px #fff4ad) drop-shadow(0 3px 3px #052b45)}
dialog.voyage-dialog[data-page=sea] .world-route path{stroke:#fff3b6;stroke-width:2;stroke-dasharray:4 6;filter:drop-shadow(0 1px 2px #03476c);animation:adventure-route 28s linear infinite}
.world-ship-marker{position:absolute;left:clamp(10px,calc(var(--ship-x) + 60px),calc(100% - 62px));top:calc(var(--ship-y) + 24px);width:57px;height:54px;z-index:3;pointer-events:none;filter:drop-shadow(0 3px 2px #003c60);animation:atlas-ship-bob 4s ease-in-out infinite}
.world-ship-marker svg{display:block;width:100%;height:100%}
/* Exploration: controls sit on the scene rather than opaque dashboard slabs. */
dialog.voyage-dialog[data-page=map] .story-cap{width:61%;padding:7px 9px!important;border:1px solid #d3bc80;border-radius:7px;background:linear-gradient(110deg,#0b3448ed,#103f50b0),url('/assets/premium-pass-one/naval-leather-v1.png') center/320px;box-shadow:inset 0 1px #fff3,0 3px 7px #00273e66}
dialog.voyage-dialog[data-page=map] .story-cap h3{font-size:16px!important;color:#ffebbc}
dialog.voyage-dialog[data-page=map] .story-cap button{min-height:44px;margin-top:4px;padding:7px 9px;font:600 14px 'Carto Condensed'}
dialog.voyage-dialog[data-page=map] .map-toolbar{width:32%;background:linear-gradient(#17485bd9,#082b3fe6);box-shadow:inset 0 1px #fff3,0 3px 7px #00273e55}
dialog.voyage-dialog[data-page=map] .map-toolbar button{background:linear-gradient(#204b5e,#0a2739);color:#ffe9b4}
dialog.voyage-dialog[data-page=map] .movement-options{border:1px solid #c3ae7e;border-radius:6px;background:linear-gradient(#12384ce8,#06263de8),url('/assets/premium-pass-one/naval-leather-v1.png') center/300px}
dialog.voyage-dialog[data-page=map] .movement-options>summary{font:600 14px 'Carto Condensed';color:#ffe8b5}
dialog.voyage-dialog[data-page=map] .touch-helm .interact-command{min-height:50px;min-width:114px;border:1px solid #ffe5ac;border-radius:9px;background:linear-gradient(#fff0bb,#d9b568 60%,#b88942);color:#302a20;box-shadow:inset 0 0 0 3px #fff2,0 4px 8px #0b2e3980;font:600 19px 'Carto Condensed'}
dialog.voyage-dialog[data-page=map] .voyage-thumbstick{box-shadow:inset 0 0 0 4px #0c344766,0 0 0 1px #d7bf83,0 4px 8px #092e4866;background:radial-gradient(#3c6671b3,#062538d9)}
/* The speaker is real and remains a live 3D figure; the small portrait is an identity badge. */
dialog.voyage-dialog[data-page=dialogue] .conversation-speaker{display:flex;align-items:center;gap:9px;margin:0 0 5px}
dialog.voyage-dialog[data-page=dialogue] .conversation-speaker img{width:43px;height:43px;object-fit:cover;object-position:50% 18%;border:2px solid #a08047;border-radius:50%;box-shadow:inset 0 0 0 2px #ffe8a9,0 2px 4px #3c2a2266;background:#122d3d}
dialog.voyage-dialog[data-page=dialogue] .conversation-paper .conversation-speaker small{display:block;margin:0;padding:0;border:0;background:none;color:#34271b;font:700 19px 'Carto Condensed'}
dialog.voyage-dialog[data-page=dialogue] .conversation-speaker span{display:block;color:#705d3e;font:12px 'Carto Condensed'}
dialog.voyage-dialog:is([data-page=dialogue],[data-page=story],[data-page=storyEnd]) .conversation-paper{padding:10px 13px!important;background:radial-gradient(ellipse at 25% 5%,#fff6d8aa,transparent 70%),repeating-linear-gradient(96deg,#eed49f22 0 1px,transparent 1px 4px),linear-gradient(110deg,#f4e3b4,#dbbd86);border:1px solid #a68550;border-radius:7px;box-shadow:inset 0 0 0 3px #fff0b35c,inset 0 8px 16px #fff6dc55,0 5px 10px #12304388}
dialog.voyage-dialog[data-page=dialogue] .conversation-paper p{font-size:14px;line-height:1.4;margin:5px 0 2px;color:#30281c}
dialog.voyage-dialog[data-page=dialogue] .conversation-choices{padding:5px;gap:5px;background:linear-gradient(#11394cd9,#061f34eb),url('/assets/premium-pass-one/naval-leather-v1.png') center/320px;border:1px solid #c5ac73;box-shadow:inset 0 1px #fff3,0 4px 9px #092a3e77}
dialog.voyage-dialog[data-page=dialogue] .conversation-choices button{display:flex;align-items:center;gap:8px;min-height:44px;padding:5px 9px;border:1px solid #9fa88e;border-radius:5px;background:linear-gradient(#234d5fdd,#08263cdd);box-shadow:inset 0 1px #fff3;color:#ffebbd;font:600 15px 'Carto Condensed'}
dialog.voyage-dialog[data-page=dialogue] .conversation-choices button:has(.art-icon)::before{display:none}
dialog.voyage-dialog[data-page=dialogue] .conversation-choices .art-icon{width:29px;height:29px;flex:0 0 29px}
dialog.voyage-dialog[data-page=dialogue] .conversation-choices button[aria-pressed=true]{background:linear-gradient(#4a756c,#103c4c);border-color:#f4d592;box-shadow:inset 0 0 0 2px #d6c88944}
/* Victory atmosphere never grants or illustrates unearned cards/currency. */
dialog.voyage-dialog.battle-dialog[data-result=won]>main,dialog.voyage-dialog:is([data-page=chapterRewards],[data-page=rewards])>main{background:linear-gradient(#052b3c00,#061a2e44),url('/assets/premium-adventure/victory-sea-light-v2.png') center/cover}
dialog.voyage-dialog.battle-dialog[data-result=won] .combat-result .result-detail{background:linear-gradient(#0c3246e8,#061c30ed),url('/assets/premium-pass-one/naval-leather-v1.png') center/350px;border:1px solid #dec790;box-shadow:inset 0 0 0 3px #c6ae7033,inset 0 1px #fff4,0 5px 12px #051e2e99;padding:12px;border-radius:9px}
dialog.voyage-dialog.battle-dialog .combat-result .result-detail h4{display:flex;align-items:center;gap:7px;color:#ffe9b8}
dialog.voyage-dialog.battle-dialog .combat-result .result-detail h4 .art-icon{width:31px;height:31px}
dialog.voyage-dialog.battle-dialog[data-result=won] .combat-result .result-stat-row{padding:9px 10px;margin:5px 0;border:1px solid #819e9b77;background:linear-gradient(100deg,#1b485a88,#08263eb3);border-radius:5px;box-shadow:inset 0 1px #fff2}
dialog.voyage-dialog.battle-dialog[data-result=won] .combat-result h3{text-shadow:0 2px #5b3916,0 0 19px #fff4a666;font-size:48px}
dialog.voyage-dialog:is([data-page=chapterRewards],[data-page=rewards]) .recruitment-reward{padding:10px;min-height:100%;text-align:center;background:transparent;border:0}
dialog.voyage-dialog:is([data-page=chapterRewards],[data-page=rewards]) .recruitment-reward>h3{color:#ffe2a0;font:700 33px 'Carto Condensed';text-shadow:0 2px #062c40}
dialog.voyage-dialog:is([data-page=chapterRewards],[data-page=rewards]) .recruitment-reward>.pirate-scene{background:transparent;border:0;box-shadow:none}
dialog.voyage-dialog .earned-reward{display:flex;align-items:center;gap:10px;text-align:left;padding:10px;margin:9px 0;border:1px solid #d4bf87;background:linear-gradient(#174557e8,#08273ee8),url('/assets/premium-pass-one/naval-leather-v1.png') center/300px;border-radius:7px;box-shadow:inset 0 1px #fff3}
dialog.voyage-dialog .earned-reward .art-icon{width:40px;height:40px;flex-shrink:0}.earned-reward small,.earned-reward strong{display:block}.earned-reward small{font-size:12px;color:#bed5d7}.earned-reward strong{color:#ffe2a4}
dialog.voyage-dialog:is([data-page=sea],[data-page=map],[data-page=dialogue],[data-page=chapterRewards],[data-page=rewards]) button:focus-visible{outline:2px solid #a0f3ff;outline-offset:2px}
dialog.voyage-dialog:is([data-page=sea],[data-page=map],[data-page=dialogue],[data-page=chapterRewards],[data-page=rewards]) button:not(:disabled):active{filter:brightness(1.12)}
@keyframes adventure-route{to{stroke-dashoffset:-100}}
@keyframes atlas-ship-bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-4px) rotate(3deg)}}
@media(max-height:710px){dialog.voyage-dialog[data-page=dialogue] .conversation-speaker img{width:34px;height:34px}dialog.voyage-dialog[data-page=dialogue] .conversation-speaker small{font-size:17px}dialog.voyage-dialog[data-page=dialogue] .conversation-paper{padding:8px 10px!important}dialog.voyage-dialog[data-page=dialogue] .conversation-paper p{font-size:13px}dialog.voyage-dialog[data-page=dialogue] .conversation-choices button{font-size:14px}dialog.voyage-dialog.battle-dialog[data-result=won] .combat-result h3{font-size:40px}}
@media(prefers-reduced-motion:reduce){.world-ship-marker,dialog.voyage-dialog[data-page=sea] .world-route path{animation:none!important}}
body.reduced .world-ship-marker,body.reduced dialog.voyage-dialog[data-page=sea] .world-route path{animation:none!important}
/* The result section used to paint its own opaque backdrop over main. */
dialog.voyage-dialog.battle-dialog[data-result=won] .combat-result{background:transparent}
/* Keep victory lettering readable against the actual bright rays. */
dialog.voyage-dialog.battle-dialog[data-result=won] .combat-result h3{width:94%;padding:6px 8px;background:linear-gradient(90deg,transparent,#082a42e8 18%,#082a42e8 82%,transparent);color:#ffe195!important;-webkit-text-stroke:.5px #9b6c29;text-shadow:0 2px 2px #041a2e,0 0 12px #002139}
dialog.voyage-dialog.battle-dialog[data-result=won] .result-opponent{padding:4px 9px;border-radius:4px;background:#062b43d9;color:#fff0c3;text-shadow:0 1px #021d32}
/* Fit both real reward actions, including on the smaller iPhone viewport. */
dialog.voyage-dialog:is([data-page=rewards],[data-page=chapterRewards]) .recruitment-reward>.pirate-scene{height:clamp(150px,28dvh,240px);min-height:0;margin:3px 0 7px}
dialog.voyage-dialog:is([data-page=rewards],[data-page=chapterRewards]) .recruitment-reward>h3:first-child{font-size:32px!important;line-height:1.1;padding:6px;background:linear-gradient(90deg,transparent,#082a42df 15%,#082a42df 85%,transparent)}
dialog.voyage-dialog:is([data-page=rewards],[data-page=chapterRewards]) .recruitment-reward>button{display:block;width:100%;min-height:44px;margin:5px 0}
@media(max-height:710px){dialog.voyage-dialog:is([data-page=rewards],[data-page=chapterRewards]) .recruitment-reward>.pirate-scene{height:145px}dialog.voyage-dialog:is([data-page=rewards],[data-page=chapterRewards]) .recruitment-reward>h3{font-size:27px!important;margin:5px 0}dialog.voyage-dialog:is([data-page=rewards],[data-page=chapterRewards]) .recruitment-reward>p{padding:8px;margin:5px 0}}
