*{box-sizing:border-box} :root{font-family:system-ui,sans-serif;color:#fff7e8;background:#171329;--gold:#f1cc7c;--mint:#9aead7;--purple:#c49aff}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:#342744;border:1px solid #79628c;border-radius:22px;min-height:44px;padding:9px 16px}button:hover{border-color:var(--gold)}button:focus-visible,a:focus-visible{outline:3px solid var(--mint);outline-offset:3px}button:disabled{opacity:.5;cursor:default}header{height:68px;position:sticky;top:0;z-index:5;background:#251d37f5;border-bottom:1px solid #574361;display:flex;align-items:center;justify-content:space-between;padding:0 max(12px,calc((100vw - 900px)/2));gap:10px}.brand{display:flex;align-items:center;border:0;background:none;padding:0;font:italic bold 24px Georgia}.brand img{width:46px;height:46px;object-fit:contain}.tools{display:flex;gap:6px}.tools button{padding:7px 11px}.review{display:flex;justify-content:center;align-items:center;gap:10px;color:#c9badb;font-size:11px;min-height:30px;background:#20192f}.review button{min-height:28px;padding:0 10px;border:0;background:none}main{max-width:900px;margin:auto;padding-bottom:100px;min-height:70vh}h1,h2,h3{font-family:Georgia,serif;line-height:1.2}h1{font-size:clamp(30px,6vw,46px)}p{line-height:1.65;color:#d6c7e5}.welcome{text-align:center;padding:34px 20px}.welcome>img{width:125px}.eyebrow{color:var(--gold);letter-spacing:2px;font-size:12px;text-transform:uppercase}.gates{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:30px auto;max-width:600px}.gate{min-height:180px;border-color:#b78a51;background:radial-gradient(at top,#764027,#241b28);font:25px Georgia}.gate.west{background:radial-gradient(at top,#285e59,#18242d);border-color:#71ac98}.gate span{display:block;font:14px system-ui;margin-top:15px}.primary{background:var(--purple);color:#241335;border:0;font-weight:700}.secondary{background:transparent}.map-art{max-width:600px;margin:auto;overflow:hidden;border-radius:28px;border:1px solid #897146;background:#30213e;touch-action:pan-y}.map-panel{position:relative;overflow:hidden;width:100%;aspect-ratio:500/760}.map-panel.lower{aspect-ratio:500/600}.map-panel>img{position:absolute;max-width:none;width:307.2%;height:auto;left:-86%;top:-11.8421%;pointer-events:none;user-select:none}.map-panel.lower>img{left:-194%;top:-15%}.place{position:absolute;transform:translate(-50%,-50%);padding:8px 10px;background:#24192b;border-color:#d9b472;box-shadow:0 3px 15px #0008;font-size:13px;min-width:120px;max-width:48%;text-align:center}.place small{display:block;font-size:10px;color:#e2cced}.place.done:after{content:'✓';position:absolute;right:-7px;top:-10px;background:var(--mint);color:#173c33;border-radius:50%;padding:3px 6px}.location{padding:20px;max-width:720px;margin:auto}.location-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.location-top small{color:#d1bfde}.guide{display:flex;align-items:center;gap:12px;margin:24px 0}.guide img{width:70px}.guide p{margin:0}.activity{margin:20px 0;padding:24px 0;border-top:1px solid #574361;border-bottom:1px solid #574361;min-height:190px}.choices{display:flex;flex-wrap:wrap;gap:12px}.choices button{flex:1;min-width:120px}.cards button{min-height:140px;background:linear-gradient(145deg,#593268,#281d3c);color:var(--gold);font-size:26px;border:2px solid var(--gold);border-radius:12px}.chart{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.chart button{border-radius:12px;min-height:80px}.chart button:first-child{border-color:var(--mint)}.chat-line{display:flex;align-items:flex-start;gap:10px;margin:18px 0}.chat-line img{width:38px}.chat-line p{margin:0}.answer{padding:15px 0;color:var(--mint);line-height:1.65}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.actions button{flex:1}.stamp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stamp{padding:18px 8px;text-align:center;border:1px solid #665371;border-radius:18px;color:#b5a2c4}.stamp.earned{border-color:var(--gold);color:var(--gold)}nav{position:fixed;bottom:calc(10px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(94%,650px);display:flex;z-index:5;padding:6px;border-radius:32px;background:#261e38f5;border:1px solid #766185;box-shadow:0 4px 30px #0007}nav:empty{display:none}nav button{flex:1;min-width:0;border:0;background:none;padding:5px 2px;font-size:12px;border-radius:25px}nav button span{display:block;font-size:20px}nav button.active{background:#594071}dialog{width:min(94%,520px);max-height:85dvh;overflow:auto;border:1px solid #b99b68;border-radius:24px;background:#2c213c;color:#fff7e8;padding:30px 24px;box-shadow:0 20px 80px #0009}dialog::backdrop{background:#100a20ba;backdrop-filter:blur(4px)}.close{position:absolute;right:8px;top:8px;min-height:36px;padding:0 12px}dialog h2{margin-right:20px}.scroll{background:linear-gradient(100deg,#dfc38a,#fff0cb 45%,#e4c994);color:#483022;border:5px double #b18a50;border-radius:10px;padding:20px;margin:15px 0}.scroll p{color:#604a34}.scroll label{display:block;font-size:13px;margin:12px 0}.scroll input,.scroll select{display:block;width:100%;background:#fff8e8;color:#3c2733;border:1px solid #a78a60;padding:10px;border-radius:8px;margin-top:5px;min-height:44px}.scroll .fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scroll h3{margin:5px 0;font-size:24px}.small{font-size:12px}.link-list{display:grid;gap:8px}.link-list button{text-align:left}#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);z-index:20;background:#f7e8c8;color:#302139;border-radius:20px;padding:12px 20px;max-width:90%;display:none}.event{background:radial-gradient(at top,#694160,#20182f);border-radius:25px;padding:30px;margin-top:20px}.reward{font-size:24px;color:var(--gold)}@media(max-width:380px){.brand span{font-size:19px}.tools{gap:3px}.tools button{padding:5px 9px}.place{font-size:12px;min-width:108px}.scroll .fields{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){dialog[open]{animation:appear .18s ease-out}@keyframes appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}
.location{touch-action:pan-y}

                                                                
nav{padding:7px 9px 8px;border:1px solid #c7a879;border-radius:30px;background:linear-gradient(115deg,#3b2747f7,#2a2039fa 60%,#38233ff7);box-shadow:inset 0 1px 0 #fff1ce22,0 5px 24px #10091f88}
nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:61px;padding:0 3px 7px;border-radius:0;color:#ecd3ac;font:14px Georgia,serif;background:transparent}
nav button .nav-icon{width:32px;height:32px;display:block;filter:drop-shadow(0 0 2px #e8b85d44)}
nav button .nav-label{font:inherit;line-height:1.2;white-space:nowrap}
nav button.active{background:radial-gradient(ellipse at 50% 85%,#d3973c25,transparent 65%);color:#ffe7b7;text-shadow:0 0 8px #eeba6e99}
nav button.active .nav-icon{filter:drop-shadow(0 0 3px #ffc96bab)}
nav button.active:after{content:"";position:absolute;bottom:0;left:23%;right:23%;height:1px;background:linear-gradient(90deg,transparent,#ffe8a9,transparent);box-shadow:0 0 7px 1px #fbc46b88}
nav button:hover{color:#fff2d4}nav button:focus-visible{border-radius:12px}
@media(max-width:380px){nav button{font-size:12px}.nav-icon{max-width:29px}}

.place{border:0;border-radius:0;isolation:isolate;background:none;box-shadow:none;min-width:132px;max-width:47%;padding:10px 14px;font:clamp(14px,3.6vw,20px)/1.15 Georgia,"Times New Roman",serif;color:#f9e7c6;filter:drop-shadow(0 3px 4px #140d2380)}
.place:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,#efce83,#947249 45%,#e7c686);clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 9px,100% calc(100% - 9px),calc(100% - 9px) 100%,9px 100%,0 calc(100% - 9px),0 9px)}
.place>span{display:block}.place>span:before{content:"";position:absolute;inset:1px;z-index:-1;background:linear-gradient(130deg,#392638,#281d2d);clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px)}
.place:hover{color:#fff5dc}.place:focus-visible{outline:3px solid var(--mint);outline-offset:4px}
@media(max-width:380px){.place{min-width:120px;padding:9px 10px;font-size:14px}}

:root{font-family:"Be Vietnam Pro",sans-serif;font-synthesis:none}h1,h2,h3,.brand,.place,nav button{font-family:"Fraunces",serif;font-synthesis:none}h1,h2,h3{line-height:1.4;letter-spacing:0}.scroll{color-scheme:light}.scroll h3{font-size:25px;line-height:1.5}.scroll input,.scroll select{font-family:"Be Vietnam Pro",sans-serif}
.continuous-map{position:relative;max-width:760px;margin:0 auto;border:1px solid #b2925d;border-radius:22px;overflow:hidden;touch-action:pan-y;isolation:isolate}.terrain{display:block;width:100%;height:auto}.building-hit{position:absolute;transform:translate(-50%,-50%);width:34%;height:11%;background:none;border:0;z-index:1;border-radius:25%;padding:0;min-height:44px}.building-hit:hover{background:#ffd98312}.building-hit:focus-visible{outline:3px solid var(--mint);outline-offset:-3px}.continuous-map .place{z-index:2;min-width:0;width:max-content;max-width:46%;font-size:clamp(12px,3.1vw,19px);line-height:1.4;padding:7px 11px}.region-tabs{position:sticky;top:68px;z-index:4;display:flex;gap:8px;padding:9px 12px;background:#251d37f5;max-width:760px;margin:auto}.region-tabs button{flex:1;font-size:12px;border-color:#8e754d}.region-tabs button[aria-pressed=true]{background:#59405e;color:#ffdf9b}.index-preview-link{color:#f2cf8f;font-size:13px;display:inline-flex;align-items:center;min-height:44px;padding:4px 9px}.gates .gate{padding:14px 10px;background:linear-gradient(165deg,#45304e,#241b32);border-color:#b89660;border-radius:70px 70px 18px 18px;font-family:"Fraunces",serif;font-size:20px}.gates .gate.west{background:linear-gradient(165deg,#254647,#241b32)}.gate .gate-portal{position:relative;display:grid;place-items:center;height:140px;max-width:125px;margin:0 auto 15px;border:3px double #e9cb8b;border-radius:70px 70px 5px 5px;background:radial-gradient(ellipse at bottom,#ffe3a066,#301b4288),url(assets/village-continuous.png?v=d3-motion) 23% 10% / 500%;box-shadow:0 0 20px #f3bd5c22,inset 0 0 15px #ffcc7055}.gate .west-portal{background-position:78% 58%}.gate .gate-emblem{font-size:50px;color:#ffe3a0;text-shadow:0 0 20px #ffe2a0}.welcome-arch{width:120px;height:140px;margin:0 auto;border:3px double #d5b473;border-radius:65px 65px 5px 5px;background:radial-gradient(at bottom,#e9b65d88,#4b2b61)}.welcome-arch img{width:110px;margin-top:25px}
dialog.destination-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,620px);max-height:65dvh;padding:25px 18px calc(20px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:linear-gradient(120deg,#4b3255,#30213d);border-color:#d0aa72}.destination-sheet::backdrop{background:#100a2038;backdrop-filter:none}.sheet-handle{position:absolute;top:9px;left:calc(50% - 20px);width:40px;height:4px;border-radius:4px;background:#b797ba}.destination-summary{display:grid;grid-template-columns:100px 1fr;gap:16px;align-items:center}.destination-art{height:125px;border-radius:18px;background-image:url(assets/village-continuous.png?v=d3-motion);background-size:420%;background-position:var(--art-x) var(--art-y);border:1px solid #dfb97855}.destination-summary h2{font-size:23px;margin:0 24px 4px 0;font-weight:500}.destination-summary p{font-size:13px;line-height:1.6;margin:0 0 12px;color:#f2e2ee}.destination-summary .primary{width:100%;font:500 16px "Fraunces",serif;background:linear-gradient(#c791d8,#9761b6);color:#fff6df;border:1px solid #e6b9ed;box-shadow:0 0 13px #ce8df544}.destination-sheet .close{z-index:2;top:12px}
@media(prefers-reduced-motion:no-preference){dialog.destination-sheet[open]{animation:sheet-in .24s ease-out}@keyframes sheet-in{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}}
@media(max-width:380px){.destination-summary{grid-template-columns:76px 1fr;gap:12px}.destination-summary h2{font-size:20px}.destination-art{height:110px}.region-tabs button{font-size:11px}}
.scroll .fields{grid-template-columns:repeat(2,minmax(0,1fr))}.scroll input,.scroll select{min-width:0;max-width:100%}.scroll .fields label{min-width:0}
@media(max-width:480px){.scroll .fields{grid-template-columns:1fr;gap:0}}

                                                                             
.gate-emblem svg{width:56px;height:56px;display:block;margin:auto;filter:drop-shadow(0 0 9px #ffe2a077)}
body.responsive-layout{height:var(--app-height,100dvh);position:relative;top:var(--app-offset,0px);overflow:hidden;display:flex;flex-direction:column}
.responsive-layout header{flex:none;position:relative;height:calc(62px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}
.responsive-layout .review{flex:none;min-height:26px;font-size:10px}
.responsive-layout #main{flex:1;min-height:0;max-width:900px;width:100%;padding:0;overflow:auto;overscroll-behavior-y:contain}
.responsive-layout #main.map-route{display:flex;flex-direction:column;overflow:hidden}
.responsive-layout nav{flex:none;position:relative;left:auto;bottom:auto;transform:none;width:min(calc(100% - 16px),650px);margin:7px auto calc(8px + env(safe-area-inset-bottom));padding:5px 7px}
.responsive-layout nav button{min-height:55px;font-size:12px}
.responsive-layout .responsive-toolbar{display:flex;align-items:center;gap:7px;padding:0 10px;min-height:44px;flex:none;background:#251d37}
.responsive-toolbar strong{font:500 17px/1.4 "Fraunces",serif;margin-right:auto}
.responsive-toolbar button{font-size:11px;min-height:44px;padding:5px 9px;background:none;border:0}
.responsive-layout .region-tabs{position:relative;top:auto;flex:none;width:100%;max-width:760px;padding:0 8px 5px;gap:6px}
.responsive-layout .region-tabs button{min-height:40px;font-size:11px;padding:5px 7px}
.map-scroll{flex:1;min-height:0;overflow:auto;overflow-x:hidden;overscroll-behavior-y:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#9e7e63 #241c33;overflow-anchor:none}
.continuous-map.layered-map{height:var(--map-height,1200px);max-width:760px;border-radius:0;border:0;overflow:hidden;background:#33283f}
.landscape{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.landscape path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.landscape .road-shadow{stroke:#120f27;stroke-width:32px;opacity:.65}
.landscape .road-stone{stroke:#8d6d60;stroke-width:23px}
.landscape .road-edge{stroke:#efc77b;stroke-width:2px;filter:drop-shadow(0 0 3px #efb25e)}
.forest-edge{position:absolute;top:0;bottom:0;width:19%;background-image:url(assets/village-continuous.png?v=d3-motion);background-size:720% auto;opacity:.45;pointer-events:none;mask-image:linear-gradient(90deg,#000,transparent)}
.forest-left{left:0;background-position:0 50%}.forest-right{right:0;transform:scaleX(-1);background-position:100% 40%}
.landmark{position:absolute;left:var(--landmark-x);top:var(--landmark-y);width:min(49%,calc(var(--map-height)*.29));transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;z-index:1}
.layered-map .building-hit{position:relative;transform:none;inset:auto;width:100%;height:auto;aspect-ratio:var(--landmark-ratio);min-height:44px;border-radius:0;overflow:visible;display:block}
.landmark-art{width:100%;height:100%;display:block;mask-image:radial-gradient(ellipse 67% 68% at 50% 48%,#000 53%,transparent 77%);pointer-events:none}
.layered-map .building-hit:hover{background:none;filter:brightness(1.13)}
.layered-map .building-hit:focus-visible{outline-offset:-5px;border-radius:35%}
.layered-map .place{position:relative;transform:none;left:auto;top:auto;width:max-content;max-width:100%;min-width:112px;min-height:44px;padding:6px 8px;font-size:clamp(12px,2.8vw,17px);line-height:1.35;margin-top:-12px;filter:drop-shadow(0 3px 4px #140d2390)}
.responsive-layout .location{padding:16px 20px 25px}
@media(max-width:350px){.responsive-toolbar strong{font-size:15px}.responsive-toolbar button{font-size:10px;padding:4px 6px}.responsive-layout .region-tabs button{font-size:10px}.layered-map .place{min-width:108px;font-size:12px}}
                                                                               
                                                                             
.forest-edge{background-image:radial-gradient(ellipse at 10% 12%,#96629e99 0 10%,transparent 11%),radial-gradient(ellipse at 0 35%,#bd77b877 0 12%,transparent 13%),radial-gradient(ellipse at 20% 65%,#6d496e99 0 12%,transparent 13%),radial-gradient(ellipse at 0 90%,#8c568b88 0 14%,transparent 15%);background-size:100% 230px;opacity:.6}
                                                                            
                                                                
.landmark{width:min(49%,calc(var(--map-height)*.16))}
                                                                                  
.full-tour{max-width:760px}.full-tour h1{font-size:clamp(28px,5vw,39px);margin:16px 0 8px}.sample-label{display:inline-block;font-size:10px;line-height:1.5;letter-spacing:.07em;color:#f3d999;padding:5px 10px;border:1px solid #9e8055;border-radius:6px;margin:4px 0 12px}.full-tour>.guide{margin:12px 0 18px}.full-tour>.guide img{width:54px;flex:none}.full-tour>.guide p{font-size:12px;line-height:1.6}.tour-progress{display:flex;list-style:none;padding:0;margin:8px 0 16px;gap:7px}.tour-progress li{flex:1;border-bottom:2px solid #5c4867;padding-bottom:5px;text-align:center;color:#b7a2c6;font-size:11px}.tour-progress .passed{border-color:#a0cbb7;color:#a0cbb7}.tour-progress [aria-current]{border-color:#f0cc7b;color:#f0cc7b}.tour-activity{margin:10px 0;padding:18px 0;min-height:0}.tour-activity>h2{font-size:25px;margin:0 0 8px}.tour-instruction{font-size:13px;line-height:1.7;margin:0 0 20px;color:#ecdac9}.tour-options{display:grid;gap:10px;margin:14px 0}.tour-options button{text-align:left;border-radius:14px;padding:13px 15px;min-height:50px;background:#33263f}.selected,[aria-pressed=true].draw-card{border-color:#f4d17b!important;background:#654568!important;box-shadow:0 0 0 1px #f4d17b33}.tour-step-controls{display:flex;flex-wrap:wrap;gap:9px}.tour-step-controls>button{flex:1;min-width:90px;font-size:12px}.tour-step-controls #tour-skip{flex-basis:100%;font-size:11px;min-height:38px}.tour-footer{display:flex;gap:8px;margin:12px 0 16px;flex-wrap:wrap}.tour-footer button{flex:1;font-size:10px;line-height:1.5;padding:7px 10px}.sample-profile{display:flex;align-items:center;gap:15px;padding:16px;border:1px solid #a0825d;border-radius:18px;background:linear-gradient(120deg,#4b3651,#2a253e);margin:14px 0}.profile-seal{display:grid;place-items:center;border:1px solid #d8b974;border-radius:50%;width:45px;height:45px;flex:none;color:#ffe2a6;font:25px "Fraunces",serif}.sample-profile p{font-size:12px;margin:5px 0 0;line-height:1.8}.sample-profile strong{font-weight:500;font-size:14px}.sample-date{color:#edcf9b;font-size:13px}.reading-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.reading-tabs button{flex:1;min-width:100px;font-size:12px;padding:10px 8px;border-radius:12px}.reading-detail{border-left:2px solid #d6b17d;padding:12px 15px;margin-top:12px;background:#4a345744}.reading-detail h3{font-size:20px;margin:0 0 8px}.reading-detail p{margin:0;font-size:14px}.reading-section{border-top:1px solid #8c6c6155;padding:14px 0}.reading-section h3{font-size:21px;margin:0 0 8px}.reading-section h4{font-family:"Fraunces",serif;font-size:17px;margin:16px 0 4px}.reading-section p{font-size:13px;margin:7px 0}.result-disclaimer{font-size:11px!important;line-height:1.7;border-top:1px solid #ad8d5c;padding-top:15px}.sample-result{padding:18px;border:1px solid #b58d5e;border-radius:16px;background:linear-gradient(130deg,#463249,#2c2338);margin:12px 0}.sample-result>h2{font-size:26px;margin:8px 0 16px}.sample-result .sample-label{margin-bottom:2px}.sample-result .sample-profile{padding:12px}.result-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:14px 0}.result-tools button{min-width:0;padding:8px 2px;font-size:11px;border-radius:10px;min-height:44px}.tour-activity>#finish{display:block;width:100%;margin:18px 0 8px}.skip-note{font-size:12px;border-left:2px solid #d7af71;padding-left:12px}.keepsake-list{display:grid;gap:10px;margin:20px 0}.keepsake-list button{text-align:left;border-color:#bc9c6c;font:18px "Fraunces",serif;border-radius:15px}.keepsake-list small{display:block;font:11px/1.6 "Be Vietnam Pro",sans-serif;color:#dac8df;margin-top:6px}.keepsake-dialog{width:min(94%,720px);padding:25px 12px}.keepsake-dialog .sample-result{margin:12px 0 0}.tour-chat{margin:18px 0}.chat-turn{padding:14px 16px;margin:12px 0;border-radius:14px;font-size:13px}.chat-turn>span,.chat-turn div>span{font-size:10px;color:#d3ba9a}.chat-turn p{margin:7px 0 0;font-size:13px;line-height:1.85}.chat-turn.user{background:#74507155;margin-left:25px;border:1px solid #ae7ba355}.chat-turn.seer{display:flex;align-items:flex-start;gap:11px;background:#33263e;border:1px solid #b3905b66}.chat-turn.seer img{width:34px;height:34px;object-fit:contain;flex:none}.chat-turn.seer div{min-width:0}.tour-activity textarea,#sample-share-text{display:block;width:100%;margin:12px 0;background:#f5e9d0;color:#3c2e3d;border:1px solid #ba9865;border-radius:8px;padding:12px;font:12px/1.8 "Be Vietnam Pro",sans-serif;resize:vertical}
.scroll-seal{display:block;width:min(100%,300px);min-height:200px;margin:10px auto;font:25px/1.8 "Fraunces",serif;background:linear-gradient(110deg,#9d7546,#f0d8a0,#ad824e);border:4px double #ffe7b2;color:#4e3541;border-radius:12px;box-shadow:0 8px 18px #100b1b55}.daily-scroll{transform-origin:top;padding:22px 20px;border:4px double #b59257;border-radius:7px;background:linear-gradient(100deg,#dec28c,#fff2d1 45%,#dec28c);color:#533c37;box-shadow:0 8px 20px #120b1e77}.daily-scroll h3{font-size:25px;color:#533c37}.daily-scroll p{color:#654c40;font-size:14px}.scroll-star{font-size:48px;color:#a97a35;display:block;text-align:center}
.sample-chart{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,78px);gap:4px;position:relative;border:1px solid #bc9468;padding:4px;background:#302638;border-radius:12px}.sample-chart>*{min-width:0;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #796079;border-radius:5px;background:#443048;font-size:12px;padding:4px}.sample-chart small{font-size:8px;text-align:center;margin-top:5px;color:#dcc19e}.sample-chart>*:nth-child(1){grid-area:1/1}.sample-chart>*:nth-child(2){grid-area:1/2}.sample-chart>*:nth-child(3){grid-area:1/3}.sample-chart>*:nth-child(4){grid-area:1/4}.sample-chart>*:nth-child(5){grid-area:2/4}.sample-chart>*:nth-child(6){grid-area:3/4}.sample-chart>*:nth-child(7){grid-area:4/4}.sample-chart>*:nth-child(8){grid-area:4/3}.sample-chart>*:nth-child(9){grid-area:4/2}.sample-chart>*:nth-child(10){grid-area:4/1}.sample-chart>*:nth-child(11){grid-area:3/1}.sample-chart>*:nth-child(12){grid-area:2/1}.sample-chart>.chart-centre{grid-area:2/2/4/4;font:28px "Fraunces",serif;background:#2c2438;border:0}.sample-chart .chart-focus{border:2px solid #ffe0a0;color:#ffdf9d;background:#71526d}.sample-compass{width:140px;height:140px;border-radius:50%;border:2px solid #c4a265;margin:10px auto 20px;position:relative;background:radial-gradient(#6b4b64,#2d263b);text-align:center;padding-top:8px;font-size:11px;color:#efd29b}.sample-compass i{display:block;position:absolute;width:55px;height:2px;background:#f0cf82;top:70px;left:65px;transform-origin:left;transform:rotate(-45deg)}.sample-compass i:after{content:"";position:absolute;right:0;top:-4px;border-left:8px solid #f0cf82;border-top:5px solid transparent;border-bottom:5px solid transparent}.birth-wheel{max-width:300px;margin:0 auto 15px;text-align:center;position:relative}.birth-wheel svg{display:block;width:100%;fill:none;stroke:#d7b87d;stroke-width:1.5}.birth-wheel .constellation{stroke:#c48dd6;stroke-width:2}.birth-wheel span{display:block;font-size:10px;color:#cdb4d8;margin-top:-12px}
.dream-scene{height:160px;border-radius:80px 80px 16px 16px;position:relative;overflow:hidden;background:radial-gradient(at top,#5b4671,#20283f);border:1px solid #947c96;margin:0 auto 20px;max-width:330px}.dream-moon{width:42px;height:42px;border-radius:50%;background:#ffe3a3;position:absolute;top:20px;right:45px;box-shadow:0 0 20px #ffdc9e55}.dream-water{position:absolute;bottom:0;height:65px;left:0;right:0;background:repeating-linear-gradient(0deg,#3b8186aa 0 2px,#2b455e 3px 12px)}.dream-boat{position:absolute;width:85px;height:30px;background:#e8c27d;bottom:32px;left:60px;border-radius:0 0 50% 50%;transform:rotate(-7deg)}.dream-gate{position:absolute;left:60px;bottom:0;width:80px;height:105px;border:8px double #dfbc7d;border-radius:45px 45px 0 0;background:#9a77ad44}.dream-flower{position:absolute;font-size:85px;color:#c18ac0;bottom:-15px;right:35px}.garden-dream{background:linear-gradient(#2b2943,#365753)}
.spread-preview{display:flex;gap:12px;justify-content:center;margin:20px 0}.spread-preview span{width:65px;height:100px;display:grid;place-items:center;border:1px dashed #c0a078;border-radius:7px;color:#dcc18c}.deck-stage{height:190px;position:relative;margin:10px auto 20px;width:240px}.deck-stage span{position:absolute;left:75px;top:15px;width:90px;height:145px;border:2px solid #e5c184;background:repeating-linear-gradient(45deg,#6b4474 0 6px,#472e58 7px 12px);border-radius:9px;display:grid;place-items:center;color:#f3d79d;font-size:42px;transform:translate(calc(var(--card-index)*2px),calc(var(--card-index)*-2px));box-shadow:0 4px 12px #140f2588}.deck-shuffled span{transform:translate(calc((var(--card-index) - 2)*30px),calc(var(--card-index)*1px)) rotate(calc((var(--card-index) - 2)*9deg));transform-origin:50% 100%}.draw-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.draw-card{border:2px solid #ad8a63;border-radius:10px;background:repeating-linear-gradient(45deg,#5c3c6c 0 6px,#3d2c51 7px 12px);height:130px;color:#f0cd84;position:relative;font-size:40px;padding:0}.draw-card small{position:absolute;right:7px;top:7px;background:#f3d48f;color:#493447;width:23px;height:23px;border-radius:50%;font:14px/23px "Be Vietnam Pro",sans-serif}.card-spread{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.spread-position{min-width:0}.spread-position>p{font-size:10px;min-height:34px;line-height:1.5;text-align:center;margin:0 0 7px;color:#e2c697}.reading-card{padding:0;border:0;background:none!important;border-radius:10px;width:100%;height:175px;perspective:800px;box-shadow:0 5px 12px #120e2288}.card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d}.card-back,.card-front{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;border:2px solid #ddbd82;border-radius:10px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.card-back{background:repeating-linear-gradient(45deg,#603e70 0 6px,#3e2c54 7px 12px);font-size:46px;color:#edcf96}.card-front{transform:rotateY(180deg);color:#563447;background:linear-gradient(135deg,#f8e9bc,#d8bd83);overflow:hidden}.card-front svg{width:75%;height:82px;fill:none;stroke:#8f6348;stroke-width:2}.card-front strong{display:block;text-align:center;padding:5px;font:500 13px/1.4 "Fraunces",serif}.flipped .card-inner{transform:rotateY(180deg)}.playing-rank{position:absolute;left:8px;top:6px;font:24px Georgia,serif}.playing-suit{font-family:Georgia,serif;font-size:55px;line-height:1.3;font-variant-emoji:text}.red-suit{color:#a54c60}
.palm-scene{position:relative;max-width:280px;margin:5px auto 18px}.palm-scene svg{display:block;width:100%;overflow:visible}.sample-hand{fill:#eac59d;stroke:#b78b70;stroke-width:2}.position-corners{fill:none;stroke:#c8a674;stroke-width:2;stroke-dasharray:4 3;opacity:.6}.hand-positioned .position-corners{stroke:#9ce0c4;stroke-dasharray:none;opacity:1}.position-tag{display:block;font-size:10px;text-align:center;color:#a2e4d0;margin-top:-18px}.palm-line{cursor:pointer}.palm-line:focus{outline:none}.line-hit{stroke:transparent;stroke-width:18;fill:none;pointer-events:stroke}.line-ink{fill:none;stroke:#ba7b83;stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;pointer-events:none}.line-ink.head{stroke:#926db9}.line-ink.life{stroke:#ba904a}.line-active .line-ink,.palm-line:focus-visible .line-ink{stroke:#fff0bd;stroke-width:7;filter:drop-shadow(0 0 3px #7c4d92)}.line-seen:not(.line-active) .line-ink{stroke-width:6}.match-stars{position:relative;margin:10px auto 20px;max-width:350px;display:flex;justify-content:space-around;color:#f1d493;font:20px "Fraunces",serif}.match-stars svg{width:100%;position:absolute;bottom:25px;left:0;fill:none;stroke:#edca85;stroke-width:2}.match-stars{padding-top:135px}.star-link{stroke-dasharray:1;stroke-dashoffset:1;stroke:#a2dfce;stroke-width:3}.star-shape{fill:#dfba6644}.stars-connected .star-link{stroke-dashoffset:0}
@media(max-width:380px){.full-tour{padding:14px 13px}.sample-profile{gap:10px;padding:12px}.profile-seal{width:35px;height:35px;font-size:22px}.sample-profile strong{font-size:12px}.sample-profile p{font-size:10px}.tour-activity>h2{font-size:23px}.sample-chart{grid-template-rows:repeat(4,69px)}.sample-chart>*{font-size:10px}.sample-chart small{font-size:7px}.card-spread{gap:5px}.reading-card{height:142px}.card-front strong{font-size:11px}.card-front svg{height:67px}.result-tools button{font-size:10px}.sample-result{padding:13px}.chat-turn{padding:11px}.chat-turn.seer{gap:8px}.chat-turn.seer img{width:28px;height:28px}.draw-card{height:108px}}
@media(prefers-reduced-motion:no-preference){.scroll-unfold{animation:scroll-open .55s ease-out}.chart-revealed{animation:chart-open .45s ease-out}.chart-focus{animation:focus-palace .3s ease-out}.reading-detail,.chat-turn.seer{animation:reading-in .25s ease-out}.deck-shuffled span{animation:deck-deal .5s ease-out}.flipped .card-inner{animation:card-flip .5s ease-out}.palm-line .line-ink{animation:trace-line .6s ease-out}.hand-positioned .sample-hand{animation:position-hand .4s ease-out}.stars-connected .star-link{animation:trace-line .65s ease-out}@keyframes scroll-open{from{opacity:.4;transform:scaleY(.08)}to{opacity:1;transform:scaleY(1)}}@keyframes chart-open{from{opacity:.2;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}@keyframes focus-palace{from{box-shadow:inset 0 0 0 12px #edce8544}to{box-shadow:inset 0 0 0 0 #edce8500}}@keyframes reading-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes deck-deal{from{transform:translate(0,0) rotate(0)}to{transform:translate(calc((var(--card-index) - 2)*30px),calc(var(--card-index)*1px)) rotate(calc((var(--card-index) - 2)*9deg))}}@keyframes card-flip{from{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes trace-line{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes position-hand{from{transform:translate(9px,8px) rotate(4deg)}to{transform:none}}}
@media(prefers-reduced-motion:reduce){.full-tour *,.full-tour *:before,.full-tour *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
                                                                                   
.chat-turn.user,.chat-turn.seer{display:flex;align-items:flex-start;gap:10px;background:none;border:0;padding:0;margin:14px 0}
.chat-turn.user{margin-left:22px;flex-direction:row-reverse}.chat-turn.user img,.chat-turn.seer img{display:block;width:34px;height:34px;object-fit:contain;flex:none}.chat-turn.user img{border-radius:50%;border:1px solid #b39368}.chat-turn.user>div,.chat-turn.seer>div{border-radius:13px;padding:11px 13px;background:#4a3458;flex:1;min-width:0}.chat-turn.user>div{background:#69496a}.chat-turn p{margin:3px 0 0}.chat-turn div>span{font-size:10px;color:#e0c39b}
                                                                              
.full-tour h1{font-size:clamp(25px,4.5vw,33px);margin:9px 0 7px}.full-tour .tour-progress{margin:7px 0 10px}.full-tour .tour-activity{padding-top:12px}.tour-instruction{display:flex;align-items:flex-start;gap:10px;margin:0 0 15px}.tour-instruction img{width:36px;height:36px;object-fit:contain;flex:none}.tour-instruction p{font-size:12px;line-height:1.7;margin:0;color:#e9d8df}.tour-footer button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;font-size:11px;min-height:44px;padding:4px 6px}.card-front .tarot-front-art{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.card-front:has(.tarot-front-art) strong{position:absolute;bottom:0;left:0;right:0;background:#f8e9c9ee;color:#49333c;padding:5px 2px;font-size:11px}
.saved-spread .flipped .card-inner{animation:none!important}
                                                                             
                                                                              
.reading-card{overflow:hidden;max-width:100%}
                                                                                  
                                                                                   
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ui-icon{width:22px;height:22px;flex:none;stroke-width:2;color:#ecd3ac;vertical-align:-6px;filter:drop-shadow(0 0 2px #e8b85d33)}
.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
                                                                                      
                                                                                         
.map-toolbar{position:sticky;top:68px;z-index:3;display:flex;align-items:center;gap:6px;padding:18px 12px 8px;background:#251d37f5;max-width:760px;margin:0 auto}
.map-toolbar .region-tabs{position:static;flex:1;min-width:0;display:flex;gap:0;padding:0;margin:0;max-width:none;background:#1c1530;border:1px solid #8e754d;border-radius:23px}
.map-toolbar .region-tabs button{min-width:0;min-height:44px;padding:0 8px;border:0;border-radius:22px;background:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-toolbar .region-tabs button[aria-pressed=true]{background:#59405e}
.map-toolbar .tab-long{display:none}
@media(min-width:600px){.map-toolbar .tab-long{display:inline}.map-toolbar .tab-short{display:none}}
.tool-icon{position:relative;flex:none;width:44px;height:44px;min-height:44px;padding:0;display:inline-grid;place-items:center;border-radius:50%;border:1px solid #8e754d;background:#342744;color:#fff7e8;text-decoration:none}
.tool-icon:hover{border-color:var(--gold)}
.count-badge{position:absolute;top:-6px;right:-7px;min-width:24px;padding:0 5px;border:1px solid #251d37;border-radius:9px;background:var(--gold);color:#2a1d33;font:700 10px/16px system-ui,sans-serif;text-align:center}
.map-hint{position:absolute;z-index:3;top:6px;right:8px;max-width:calc(55% - 8px);display:flex;align-items:center;gap:4px;padding:0 0 0 14px;border:1px solid #d9b472;border-radius:23px;background:#24192bf2;color:#f9e7c6;font-size:12px;line-height:1.35;box-shadow:0 4px 16px #0008}
.map-hint .tool-icon{border:0;background:none}
.map-hint .ui-icon{width:18px;height:18px;stroke-width:2.4}
                                                                                   
                                                                                        
body:not(.responsive-layout) .review{min-height:26px;font-size:10px}
body:not(.responsive-layout) .review #settings{position:relative;z-index:4;align-self:flex-start;margin:0 0 -18px;padding:0 0 18px}
#coins,#lang,#profile{min-width:44px;min-height:44px}
#coins{display:inline-flex;align-items:center;gap:4px;padding:0 11px 0 8px}
#profile{display:inline-grid;place-items:center;padding:0}
#coins .ui-icon,#profile .ui-icon{width:24px;height:24px;stroke-width:1.8;vertical-align:0}
.review #settings{min-width:44px;min-height:44px;margin:-7px 0;padding:0;display:inline-grid;place-items:center;color:#c9badb}
.responsive-layout .review #settings{margin:-8px 0}
.review #settings .ui-icon{width:20px;height:20px;stroke-width:2.2;color:inherit}
.close{min-width:44px;min-height:44px;padding:0;display:grid;place-items:center}
.close .ui-icon{color:inherit}
.tour-step-controls #tour-skip{min-height:44px}
.reward-icon{width:30px;height:30px;stroke-width:1.45;color:var(--gold)}
.reading-tabs .ui-icon{width:16px;height:16px;stroke-width:2.7;margin-right:5px;vertical-align:-3px;color:var(--mint)}
                                                                                              
.link-list a{display:flex;align-items:center;min-height:44px;padding:9px 16px;border:1px solid #79628c;border-radius:22px;background:#342744;color:inherit;text-decoration:none}
.link-list a:hover{border-color:var(--gold)}
.place-list .icon-button,.keepsake-list .icon-button{justify-content:flex-start;text-align:left;gap:12px}
.place-list .ui-icon{width:26px;height:26px;stroke-width:1.66}
.place-list .icon-button{padding-top:8px;padding-bottom:8px;border-radius:18px}
.place-list .place-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.place-list .place-text strong{font-weight:500}
.place-list .place-text small{font-size:12px;color:#cdb9d8;margin-top:2px}
.place-list .done-mark{width:18px;height:18px;stroke-width:2.4;margin-left:auto;color:var(--mint)}
.keepsake-list .icon-button{padding:12px 16px}
.keepsake-list .ui-icon{width:30px;height:30px;stroke-width:1.45}
.stamp{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;line-height:1.25}
.stamp .stamp-icon{width:34px;height:34px;stroke-width:1.3;color:inherit;opacity:.75;filter:none}
.stamp.earned .stamp-icon{opacity:1;filter:drop-shadow(0 0 3px #ffc96b66)}
.stamp .stamp-check{position:absolute;top:7px;right:7px;width:16px;height:16px;stroke-width:2.7;color:var(--mint)}
.result-tools button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 2px}
@media(max-width:380px){.stamp{font-size:14px;padding:14px 4px}}
                                                                                   
                                                                                        
:root{--shell:100%}
@media(min-width:900px){
:root{--shell:min(94vw,1600px)}
header{padding:0 max(12px,calc((100vw - var(--shell))/2))}
main{max-width:var(--shell)}
.map-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:26px;background:#1c1630}
.map-stage:before{content:"";position:absolute;inset:-60px;z-index:-1;background:url(assets/village-continuous.png?v=d3-motion) center/cover;filter:blur(30px) saturate(.85) brightness(.42)}
.map-stage .continuous-map,.map-toolbar{max-width:min(100%,1120px)}
.continuous-map .place{font-size:clamp(17px,1.6vw,23px)}
.chest-view{max-width:min(100%,1080px)}
.chest-view>p{max-width:68ch}
.chest-view .stamp-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.chest-view .keepsake-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
}

                                                                                   
.continuous-map .place{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0}
.continuous-map .place:before{display:none}
.continuous-map .place>span{position:relative;isolation:isolate;max-width:100%;padding:3px 8px;background:linear-gradient(135deg,#efce83,#947249 45%,#e7c686);clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 7px,100% calc(100% - 7px),calc(100% - 7px) 100%,7px 100%,0 calc(100% - 7px),0 7px)}
.continuous-map .place>span:before{clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 6px)}
                                                                                  
header{height:calc(64px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}
.brand-group{display:flex;align-items:center;gap:5px;min-width:0}.brand{white-space:nowrap}
.demo-chip{display:grid;place-items:center;flex:none;width:46px;min-width:44px;min-height:44px;border:0;padding:0;background:none}
.demo-chip>span{padding:3px 5px;border:1px solid #b8956555;border-radius:6px;background:#31253e;color:#d8bf91;font:9px/1.4 "Be Vietnam Pro",sans-serif;white-space:nowrap}
                                                                             
#main.entry-route{max-width:none;min-height:calc(100svh - 64px - env(safe-area-inset-top));padding:0;background:#171329}
.single-gate{--gate-room:max(440px,calc(100svh - 64px - env(safe-area-inset-top)));position:relative;width:100%;height:var(--gate-room);margin:0;overflow:hidden;isolation:isolate;background:#171329}
.gate-artwork{position:absolute;inset:0;display:block}
.gate-hero-art{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 0%}
.gate-copy{position:absolute;z-index:1;top:8%;left:8%;right:8%;padding:6px 12px;text-align:center;background:none;border:0;border-radius:0;box-shadow:none;text-shadow:none}
.gate-copy h1{font:500 clamp(28px,5vw,52px)/1.2 "Fraunces",serif;color:#ffe5ad;margin:0 0 8px}
.gate-copy p{font-size:clamp(10px,1.8vw,14px);color:#f1dcba;margin:0;line-height:1.7}
.gate-actions{position:absolute;z-index:1;bottom:2.5%;left:17%;right:17%;display:grid;gap:3px;text-align:center}
.gate-actions .primary{position:relative;min-height:48px;border:1px solid #e6c382;border-radius:12px;background:linear-gradient(160deg,#79516f,#583553 32%,#3a2449 75%,#291c37);color:#ffe8b5;box-shadow:inset 0 1px 0 #ffedbd55,inset 0 -3px 4px #160c2577,0 3px 14px #12091d88;font:500 19px "Fraunces",serif;padding:9px 12px}
.gate-actions .primary:before{content:"";position:absolute;inset:4px;border:3px double #e3be7f88;border-radius:8px;pointer-events:none}
.gate-actions .primary:hover{background:linear-gradient(160deg,#815972,#684362 32%,#493057 75%,#35213f)}
.gate-signin{min-height:44px;border:0;background:#171329e8;color:#ffe9c4;border-radius:9px;font-size:11px;padding:5px 4px;line-height:1.6;text-shadow:0 1px 3px #160d20}
.map-overlay-tools{position:sticky;top:calc(64px + env(safe-area-inset-top));height:0;z-index:4;pointer-events:none;display:flex;justify-content:flex-end;max-width:1120px;margin:0 auto;padding:0 9px;transform:translateY(8px)}
.map-overlay-tools>.tool-icon{pointer-events:auto;background:linear-gradient(135deg,#4c3553ef,#261d34ed);box-shadow:0 2px 10px #110a2188}
.map-hint{right:64px;max-width:calc(70% - 64px);top:8px}
.map-utilities{position:fixed;inset:calc(72px + env(safe-area-inset-top)) max(12px,calc((100vw - 1120px)/2)) auto auto;margin:0;width:min(330px,calc(100% - 24px));max-height:calc(100dvh - 100px);padding:23px 14px 14px;border-radius:19px;background:linear-gradient(135deg,#45314d,#291e37)}
.map-utilities::backdrop{background:#100a2033;backdrop-filter:none}.map-utilities h2{font-size:23px;margin:4px 25px 16px 4px}
.map-menu-items .icon-button{display:flex;justify-content:flex-start;min-height:48px;gap:11px;padding:10px 12px;border-radius:11px;background:#32243f;border:1px solid #927750;color:#f3dec1;font-size:13px;text-decoration:none;text-align:left;line-height:1.5}.map-menu-items .icon-button span{min-width:0}.map-menu-items small{margin-left:auto;color:#e7c68b;white-space:nowrap}
.responsive-layout header{height:calc(64px + env(safe-area-inset-top))}.responsive-layout .map-overlay-tools{position:relative;top:auto;flex:none;width:100%;height:0}.responsive-layout #main.entry-route{overflow:auto;display:grid;flex:1}
@media(max-width:350px){header{padding-left:8px;padding-right:8px;gap:5px}.brand-group{gap:2px}.brand img{width:36px;height:36px}.brand span{font-size:18px}.demo-chip{width:44px}.demo-chip>span{font-size:8px;padding:3px}.tools{gap:2px}.tools button{padding-left:7px;padding-right:7px}#coins{padding-left:6px;padding-right:6px;gap:2px}.gate-actions{left:14%;right:14%}.gate-actions .primary{font-size:18px}.gate-signin{font-size:10px}.gate-copy h1{font-size:28px}}

@media(min-aspect-ratio:6/5){
 .gate-hero-art{object-position:100% 0%}
 .gate-copy{left:6%;right:auto;width:36%;top:28%;text-align:left}
 .gate-copy h1{font-size:clamp(32px,4vw,60px)}
 .gate-copy p{font-size:clamp(12px,1.3vw,18px)}
 .gate-actions{left:6%;right:auto;width:min(36%,420px);top:51%;bottom:auto}
 .gate-signin{font-size:12px}
}
@media(min-aspect-ratio:6/5) and(max-height:500px){.gate-copy{top:16%}.gate-actions{top:48%}}

                                                                    
.gate-copy h1{-webkit-text-stroke:1.4px #171329;paint-order:stroke fill;text-shadow:0 2px 4px #171329,0 0 10px #171329}
.gate-copy p{-webkit-text-stroke:.8px #171329;paint-order:stroke fill;text-shadow:0 1px 2px #171329,0 0 5px #171329}
                                                                                     
dialog.profile-scroll-dialog{width:min(94%,520px);max-height:92dvh;padding:24px 14px;border:0;border-radius:0;background:transparent;color:#493326;box-shadow:none;color-scheme:light}
.profile-scroll-dialog::backdrop{background:#110a20b8;backdrop-filter:blur(3px)}
.profile-scroll-dialog #dialog-body{position:relative;padding:22px 20px 25px;background:linear-gradient(90deg,#b3834d33,transparent 9%,transparent 91%,#b3834d33),radial-gradient(ellipse at 15% 25%,#b9823c16,transparent 60%),linear-gradient(115deg,#e7c991,#fff0cd 45%,#e1be82);box-shadow:inset 0 0 25px #9a672b33,0 12px 35px #10091f88;border-radius:3px}
.profile-scroll-dialog #dialog-body:before,.profile-scroll-dialog #dialog-body:after{content:"";position:absolute;z-index:1;left:-8px;right:-8px;height:23px;border-radius:13px;background:linear-gradient(#96632e,#c99c5b 14%,#f5dfad 35%,#fae7ba 49%,#dcb77c 76%,#9c6a32);box-shadow:0 3px 5px #3d241e55,inset 0 1px 0 #ffefc7;pointer-events:none}
.profile-scroll-dialog #dialog-body:before{top:-11px}.profile-scroll-dialog #dialog-body:after{bottom:-11px}
.profile-scroll-dialog #profile-form{position:relative;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .22 0 0 0 0 .08 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='96' height='96' filter='url(%23p)'/%3E%3C/svg%3E")}
.profile-scroll-dialog>.close{z-index:3;top:28px;right:18px;border:0;background:none;color:#60452f}
.profile-scroll-dialog h2{font:500 26px/1.4 "Fraunces",serif;color:#503529;margin:3px 38px 10px 0}
.profile-scroll-dialog p{color:#61472e;font-size:11px;line-height:1.7}
.profile-scroll-dialog .scroll{background:none;border:0;border-radius:0;box-shadow:none;padding:0;margin:13px 0;color:#493326}
.profile-scroll-dialog .scroll h3{font-size:22px;line-height:1.4;margin:0 0 9px;color:#60422b;text-shadow:0 1px 0 #fff4d5}
.profile-scroll-dialog .scroll label{margin:8px 0;font-size:12px;line-height:1.5;color:#513929}
.profile-scroll-dialog .scroll input,.profile-scroll-dialog .scroll select{min-height:44px;padding:8px 3px;margin-top:3px;border:0;border-bottom:1px solid #947044;border-radius:2px;background:#fff5db38;color:#3c2733;box-shadow:inset 0 -1px 0 #fff4d477;font-size:14px}
.profile-scroll-dialog .scroll input:focus-visible,.profile-scroll-dialog .scroll select:focus-visible{outline:2px solid #775381;outline-offset:2px;background:#fff7e070;border-bottom-color:#573760}
.profile-scroll-dialog #profile-form>.primary{width:100%;min-height:48px;margin-top:10px;color:#ffe8b5;border:1px solid #9b763f;border-radius:9px;background:linear-gradient(160deg,#79516f,#3a2449 75%,#291c37);box-shadow:inset 0 0 0 3px #3a2449,inset 0 0 0 4px #d7b17488;font:500 17px "Fraunces",serif}
@media(max-width:480px){.profile-scroll-dialog .scroll .fields{grid-template-columns:1fr;gap:0}}

                                                                          
.place.done:after{display:grid;place-items:center;width:24px;height:24px;min-width:24px;min-height:24px;aspect-ratio:1;padding:0;line-height:1;flex-shrink:0;box-sizing:border-box;border-radius:50%}


.gate-hero-art{object-fit:contain;object-position:center top}
.profile-scroll-dialog :is(#sample-register,#sample-signin){min-height:48px;color:#ffe8b5;border:1px solid #9b763f;border-radius:9px;background:linear-gradient(160deg,#79516f,#3a2449 75%,#291c37);box-shadow:inset 0 0 0 3px #3a2449,inset 0 0 0 4px #d7b17488;font:500 17px "Fraunces",serif}
.single-gate{height:auto;min-height:0}
.gate-artwork{position:relative;inset:auto}
.gate-hero-art{width:100%;height:auto;object-fit:contain;object-position:center top}
@media(max-width:899px){
.village-map-page #main{padding-bottom:0;margin-bottom:0}
.village-map-page #nav{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom));left:auto;transform:none;margin:10px auto calc(10px + env(safe-area-inset-bottom))}
}
.village-map-page #main,#main.entry-route{min-height:0}
.map-stage .continuous-map{width:100%;max-width:none}
.single-gate[data-art-layout="wide"] .gate-copy{left:6%;right:auto;width:36%;top:28%;text-align:left}
.single-gate[data-art-layout="wide"] .gate-actions{left:6%;right:auto;width:min(36%,420px);top:51%;bottom:auto}
.single-gate[data-art-layout="portrait"] .gate-copy{top:8%;left:8%;right:8%;width:auto;text-align:center}
.single-gate[data-art-layout="portrait"] .gate-actions{top:auto;bottom:2.5%;left:17%;right:17%;width:auto}
.map-stage:before{display:none}
.map-overlay-tools{max-width:100%}
.map-hint{left:50%;right:auto;transform:translateX(-50%);width:min(360px,calc(100% - 136px));max-width:none;display:grid;grid-template-columns:minmax(0,1fr);padding:9px 44px;text-align:center;min-height:44px;gap:0}
.map-hint>span{min-width:0;text-align:center;overflow-wrap:normal}
.map-hint .tool-icon{position:absolute;right:0;top:50%;transform:translateY(-50%);width:44px;min-width:44px;min-height:44px;padding:8px}
