/* Moonlit blue and warm pearl: shared surroundings + final card. */
body{background:#263e55;color:#f0eee6}header{border-color:#d5bc8355}.brand,h1{color:#fff0cc}nav button{background:#35516b;border-color:#7892a4}nav button:hover,nav button[aria-pressed=true]{background:#4b657b;border-color:#edce88}footer,#score,.notice,#steps p{color:#ccd9e3}.quest-editor{background:#304a63}.quest-editor input,.quest-editor select,.quest-editor textarea{background:#233c53}.quest-body.quest-finale{background:#2d465e;border-color:#b7a37b}.portrait-result{color:#f1eee5}.portrait-context,.portrait-muted{color:#ccd9e3!important}.portrait-radar figcaption,.portrait-measure small,.portrait-totals span,.portrait-gauge small{color:#bfcedb}.portrait-recommendations article{background:#38536b;border-color:#cdb88955}.portrait-settings,.portrait-method{background:#344e66!important;border-color:#cdb88966}.portrait-form-grid input,.portrait-form-grid select{background:#233c53;border-color:#91a8b6}.portrait-route{align-items:start}.portrait-route small{display:block;color:#c4d2de;font-size:12px;line-height:1.4;margin:8px 2px;max-width:140px}.portrait-gauge strong{background:radial-gradient(closest-side,#2d465e 84%,transparent 85% 100%),conic-gradient(var(--gauge-color) var(--gauge-value),#4a6278 0)}.quest-facet{background:#344e66!important}.birthplace-picker{margin:20px 0}.birthplace-picker>label{display:block}.birthplace-picker>label input{display:block;width:100%;padding:12px;border:1px solid #91a8b6;border-radius:7px;background:#233c53;color:#fff;font:inherit;margin:8px 0}.birthplace-map{height:360px;min-height:280px;border-radius:14px;border:1px solid #91a8b6;margin:18px 0;isolation:isolate;color:#233c53}.birthplace-map button,.birthplace-map a{color:#233c53}.birthplace-results{display:grid}.birthplace-results button{text-align:left;background:#405e75;color:#fff;border-color:#91a8b6}.birthplace-timezone{font-size:15px!important;color:#bce6e9!important}.birthplace-advanced{padding:12px 0}.birthplace-advanced summary{font-size:14px}.birthplace-picker select{padding:12px;background:#233c53;color:#fff;max-width:100%}.birthplace-picker input[readonly]{opacity:.7}.portrait-natal-grid>div:first-child{border-radius:20px;background:#233a52;border:1px solid #bdab8055;box-shadow:inset 0 1px 0 #ffffff15,0 18px 45px #07192b33}.portrait-natal-grid svg{display:block}.natal-orientation{font-size:13px;color:#c5d4df}.leaflet-container{font:13px/1.5 system-ui,sans-serif}.leaflet-control-attribution{color:#233c53!important}.leaflet-control-attribution a{color:#155d80!important}@media(max-width:600px){.birthplace-map{height:320px}.portrait-route li{min-width:112px}.birthplace-picker>.portrait-button{width:100%;margin-right:0}}@media print{.portrait-result{background:#2d465e!important}.birthplace-picker{display:none!important}}
.quest-cinematic .quest-body.quest-finale{background:#2d465e!important}body .quest-arena .quest-body .birthplace-timezone{color:#bce6e9!important}.natal-orientation{padding:0 16px 12px}
.portrait-file-panel{margin:20px 0;padding:20px;border:1px solid #d5bc83;border-radius:14px;background:#233c53}.portrait-file-panel h3{margin-top:0}.portrait-file-panel a{display:inline-block;text-decoration:none}.portrait-file-panel img{display:block;max-width:100%;max-height:650px;object-fit:contain;margin:20px auto 0;border-radius:8px}.portrait-file-panel a:focus-visible{outline:3px solid #bce6e9;outline-offset:3px}@media print{.portrait-file-panel{display:none!important}}
.portrait-wizard{color:#f1eee5;background:#2d465e;border:1px solid #d5bc8399;border-radius:22px;width:min(760px,calc(100vw - 28px));max-height:90dvh;overflow:auto;padding:28px;box-shadow:0 24px 100px #06142688;color-scheme:dark}.portrait-wizard::backdrop{background:#061426b8;backdrop-filter:blur(5px)}.portrait-wizard-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.portrait-wizard h2{font:clamp(26px,4vw,36px)/1.2 Georgia,serif;color:#fff0cf;margin:18px 0 12px}.portrait-wizard-close{background:transparent;border:0;color:#eee9dc;font-size:26px;padding:0;width:44px;height:44px}.portrait-wizard-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #d5bc8344;padding-top:12px;margin-top:20px}.portrait-wizard-footer .portrait-button{background:transparent;color:#edce88}.portrait-wizard-content{min-width:0}.portrait-wizard .birthplace-map{height:300px}.portrait-wizard .portrait-form-grid{margin:20px 0}.portrait-wizard .portrait-message{line-height:1.5}@media(max-width:600px){.portrait-wizard{padding:18px;max-height:92dvh;border-radius:16px}.portrait-wizard .portrait-form-grid{gap:12px}.portrait-wizard .portrait-button{font-size:15px}.portrait-wizard-footer{position:sticky;bottom:-18px;background:#2d465e;padding-bottom:16px}}
/* Rubi: red mineral accents within the existing moonlit blue world. */
.portrait-header{border-image:linear-gradient(90deg,#f28eaa,#edce88,#7ce1d0) 1}.portrait-overview{background:linear-gradient(135deg,#48658266,#73475e33,#22647844);border-radius:20px;padding:26px 20px;margin:22px 0}.portrait-radar svg{filter:drop-shadow(0 12px 24px #102d4344)}.portrait-focus strong{color:#ffe0a0}.portrait-recommendations article:nth-child(1){background:#4b405e;border-color:#efb1bb66}.portrait-recommendations article:nth-child(2){background:#2d5b67;border-color:#82d9df66}.portrait-recommendations article:nth-child(3){background:#61513f;border-color:#edce8866}.portrait-states{padding-inline:20px;background:#36546b;border-radius:18px;margin:22px 0}.portrait-natal-grid>div:first-child{background:linear-gradient(145deg,#37506e,#3e294c 55%,#1a4e60);border-color:#d599ab77}.rubi-finale{display:grid;grid-template-columns:minmax(180px,.8fr) 1.4fr;gap:24px;align-items:center;background:linear-gradient(120deg,#313650,#643446 60%,#344c65);border:1px solid #db879566;border-radius:22px;overflow:hidden;padding:22px 28px;margin:30px 0}.rubi-finale>img{width:100%;height:390px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 18px #190c2455)}.rubi-finale .portrait-kicker{color:#ffb7b3}.rubi-finale h3{font:34px Georgia,serif;color:#fff0cf}.rubi-finale p{font-size:16px!important;line-height:1.65!important}.rubi-finale blockquote{font:24px/1.45 Georgia,serif;color:#ffe8cd;margin:22px 0;padding:0 0 0 18px;border-left:3px solid #ff8f9f}.rubi-finale small{color:#e4c8d1}.rubi-traces{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.rubi-traces span{padding:5px 10px;border:1px solid #ee9ba355;border-radius:20px;font-size:12px;color:#ffd5cf}.quest-cinematic .rubi-relic{position:absolute;z-index:5;transform:translateX(-50%);padding:0;border:0;background:transparent!important;min-width:44px;min-height:44px;cursor:pointer;line-height:0;box-shadow:none}.rubi-relic-art{display:block;width:100%;aspect-ratio:1.5;background-size:200% 200%;background-repeat:no-repeat;filter:drop-shadow(0 2px 5px #10131b66);transition:filter .2s,transform .2s}.rubi-relic:hover .rubi-relic-art,.rubi-relic:focus-visible .rubi-relic-art{filter:drop-shadow(0 0 10px #ff729c);transform:scale(1.08)}.rubi-relic[data-found=true] .rubi-relic-art{filter:drop-shadow(0 0 5px #edce88)}.rubi-whisper{position:absolute;z-index:7;left:8%;right:8%;bottom:7%;padding:22px;border:1px solid #ee8e9c88;border-radius:16px;background:#26364cf5;box-shadow:0 15px 50px #0b152aaa;text-align:left}.rubi-whisper strong{display:block;color:#ffc1c5;font:22px Georgia,serif}.rubi-whisper p{font-size:16px;color:#f5e8e2;line-height:1.6;margin:14px 0}.rubi-whisper button{background:#cfb77d;color:#172538;border-color:#cfb77d}.rubi-relic:focus-visible{outline:2px solid #ffb2b8;outline-offset:5px;border-radius:12px}@media(max-width:600px){.portrait-overview{padding-inline:8px}.rubi-finale{grid-template-columns:1fr;padding:20px;gap:0}.rubi-finale>img{height:260px}.rubi-finale h3{font-size:28px}.rubi-finale blockquote{font-size:22px}.quest-cinematic .rubi-relic{min-width:52px}.rubi-whisper{left:3%;right:3%;bottom:4%;padding:16px}.rubi-whisper p{font-size:14px}.rubi-whisper strong{font-size:19px}}@media(prefers-reduced-motion:reduce){.rubi-relic-art{transition:none}}
.rubi-relic[data-rubi-clue=shadow] .rubi-relic-art{filter:brightness(.12);opacity:.55}.rubi-relic[data-rubi-clue=shadow]:hover .rubi-relic-art,.rubi-relic[data-rubi-clue=shadow]:focus-visible .rubi-relic-art{filter:brightness(.3) drop-shadow(0 0 5px #b677a6);opacity:.8}

/* Short comic bubbles leave the scene visible. */
.quest-doubt,.quest-cinematic .rubi-whisper{box-sizing:border-box;position:absolute;z-index:9;top:58px;bottom:auto;left:clamp(8px,calc(var(--speaker-x,50%) - 100px),calc(100% - 208px));right:auto;width:200px;max-width:calc(100% - 16px);padding:10px 27px 11px 12px;background:#fff7e8;color:#27394b;border:2px solid #34475a;border-radius:18px 20px 17px 5px;box-shadow:3px 4px 0 #101c3344;text-align:left;max-height:45%;overflow:visible}
.quest-doubt::after,.rubi-whisper::after{content:'';position:absolute;bottom:-9px;left:28px;width:13px;height:13px;background:#fff7e8;border-right:2px solid #34475a;border-bottom:2px solid #34475a;transform:skewY(25deg) rotate(25deg)}
.quest-doubt strong,.quest-cinematic .rubi-whisper strong{display:block;font:600 12px/1.2 system-ui,sans-serif;color:#805839;margin:0 0 5px}
.quest-doubt p,.quest-cinematic .rubi-whisper p{font:14px/1.3 system-ui,sans-serif;color:#27394b;margin:0}
.quest-doubt .quest-doubt-close,.quest-cinematic .rubi-whisper-close{position:absolute;top:-7px;right:-8px;width:44px;height:44px;min-height:44px;min-width:44px;padding:0;border:0;background:transparent!important;box-shadow:none;color:#34475a;font:22px/1 system-ui;cursor:pointer}
.quest-doubt-hint{font-size:13px!important;opacity:.8;margin:10px 0!important}.quest-actor .quest-touch{touch-action:pan-y}
@media(min-width:700px){.quest-doubt,.quest-cinematic .rubi-whisper{top:70px;width:220px;left:clamp(8px,calc(var(--speaker-x,50%) - 110px),calc(100% - 228px))}}
@media(max-width:360px){.quest-doubt,.quest-cinematic .rubi-whisper{width:180px;left:clamp(8px,calc(var(--speaker-x,50%) - 90px),calc(100% - 188px))}}
/* One sky, quiet symbols, details on touch. */
.sky-unified{margin:32px 0;padding:24px 0;border-top:1px solid #d5bc8344}.sky-unified>h3{font:32px/1.2 Georgia,serif;color:#fff0cc;margin:12px 0}.sky-interactive{max-width:660px;margin:auto;background:radial-gradient(ellipse at center,#49637844,transparent 68%)}.sky-interactive svg{width:100%;height:auto;display:block;overflow:visible}.sky-interactive [role=button]{cursor:pointer;outline:none}.sky-interactive [role=button]:focus-visible,.sky-interactive [aria-expanded=true]{filter:drop-shadow(0 0 5px #ffe1a0)}.sky-birth-caption,.sky-touch-hint{text-align:center;font-size:14px!important;line-height:1.6!important}.sky-birth-caption{color:#ffe3ad}.sky-summary,.sky-symbol-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:14px 0 24px}.sky-unified .sky-symbol{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;width:90px;min-height:88px;padding:8px 3px;background:transparent;border:1px solid transparent;color:#e5edf1;box-shadow:none;border-radius:14px;cursor:pointer;font:14px/1.3 system-ui}.sky-symbol-picture{display:grid;place-items:center;width:48px;height:48px;border:1px solid #c0d6e055;border-radius:50%;background:#26455b;font-size:25px}.sky-symbol[data-active=true] .sky-symbol-picture{border-color:#e6c88699;background:radial-gradient(circle at 35% 30%,#657477,#364f65);box-shadow:0 0 20px #f4ce8010}.sky-unified .sky-symbol:hover,.sky-unified .sky-symbol[aria-expanded=true]{background:#ead7a812;border-color:#edce8855}.sky-unified .sky-symbol:focus-visible{outline:2px solid #bce6e9;outline-offset:2px}.sky-summary .sky-symbol{width:140px}.sky-row-title{text-align:center;font:20px Georgia,serif;color:#edd6a7;margin:28px 0 12px}.sky-symbol-detail{position:relative;background:#203c52;border:1px solid #d6bf7d88;border-radius:16px;margin:16px 0 24px;padding:20px 52px 20px 20px;box-shadow:0 12px 35px #13263733}.sky-symbol-detail[hidden]{display:none}.sky-symbol-detail h4{margin:0 0 12px;font:22px/1.3 Georgia,serif;color:#ffe7b3}.sky-symbol-detail p{font-size:16px!important;line-height:1.6!important;margin:8px 0}.sky-unified .sky-detail-close{position:absolute;right:5px;top:5px;width:44px;height:44px;background:transparent;border:0;color:#f7e4bf;font-size:26px;cursor:pointer}.sky-more-symbols,.sky-about{border-top:1px solid #b6cad533;padding:18px 0;font-size:16px}.sky-more-symbols summary,.sky-about summary{cursor:pointer;color:#d8dfe2;min-height:32px}.sky-gates .sky-symbol{width:48px;min-height:48px;padding:0}.sky-gates .sky-symbol-label:empty{display:none}.sky-gates .sky-symbol-picture{font-family:serif}.sky-about p{font-size:16px!important;line-height:1.65!important}@media(max-width:500px){.sky-unified>h3{font-size:27px}.sky-symbol-row{gap:5px}.sky-unified .sky-symbol{width:80px}.sky-summary .sky-symbol{width:calc(33.333% - 8px)}.sky-gates .sky-symbol{width:48px}.sky-symbol-detail{padding:18px 45px 18px 16px}.sky-symbol-label{overflow-wrap:anywhere}}
.body-map{max-width:520px;margin:16px auto 4px}.body-map svg{display:block;width:100%;height:auto;overflow:visible}.body-map [role=button]{cursor:pointer;outline:none}.body-map-center{transition:filter .2s}.body-map-center:hover,.body-map-center:focus-visible,.body-map-center[aria-expanded=true]{filter:drop-shadow(0 0 8px #ffe4a5)}.body-map-channel:focus-visible .body-map-hit,.body-map-channel[aria-expanded=true] .body-map-hit{stroke:#e0f5ff;stroke-opacity:.35;stroke-width:9}.body-map-legend{max-width:480px;margin:8px auto!important;text-align:center;font-size:14px!important;line-height:1.6!important;color:#c3d6df!important}@media(prefers-reduced-motion:reduce){.body-map-center{transition:none}}
/* Illustrated Rubi relics: artwork supplies the frame and dimensional material. */
.sky-unified .sky-symbol-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:18px 12px;max-width:650px;margin:18px auto 32px;align-items:start}.sky-unified .sky-symbol{width:100%;min-height:125px;padding:6px;gap:9px;background:transparent;border-color:transparent;border-radius:16px}.sky-unified .sky-symbol .sky-symbol-picture{position:relative;width:82px;height:82px;border:0;background:none;box-shadow:none;border-radius:0;filter:drop-shadow(0 5px 6px #0b1b3380);transition:transform .2s,filter .2s}.sky-symbol-picture img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.sky-unified .sky-symbol-label{font-size:15px;line-height:1.4;overflow-wrap:normal;word-break:normal;hyphens:none;color:#f5e8cf;text-align:center}.sky-unified .sky-symbol:hover .sky-symbol-picture,.sky-unified .sky-symbol[aria-expanded=true] .sky-symbol-picture{transform:translateY(-3px);filter:drop-shadow(0 0 9px #e69a9370)}.sky-unified .sky-symbol:hover,.sky-unified .sky-symbol[aria-expanded=true]{background:#e4c48b0a;border-color:#d5a68b55}.sky-unified .sky-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:580px;margin:24px auto}.sky-summary .sky-symbol .sky-symbol-picture{width:94px;height:94px}.sky-unified .sky-summary .sky-symbol{width:100%}.sky-unified .sky-gates{grid-template-columns:repeat(auto-fit,minmax(62px,1fr));gap:12px}.sky-unified .sky-gates .sky-symbol{min-height:68px;padding:0}.sky-unified .sky-gates .sky-symbol-picture{width:62px;height:62px;font-size:29px;color:#ffdf9f;text-shadow:0 2px 4px #061b30,0 0 8px #091e33;isolation:isolate}.sky-gate-seal::before{content:'';position:absolute;inset:-3px;z-index:-1;background:url('/assets/rubi/sigils/symbol-2.webp') center/contain no-repeat;opacity:.38;filter:saturate(.45)}.body-map{max-width:580px}.body-map-center image{pointer-events:none}.body-map-center[data-defined=false]:hover{filter:drop-shadow(0 0 8px #b6e5fb)}@media(max-width:500px){.sky-unified .sky-symbol-row{gap:12px 8px}.sky-unified .sky-symbol-label{font-size:14px}.sky-summary .sky-symbol .sky-symbol-picture{width:76px;height:76px}.sky-unified .sky-summary{gap:4px}.sky-unified .sky-summary .sky-symbol{padding:4px 0}.sky-unified .sky-summary .sky-symbol-label{font-size:14px;overflow-wrap:break-word}.sky-unified .sky-symbol{min-height:118px}}@media(prefers-reduced-motion:reduce){.sky-unified .sky-symbol .sky-symbol-picture{transition:none}}
.sky-horizon-caption{max-width:530px;margin:2px auto 18px!important;color:#c3e1e5!important;font-size:14px!important;line-height:1.5!important;text-align:center}

.sky-connections{margin-top:32px;padding:20px;border:1px solid #b99a665e;border-radius:22px;background:linear-gradient(145deg,#192c4199,#48304455)}
.sky-connections>summary{cursor:pointer;color:#f2d59e;font:600 22px Georgia,serif;padding:4px 0}
.sky-connection-modes{display:flex;gap:10px;margin:20px 0}
.sky-connection-modes button{flex:1;min-width:0;margin:0!important}
.sky-connection-modes button[aria-pressed="true"]{border-color:#efc67a;background:#6b493e;color:#fff1d3;box-shadow:inset 0 0 18px #d2a15320}
.sky-connection-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sky-connection-fields label{display:grid;gap:8px;color:#e9ddc8;font-size:15px;min-width:0}
.sky-connection-fields label[hidden]{display:none}
.sky-connection-fields input{box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:12px 10px;border:1px solid #aebcce77;border-radius:12px;background:#182d42;color:#fff2d7;font:16px system-ui;color-scheme:dark}
.sky-connection-result>p{color:#ece4d6;line-height:1.65;overflow-wrap:anywhere}
.sky-connection-result .sky-about a{color:#a9e6ee}
.sky-connections .portrait-button{margin-right:8px;margin-bottom:8px}
@media(max-width:480px){.sky-connections{padding:15px 12px}.sky-connection-fields{grid-template-columns:1fr}.sky-connection-modes{gap:6px}.sky-connection-modes button{padding:12px 6px;font-size:16px}}
.sky-save-actions{margin-top:24px;padding-top:18px;border-top:1px solid #bba06d66}
.sky-save-actions label{display:grid;gap:8px;margin-bottom:16px;color:#f3e6d1}
.sky-save-actions input{box-sizing:border-box;width:100%;padding:14px;border:1px solid #bba06d88;border-radius:12px;background:#182d42;color:#fff2d7;font:16px system-ui}
.sky-saved-composites{margin-top:24px;border-top:1px solid #bba06d66;padding-top:20px}
.sky-saved-composites>summary{color:#f2d59e;cursor:pointer;font-size:18px}
.sky-saved-row{display:flex;gap:8px;align-items:center;margin-top:12px}
.sky-saved-row button:first-child{flex:1;overflow-wrap:anywhere;text-align:left}
.sky-saved-row button:last-child{font-size:14px;padding:10px;color:#d9b4bb}

/* First encounter: the map first, the story on demand. */
.hd-story-offer{margin:24px 0;padding:24px;border:1px solid #dfbf8177;border-radius:20px;background:linear-gradient(130deg,#30455ce6,#4c3549c9)}
.hd-story-offer>h4{font:26px/1.25 Georgia,serif;color:#ffeac4;margin:10px 0}.hd-story-offer p{font-size:16px!important;line-height:1.7!important;white-space:pre-line;overflow-wrap:break-word}
.hd-story-preview{margin-top:18px}.hd-story-preview>summary{padding:14px 16px;border-radius:12px;background:#efd5a8;color:#24384a;cursor:pointer;font:600 16px/1.5 system-ui}
.hd-story-preview section{padding:18px 0;border-bottom:1px solid #d6c09a33}.hd-story-preview section>h4{font:23px/1.3 Georgia,serif;color:#ffeac4}
.hd-story-preview details{margin:10px 0;padding:12px;border:1px solid #ccbbac44;border-radius:12px}.hd-story-preview details summary{font:16px/1.5 system-ui;cursor:pointer}
.hd-story-price{font-size:14px!important;opacity:.85;margin-bottom:0}.sky-symbol-detail details{margin-top:18px;border-top:1px solid #b7c4d544;padding-top:14px}.sky-symbol-detail details summary{cursor:pointer;font-size:14px}.sky-symbol-detail details p{font-size:14px;line-height:1.6}.sky-symbol-detail>div>p:first-child{font-weight:600;color:#f4d7a7}
.sky-unified .sky-more-symbols{margin:18px 0}.sky-summary .sky-symbol-label{font-size:15px!important}.sky-summary{margin-top:18px!important}
@media(max-width:520px){.hd-story-offer{padding:18px}.hd-story-offer>h4{font-size:23px}.hd-story-preview>summary{padding:12px;font-size:15px}.hd-story-preview section>h4{font-size:21px}}
/* A quiet premium accent: light card within the dark cosmic page. */
body .sky-unified .hd-story-offer{background:linear-gradient(135deg,#f8eddb 0%,#ead7b9 100%);border:1px solid #d8b77b;border-top:4px solid #b4854e;color:#293747;box-shadow:0 14px 38px #050c1833,0 0 0 5px #e7c98c0d;isolation:isolate}
body .sky-unified .hd-story-offer h4{color:#283448;-webkit-text-fill-color:#283448}
body .sky-unified .hd-story-offer p,body .sky-unified .hd-story-offer .portrait-muted{color:#3e4754!important;-webkit-text-fill-color:#3e4754;opacity:1}
body .sky-unified .hd-story-offer>.portrait-kicker{color:#814554;letter-spacing:.12em}
body .sky-unified .hd-story-preview>summary,body .sky-unified .hd-story-offer .portrait-button{background:#793f51;color:#fff8ee;border:1px solid #6d3547;-webkit-text-fill-color:#fff8ee;box-shadow:0 4px 12px #6f384324;transition:background .15s ease}
body .sky-unified .hd-story-preview>summary:hover,body .sky-unified .hd-story-offer .portrait-button:hover{background:#643246}
body .sky-unified .hd-story-preview>summary:focus-visible,body .sky-unified .hd-story-offer .portrait-button:focus-visible{outline:3px solid #293c55;outline-offset:4px}
body .sky-unified .hd-story-preview section{border-bottom-color:#9b795c44}
body .sky-unified .hd-story-preview details{background:#fffaf34d;border-color:#a78b6b66;color:#293747}
body .sky-unified .hd-story-preview details summary{color:#293747;-webkit-text-fill-color:#293747}
body .sky-unified .hd-story-offer .hd-story-price{display:inline-block;margin:18px 0 0;padding:8px 12px;border-radius:10px;background:#ffffff59;border:1px solid #b89a7055;font-size:14px!important;color:#594839!important;-webkit-text-fill-color:#594839}
@media(prefers-reduced-motion:reduce){body .sky-unified .hd-story-preview>summary,body .sky-unified .hd-story-offer .portrait-button{transition:none}}
/* Full-map demo purchase: neutral preview and a local colour reveal. */
.sky-unified [hidden]{display:none!important}
.sky-interactive,.body-map{position:relative}
.map-locked .sky-interactive>svg:first-child,.map-locked .body-map>svg:first-child{filter:grayscale(1);opacity:.75}
.map-color-lens{display:none!important;pointer-events:none!important}
.map-locked .sky-interactive>.map-color-lens,.map-locked .body-map>.map-color-lens{display:block!important;position:absolute;inset:0;width:100%;height:100%;clip-path:circle(72px at var(--map-x,50%) var(--map-y,50%));pointer-events:none;animation:map-lens-wander 28s ease-in-out infinite}
.map-locked .map-lens-touch>.map-color-lens{animation:none}
.map-locked .map-lens-offscreen>.map-color-lens{animation-play-state:paused}
@keyframes map-lens-wander{0%,100%{clip-path:circle(72px at var(--map-x,50%) var(--map-y,50%))}16%{clip-path:circle(72px at 20% 24%)}33%{clip-path:circle(72px at 78% 18%)}50%{clip-path:circle(72px at 82% 72%)}67%{clip-path:circle(72px at 24% 84%)}84%{clip-path:circle(72px at 14% 48%)}}
@media(prefers-reduced-motion:reduce){.map-locked .sky-interactive>.map-color-lens,.map-locked .body-map>.map-color-lens{animation:none}}
.hd-access-offer{display:grid;gap:12px}.hd-access-offer .portrait-button{width:100%;min-height:48px}
.map-checkout{box-sizing:border-box;width:min(480px,calc(100% - 28px));max-height:85dvh;overflow:auto;padding:24px;border:1px solid #d8b77b;border-radius:24px;background:#f8eddb;color:#293747;font:16px/1.6 system-ui;box-shadow:0 24px 80px #0008}
.map-checkout::backdrop{background:#091421bb}.map-checkout h3{color:#293747}.map-checkout select,.map-checkout button{box-sizing:border-box;width:100%;margin:8px 0;padding:14px;border-radius:12px;font:inherit;white-space:normal}.map-checkout .portrait-button{background:#793f51;color:#fff8ee;border:0}.map-checkout button:focus-visible{outline:3px solid #293747;outline-offset:3px}
/* Keep native iOS date/time controls inside the birth-card grid. */
.portrait-settings form,.portrait-wizard-content form,.portrait-form-grid,.portrait-form-grid>label,.birthplace-picker,.birthplace-picker>label{min-width:0;max-width:100%;box-sizing:border-box}
.portrait-form-grid input,.portrait-form-grid select,.birthplace-picker>label input{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
.portrait-form-grid input[type="date"],.portrait-form-grid input[type="time"]{-webkit-appearance:none;appearance:none;display:block;min-inline-size:0;inline-size:100%;max-inline-size:100%;min-height:48px}
.portrait-form-grid input::-webkit-date-and-time-value{min-width:0;text-align:left}
