:root{--coast-art:url("assets/sunken-coast-v2.webp")}
:root{color-scheme:dark;--gold:#d8b979;--ivory:#f5efe3;--navy:#091625;--teal:#71c6be;--cardw:56px;--cardh:80px;--step:37px}*{box-sizing:border-box}body{margin:0;background:var(--navy);color:var(--ivory);font:14px system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:var(--gold);background:none;border:1px solid #d8b97945;border-radius:7px;padding:12px 17px;cursor:pointer;min-height:44px;touch-action:manipulation}button:hover{background:#d8b97919}button:focus-visible,a:focus-visible{outline:3px solid var(--teal);outline-offset:3px}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid #d8b97926}.brand{color:var(--gold);text-decoration:none;display:flex;align-items:center;gap:12px;font:35px Georgia}.brand span{font:17px Georgia;letter-spacing:4px}.brand small{display:block;font:8px system-ui;letter-spacing:5px;margin-top:4px}.edition,.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold)}.header-actions{display:flex;gap:10px}header button{font-size:11px}.world{height:330px;position:relative;overflow:hidden}.world svg{width:100%;height:100%;position:absolute;transition:filter 2s}.world:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#091625b0,transparent 75%),linear-gradient(0deg,#091625,transparent 40%)}.world-copy{position:relative;z-index:1;padding:35px 8%}.world-copy h1{font:clamp(34px,4.4vw,54px)/1.07 Georgia;margin:20px 0}.world-copy>p:last-child{color:#e6e2d5c0;line-height:1.8;font-size:12px;max-width:240px}.world-footer{position:absolute;bottom:16px;left:8%;right:8%;z-index:2;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;color:var(--gold)}.world svg>.water-lines{animation:tide 7s ease-in-out infinite alternate}.crossing,.spire{opacity:.18;transition:opacity 2s}.landmark-0 #beam{opacity:.45;animation:light 3s ease-out}.landmark-1 .crossing,.landmark-2 .spire{opacity:1}.landmark-2 .spire-glow{opacity:.5;animation:light 3s ease-out}body[data-region=harbor] .world svg{filter:hue-rotate(12deg) saturate(.85)}body[data-region=spire] .world svg{filter:hue-rotate(-12deg) saturate(1.2)}.game{max-width:780px;margin:auto;padding:12px 30px 0;scroll-margin-top:12px}.chapter-track{margin-bottom:22px}.chapter-track>div:first-child{display:flex;justify-content:space-between;align-items:center;color:#9eb4b8;font-size:10px;letter-spacing:1px}.chapter-track button{padding:0;width:44px;border:0;font:18px Georgia}.track{height:3px;background:#27404b;border-radius:5px;overflow:hidden}.track i{height:100%;background:var(--gold);display:block;transition:width .5s}.game-title{display:flex;justify-content:space-between;gap:15px;align-items:center}.eyebrow{margin:0 0 9px}h2{font:30px Georgia;margin:0}.progress{text-align:right;color:var(--gold);flex-shrink:0}.progress span{font:24px Georgia}.progress small{display:block;font-size:8px;letter-spacing:1.4px;margin-top:7px}#levelStory{font:italic 13px/1.65 Georgia;color:#96aeb4;min-height:22px;margin:13px 0 18px}.play-panel{border:1px solid #6c9b9a25;border-radius:16px;background:radial-gradient(ellipse at 50% 35%,#17465355,transparent 75%);padding:2px 12px 16px}#instruction{font-size:12px;color:#c1d5d7;text-align:center;min-height:36px;line-height:1.6;margin:16px 2px 10px}.notice{color:#f0c781!important}.board{height:calc((var(--rows) - 1)*var(--step) + var(--cardh) + 16px);position:relative;margin:4px 0 15px}.card{width:var(--cardw);height:var(--cardh);border:1px solid #d5cbb6;border-radius:6px;background:var(--ivory);color:#193743;box-shadow:0 5px 12px #0005;font:bold 22px Georgia;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:0;position:relative}.board .card{position:absolute;left:calc(var(--x)*1% - var(--cardw)/2);top:calc(var(--row)*var(--step));transition:transform .18s;min-height:0}.card small{font-size:20px}.card.red{color:#a64c40}.card.back{background:repeating-linear-gradient(45deg,#173c4c,#173c4c 4px,#214858 4px,#214858 5px);border:2px solid #a39570;color:var(--gold)}.card.back:disabled{opacity:1}.card.back span{font:26px Georgia}.card.hinted,.stock.hinted{outline:3px solid #e2c077;transform:translateY(-5px);box-shadow:0 0 24px #d8b97965}.deck{display:flex;justify-content:center;align-items:center;gap:26px;margin-top:10px}.stock{width:56px;height:80px;border:2px solid #aa9568;background:repeating-linear-gradient(45deg,#163745,#163745 4px,#1c4050 4px,#1c4050 5px);padding:7px}.stock span{font-size:27px}.stock small{display:block;font-size:8px}.active-wrap>small{display:block;font-size:8px;letter-spacing:1.5px;margin-bottom:8px;color:var(--gold)}.active-wrap{margin-top:-18px}.rules{font-size:11px;line-height:1.9;color:var(--gold)}.rules span{color:#8aa4ac}.rules small{display:block;font-size:9px;color:#9fbebc}nav{display:flex;justify-content:space-around;padding:9px 0;margin-top:10px;border-bottom:1px solid #d8b97926}nav button{border:0;font-size:12px;padding:12px}.caption{text-align:center;color:#829ea7;font-size:10px;margin:13px}.warning{color:#f0c781}footer{padding:20px 6%;display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#6d8790}dialog{background:linear-gradient(135deg,#173b48,#0c202d);color:var(--ivory);border:1px solid #d8b97988;border-radius:16px;text-align:center;padding:32px;max-width:min(90vw,470px);max-height:90dvh;box-shadow:0 20px 100px #0008;overflow:auto}dialog::backdrop{background:#04141ddb;backdrop-filter:blur(6px)}dialog p{line-height:1.8;color:#b2c6ca}dialog button{display:block;margin:16px auto 0}dialog h2{font-size:32px}.stars{font-size:35px;letter-spacing:9px;color:var(--gold);margin:20px}.primary{background:var(--gold);color:#102632;border:0;font-weight:600;padding:14px 20px}.primary:hover{background:#eed7a5}#nextInline{width:100%;margin:16px auto}#rewardDetail{font-size:10px;color:#c1baa2}#skip{font-size:11px;border:0;margin-top:8px}#map{width:760px;max-width:94vw;text-align:left;padding:25px}.map-top{display:flex;justify-content:space-between;gap:16px;align-items:center}.map-top button{margin:0}.map-top h2{font-size:28px}#mapText{font-size:12px}#landmarkList{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #d8b97926;border-bottom:1px solid #d8b97926;margin-bottom:20px;padding:8px 0}#landmarkList p{font-size:10px;color:var(--gold);margin:0}#levelGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.level-node{margin:0;display:flex;flex-direction:column;text-align:left;align-items:flex-start;padding:12px;min-height:100px;gap:8px;background:#061d2680}.level-node span{font:22px Georgia;color:#b3c7c8}.level-node strong{font:13px Georgia;color:var(--ivory)}.level-node small{font-size:9px;color:#9db6b8}.level-node.done{background:#1e4a4a;border-color:#76b9a955}.level-node.done small{color:var(--gold);letter-spacing:1px}.level-node.current{outline:2px solid var(--gold);outline-offset:1px}.map-note{font-size:11px}#helpDialog{text-align:left;max-width:520px}#helpDialog li{font-size:13px;line-height:1.8;margin-bottom:12px}#helpDialog p{font-size:11px}#helpDialog ol{padding-left:22px}@keyframes light{from{opacity:0}to{opacity:.45}}@keyframes tide{from{transform:translateX(-6px);opacity:.15}to{transform:translateX(6px);opacity:.35}}@media(min-width:1100px){main{max-width:1500px;margin:auto}.world{height:380px}.world-copy{padding-top:44px}.world svg{object-position:center}}@media(max-width:600px){:root{--cardw:43px;--cardh:65px;--step:31px}header{height:60px;padding:0 5%}.edition{display:none}.brand{font-size:29px}.brand span{font-size:14px;letter-spacing:3px}.brand small{font-size:7px}.header-actions{gap:4px}.header-actions button{border:0;padding:10px;font-size:10px}.world{height:210px}.world svg{width:170%;left:-53%}.world-copy{padding:22px 6%}.world-copy h1{font-size:32px;margin:12px 0}.world-copy>p:last-child{font-size:10px;max-width:190px;margin:0}.world-footer{left:6%;right:6%;font-size:7px;letter-spacing:.7px;bottom:10px}.game{padding:4px 13px 0;scroll-margin-top:4px}h2{font-size:26px}.game-title{gap:9px}.progress span{font-size:21px}.progress small{font-size:6px;letter-spacing:1px}.eyebrow{font-size:8px;letter-spacing:1.4px}.chapter-track{margin-bottom:15px}#levelStory{font-size:12px;margin:10px 0 13px}.play-panel{padding:1px 7px 15px;border-radius:12px}#instruction{font-size:11px;min-height:36px;margin:12px 0}.card{font-size:19px}.card small{font-size:17px}.board:not(.tutorial) .card:not(.back){align-items:flex-start;padding-left:5px}.board:not(.tutorial) .card:not(.back) small{font-size:13px}.board{margin-bottom:10px}.tutorial .card{width:38px;left:calc(var(--x)*1% - 19px)}.deck{gap:24px}.stock{width:50px;height:72px}.active-wrap .card{width:50px;height:72px}.rules{font-size:10px}.rules small{font-size:8px}nav button{padding:10px 7px;font-size:11px}.caption{font-size:9px}footer{padding:15px 5%;font-size:7px}footer span{max-width:155px;text-align:right;line-height:1.8}dialog{padding:25px 20px}#map{padding:20px 16px}#levelGrid{grid-template-columns:repeat(2,1fr)}.level-node{min-height:100px}.level-node strong{font-size:14px}.map-top h2{font-size:25px}#landmarkList{gap:8px}#landmarkList p{font-size:9px}}@media(max-width:350px){:root{--cardw:35px;--cardh:60px;--step:29px}.game{padding-left:9px;padding-right:9px}.board:not(.tutorial) .card:not(.back){padding-left:3px}.card{font-size:17px}.tutorial .card{width:32px;left:calc(var(--x)*1% - 16px)}.progress small{max-width:55px}.rules{font-size:9px}.deck{gap:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.reward-sigil{width:76px;height:76px;margin:20px auto;border:1px solid #d8b97988;border-radius:50%;display:grid;place-items:center;color:#f2d394;font:42px Georgia;box-shadow:0 0 45px #d8b97925,inset 0 0 25px #d8b97919;animation:reveal 1.5s ease-out}.stars{margin:12px 0 20px}@keyframes reveal{from{opacity:0;transform:scale(.7) rotate(-20deg)}to{opacity:1;transform:scale(1) rotate(0)}}

/* v0.3.1: responsive safe areas and short landscape viewports. */
body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
@media(orientation:landscape) and (max-height:500px){header{height:56px}.world{height:140px}.world-copy{padding:14px 7%}.world-copy h1{font-size:26px;margin:6px 0;line-height:1.05}#worldStory{display:none}.world-footer{bottom:9px;font-size:7px}.game{padding-top:0}.chapter-track{margin-bottom:12px}.game-title h2{font-size:24px}#levelStory{margin:8px 0 10px}.world svg{filter:saturate(.9)}}
/* Cinematic opening — no raster frames or video payload. */
#coastIntro{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;padding:0;overflow:hidden;background:#050f19;color:#f5efe3;isolation:isolate}#coastIntro::backdrop{background:#050f19}.film-scene,.film-shade,.film-haze,.film-grain{position:absolute;inset:0;pointer-events:none}.film-scene{opacity:.35;transform:scale(1.18);filter:saturate(.65)}.film-scene svg{width:100%;height:100%;object-fit:cover}.film-scene #film-beam{opacity:0}.film-scene .water-lines{animation:film-water 6s ease-in-out infinite alternate}.film-scene .crossing,.film-scene .spire{opacity:.2}.film-haze{background:radial-gradient(ellipse at 75% 42%,#e6c18535,transparent 50%),linear-gradient(90deg,#09162599,transparent,#09162555)}.film-shade{background:linear-gradient(#050f19b0,transparent 40%,#050f19ee),radial-gradient(ellipse at center,transparent,#050f19a0)}.film-grain{opacity:.1;background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,#fff2 4px)}.film-top{position:absolute;top:max(20px,env(safe-area-inset-top));left:max(6%,env(safe-area-inset-left));right:max(6%,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;z-index:3}.film-top>span{font:10px Georgia;letter-spacing:5px;color:#d8b979}.film-top>div{display:flex;gap:12px}.film-top button{border-color:#d8b97940;background:#09162570;font-size:11px}.film-studio{position:absolute;left:0;right:0;top:25%;text-align:center;color:#d8b979;opacity:0}.film-emblem{display:block;font:100px Georgia;text-shadow:0 0 40px #e7c67a77}.film-studio p{font-size:10px;letter-spacing:6px}.film-title{position:absolute;top:30%;left:6%;right:6%;text-align:center;opacity:1;transform:translateY(0)}.film-kicker{font-size:9px;letter-spacing:5px;color:#dcc48e;margin:0 0 24px}.film-title h1{font:clamp(54px,9vw,116px)/.98 Georgia;margin:0;text-shadow:0 3px 40px #0009}.film-title h1 span{display:block;font:13px system-ui;letter-spacing:12px;margin-bottom:16px;padding-left:12px}.film-rule{color:#d8b979;font:25px Georgia;margin:20px auto 14px;display:flex;align-items:center;justify-content:center;gap:16px}.film-rule:before,.film-rule:after{content:'';height:1px;width:70px;background:linear-gradient(90deg,transparent,#d8b979)}.film-rule:after{transform:rotate(180deg)}.film-location{font-size:9px;letter-spacing:4px;color:#d8b979}.film-caption{position:absolute;left:5%;right:5%;top:56%;text-align:center;font:italic 23px Georgia;opacity:0;text-shadow:0 2px 20px #000}.film-caption p{color:#f5efe3;margin:10px}.film-bottom{position:absolute;bottom:max(6%,env(safe-area-inset-bottom));left:8%;right:8%;display:flex;align-items:center;flex-direction:column;z-index:2}.film-bottom p{color:#c4d5d5;font:italic 14px/1.6 Georgia;margin:0 0 16px}.film-bottom button{min-width:220px;margin:0}.film-duration{font-size:8px;letter-spacing:2px;color:#91a9ae;margin-top:16px}#coastIntro.playing .film-scene{animation:film-pan 8s ease-out forwards}#coastIntro.playing .film-studio{animation:film-studio 3.2s both}#coastIntro.playing .film-title{animation:film-title 8s both}#coastIntro.playing .film-caption{animation:film-caption 8s both}#coastIntro.playing #film-beam{animation:film-light 8s both}#coastIntro.playing .film-bottom{opacity:0;pointer-events:none}#coastIntro.paused *,#coastIntro.paused{animation-play-state:paused!important}#coastIntro.finished .film-scene{opacity:.95;transform:scale(1.03);filter:saturate(1.15)}#coastIntro.finished #film-beam{opacity:.5}#coastIntro.finished .film-title{opacity:1;transform:none}#coastIntro p{line-height:1.6}@keyframes film-pan{0%{opacity:.04;transform:scale(1.24);filter:saturate(.35)}35%{opacity:.65}100%{opacity:.95;transform:scale(1.03);filter:saturate(1.15)}}@keyframes film-studio{0%{opacity:0;transform:translateY(12px)}25%,65%{opacity:1;transform:translateY(0)}100%{opacity:0}}@keyframes film-title{0%,62%{opacity:0;transform:translateY(16px)}100%{opacity:1;transform:translateY(0)}}@keyframes film-caption{0%,27%{opacity:0}42%,60%{opacity:1}76%,100%{opacity:0}}@keyframes film-light{0%,44%{opacity:0}63%{opacity:.6}100%{opacity:.5}}@keyframes film-water{from{transform:translateX(-7px);opacity:.1}to{transform:translateX(7px);opacity:.4}}@media(max-width:600px){.film-top{left:5%;right:5%}.film-top>span{font-size:8px;letter-spacing:2px}.film-top>div{gap:3px}.film-top button{padding:10px;font-size:10px}.film-title{top:29%}.film-kicker{font-size:7px;letter-spacing:2.5px}.film-title h1{font-size:clamp(48px,13vw,78px)}.film-title h1 span{font-size:10px;letter-spacing:8px}.film-location{font-size:8px;letter-spacing:2px}.film-bottom p{font-size:12px;max-width:280px}.film-caption{font-size:20px;top:53%}.film-studio{top:28%}.film-scene svg{width:190%;margin-left:-60%}}@media(orientation:landscape) and (max-height:600px){.film-top{top:max(8px,env(safe-area-inset-top))}.film-title{top:22%}.film-kicker{margin-bottom:10px;font-size:7px}.film-title h1{font-size:48px}.film-title h1 span{font-size:9px;margin-bottom:8px}.film-rule{margin:8px}.film-location{font-size:7px;margin:6px}.film-bottom{bottom:max(12px,env(safe-area-inset-bottom))}.film-bottom p,.film-duration{display:none}.film-bottom button{padding:10px 18px}.film-caption{top:45%;font-size:18px}.film-studio{top:20%}.film-emblem{font-size:64px}}@media(prefers-reduced-motion:reduce){#coastIntro *,#coastIntro{animation:none!important;transition:none!important}.film-scene{opacity:.8;transform:none}}

/* Lost Atlas premium identity, original vector mark and paper surfaces. */
.atlas-film-open{overflow:hidden}.brand .atlas-brand-mark{width:40px;height:40px;flex:none}.film-emblem .atlas-brand-mark{width:94px;height:94px;filter:drop-shadow(0 0 30px #d8b97944)}.film-title h1{letter-spacing:-2px}.play-panel{border-color:#d8b97930;background:radial-gradient(ellipse at 50% 30%,#1b4b545c,transparent 80%),linear-gradient(150deg,#122e3a44,#08162255);box-shadow:inset 0 1px #ffffff04}.card:not(.back){background:linear-gradient(135deg,#fffaf0,#eee5d3);border-color:#ded0b5;box-shadow:0 4px 9px #0005,inset 0 1px #fff}.card.back,.stock{background:radial-gradient(ellipse at 35% 20%,#285360,#112d3c);border-color:#b49c6c}.card.back:after{content:'';position:absolute;inset:4px;border:1px solid #d8b97944;border-radius:3px;pointer-events:none}.card.back span{font-weight:normal;color:#e0c78f}nav{background:linear-gradient(90deg,transparent,#17334244,transparent);border-radius:8px}.reward-sigil svg{width:46px;height:46px}.primary{box-shadow:inset 0 1px #fff4,0 3px 14px #0003}button{transition:background .15s,border-color .15s}button:hover{border-color:#d8b97999}@media(max-width:600px){.brand .atlas-brand-mark{width:34px;height:34px}.film-emblem .atlas-brand-mark{width:80px;height:80px}}@media(orientation:landscape) and (max-height:600px){.film-emblem .atlas-brand-mark{width:64px;height:64px}}

/* Reference-inspired Sunken Coast painting: one compressed asset, reused. */
.coast-painting{position:absolute;inset:0;background:var(--coast-art) center 20%/cover no-repeat;pointer-events:none}.world .coast-painting{filter:saturate(.9) brightness(.88);transition:filter 2s}.landmark-0 .world .coast-painting{filter:saturate(1) brightness(1)}.world:after{background:linear-gradient(90deg,#061421c9,transparent 70%),linear-gradient(0deg,#091625,transparent 50%)}.film-scene>.coast-painting{background-position:54% 40%}.film-title h1{color:#f5dfac;text-shadow:0 2px 1px #795329,0 5px 25px #000c,0 0 60px #091625cc}.film-shade{background:linear-gradient(#050f1980,#050f1929 40%,#050f19e8),radial-gradient(ellipse at center,transparent,#050f1980)}.film-haze:after{content:'';position:absolute;left:17%;top:8%;width:78%;height:36%;background:linear-gradient(90deg,#ffdf9470,#ffe2a126,transparent);clip-path:polygon(0 45%,100% 0,100% 100%);opacity:0;transform-origin:0 50%}.playing .film-haze:after{animation:painted-beacon 8s both}.finished .film-haze:after{opacity:.55}.play-panel{background-image:linear-gradient(145deg,#061625d9,#0a2430ed),var(--coast-art);background-size:cover;background-position:center 55%;border-color:#d8b97960;box-shadow:inset 0 1px #fff1,0 8px 30px #0002}.card.back span{width:29px;height:29px;display:grid;place-items:center;border:1px solid #d8b97988;border-radius:50%;font-size:23px;text-shadow:0 0 9px #d8b97940}.card.back{border-color:#d8b979;background:linear-gradient(145deg,#173e59,#081c31)}.primary{background:linear-gradient(180deg,#f4dda4,#d3ac61);color:#142331;border:1px solid #ffe5a5;box-shadow:inset 0 1px #fff7,inset 0 -2px #a47b3a55,0 4px 15px #0004}.discovery-art{height:96px;width:100%;border:1px solid #d8b97999;border-radius:5px;margin:18px 0;background:var(--coast-art) center 28%/cover;box-shadow:0 0 20px #d8b97918}#map{background-image:linear-gradient(#09202de8,#0c202df5),var(--coast-art);background-position:center top;background-size:cover}.level-node{border-color:#d8b97955;background:#061d26bf}.level-node.done{background:linear-gradient(145deg,#244b4cd9,#12313ee6);border-color:#d8b97977}@keyframes painted-beacon{0%,44%{opacity:0}63%{opacity:.75}100%{opacity:.55}}@media(max-width:600px){.world .coast-painting{background-position:53% 12%}.film-scene>.coast-painting{background-position:53% center}.discovery-art{height:86px}}@media(orientation:landscape) and (max-height:500px){.discovery-art{height:70px}}

img.atlas-brand-mark{display:block;border-radius:22%;object-fit:cover;box-shadow:0 0 0 1px #d8b97955}
.film-emblem img.atlas-brand-mark{margin-inline:auto}

footer{flex-wrap:wrap;gap:6px 12px}footer .site-links{flex-basis:100%;max-width:none;text-align:left;margin-top:4px;letter-spacing:1.5px;font-size:9px;line-height:1.8;color:#8aa4ac}footer .site-links a{color:inherit;text-decoration:none}footer .site-links a:hover{color:#f3dfae}
