.game-ui{--ui-design-w: 390;--ui-design-h: 844;--ui-scale: clamp(.82, calc(100vw / (var(--ui-design-w) * 1px)), 1.12);--ui-scale-h: clamp(.82, calc(100dvh / (var(--ui-design-h) * 1px)), 1.08);--ui-space-xs: clamp(4px, calc(6px * var(--ui-scale)), 8px);--ui-space-sm: clamp(8px, calc(10px * var(--ui-scale)), 14px);--ui-space-md: clamp(12px, calc(14px * var(--ui-scale)), 20px);--ui-space-lg: clamp(16px, calc(18px * var(--ui-scale)), 28px);--ui-font-xs: clamp(9px, calc(10px * var(--ui-scale)), 11px);--ui-font-sm: clamp(10px, calc(12px * var(--ui-scale)), 14px);--ui-font-md: clamp(12px, calc(13px * var(--ui-scale)), 16px);--ui-font-lg: clamp(15px, calc(17px * var(--ui-scale)), 22px);--ui-font-xl: clamp(18px, calc(22px * var(--ui-scale)), 28px);--ui-btn-h: clamp(44px, calc(48px * var(--ui-scale)), 56px);--ui-btn-pad-x: clamp(12px, calc(14px * var(--ui-scale)), 20px);--ui-touch: max(44px, calc(44px * var(--ui-scale)));--ui-dpad: clamp(96px, calc(28vw * var(--ui-scale)), 128px);--ui-chrome-bottom: max(8px, env(safe-area-inset-bottom, 0px));--ui-chrome-top: max(8px, env(safe-area-inset-top, 0px));--ui-controls-gap: clamp(8px, calc(10px * var(--ui-scale)), 14px);--ui-sheet-max-h: min(92dvh, calc(var(--ui-vh-px, 100dvh) * .92), 720px);--ui-media-max-h: min(42dvh, calc(var(--ui-vh-px, 100dvh) * .4), 360px)}.game-ui .ui-btn{font-size:var(--ui-font-md);padding:calc(var(--ui-btn-h) * .22) var(--ui-btn-pad-x);min-height:var(--ui-btn-h);border-radius:clamp(8px,calc(10px * var(--ui-scale)),12px)}.game-ui .top-bar{padding:var(--ui-space-sm) var(--ui-space-md);gap:var(--ui-space-sm);padding-top:max(var(--ui-space-sm),var(--ui-chrome-top))}.game-ui .region{font-size:var(--ui-font-sm);padding:var(--ui-space-xs) var(--ui-space-sm)}.game-ui .progress-label,.game-ui .build-version{font-size:var(--ui-font-xs)}.game-ui .top-actions{min-width:clamp(108px,34vw,168px);gap:var(--ui-space-sm)}.game-ui .touch-pad{left:var(--ui-space-sm);bottom:var(--ui-chrome-bottom);width:var(--ui-dpad);height:var(--ui-dpad)}.game-ui .context-cluster{right:var(--ui-space-sm);left:auto;transform:none;bottom:var(--ui-chrome-bottom);width:min(calc(100vw - var(--ui-dpad) - var(--ui-space-lg) * 2),260px);min-height:var(--ui-touch);padding:var(--ui-space-sm) var(--ui-space-md);font-size:var(--ui-font-md)}.game-ui .context-cluster:active{transform:scale(.98)}.game-ui .minigame-fab{right:var(--ui-space-sm);bottom:calc(var(--ui-chrome-bottom) + var(--ui-dpad) + var(--ui-controls-gap));max-width:min(48vw,200px);font-size:var(--ui-font-sm);padding:var(--ui-space-xs) var(--ui-space-sm);min-height:var(--ui-touch)}.game-ui .zone-toast{top:calc(var(--ui-chrome-top) + 52px * var(--ui-scale));font-size:var(--ui-font-sm);max-width:min(92vw,360px);padding:var(--ui-space-sm) var(--ui-space-md)}.game-ui .minimap-panel{top:calc(var(--ui-chrome-top) + 96px * var(--ui-scale));right:var(--ui-space-sm);width:clamp(96px,28vw,128px)}.game-ui .panel.sheet{max-height:var(--ui-sheet-max-h)}.game-ui .panel-header h2{font-size:var(--ui-font-md)}.game-ui .panel-close,.game-ui .map-overlay-close,.game-ui .travel-slideshow-close{min-width:var(--ui-touch);min-height:var(--ui-touch)}.game-ui--overlay-open .top-bar,.game-ui--overlay-open .minimap-panel,.game-ui--overlay-open .zone-toast,.game-ui--overlay-open .touch-pad,.game-ui--overlay-open .context-cluster,.game-ui--overlay-open .minigame-fab{visibility:hidden!important;pointer-events:none!important}.ui-sheet-modal{display:flex;flex-direction:column;max-height:min(100dvh,var(--ui-vh-px, 100dvh));overflow:hidden}.ui-sheet-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.ui-sheet-footer{flex-shrink:0;padding-bottom:max(var(--ui-space-sm),var(--ui-chrome-bottom))}.ui-sheet-footer .ui-btn{width:100%}.gift-reveal-overlay{align-items:stretch!important;justify-content:flex-end!important;padding:0!important}.gift-reveal-modal{width:100%!important;max-width:480px!important;margin:0 auto;max-height:min(100dvh,var(--ui-vh-px, 100dvh));display:flex;flex-direction:column;padding:0!important;border-radius:16px 16px 0 0!important;border-bottom:none!important;transform:translateY(100%)!important;text-align:left}.gift-reveal-overlay.visible .gift-reveal-modal{transform:translateY(0)!important}.gift-reveal-modal .gift-reveal-sparkles{display:none}.gift-reveal-sheet-header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ui-space-sm);padding:var(--ui-space-md);padding-top:max(var(--ui-space-md),var(--ui-chrome-top));border-bottom:1px solid rgba(244,194,215,.15)}.gift-reveal-sheet-body{flex:1;min-height:0;overflow-y:auto;padding:var(--ui-space-md);text-align:center}.gift-reveal-modal h2{font-size:var(--ui-font-lg)!important;margin:0 0 var(--ui-space-xs)!important}.gift-reveal-intro{font-size:var(--ui-font-sm)!important;max-height:30dvh;overflow-y:auto}.gift-reveal-actions{flex-shrink:0;padding:var(--ui-space-md);padding-top:var(--ui-space-sm);padding-bottom:max(var(--ui-space-md),var(--ui-chrome-bottom));border-top:1px solid rgba(244,194,215,.12);background:#00000026;gap:var(--ui-space-sm)}@media(max-width:519px){.map-overlay{align-items:stretch!important;justify-content:flex-end!important;padding:0!important}.map-overlay-sheet{width:100%!important;max-width:none!important;max-height:min(94dvh,var(--ui-vh-px, 100dvh))!important;border-radius:16px 16px 0 0!important;border-bottom:none!important}.map-overlay-header{padding-top:max(14px,var(--ui-chrome-top))}.map-overlay-close{font-size:var(--ui-font-lg)}}@media(min-width:520px){.gift-reveal-overlay{align-items:center!important;justify-content:center!important;padding:var(--ui-space-lg)!important}.gift-reveal-modal{border-radius:18px!important;border-bottom:1px solid rgba(244,194,215,.35)!important;transform:translateY(12px) scale(.96)!important;padding:var(--ui-space-lg) var(--ui-space-md) var(--ui-space-md)!important;text-align:center}.gift-reveal-overlay.visible .gift-reveal-modal{transform:translateY(0) scale(1)!important}.gift-reveal-modal .gift-reveal-sparkles{display:block}.gift-reveal-overlay--chapter .gift-reveal-modal .gift-reveal-sparkles,.gift-reveal-modal--compact .gift-reveal-sparkles{display:none}.gift-reveal-modal--compact{width:min(100%,320px)!important;max-width:320px!important}.gift-reveal-overlay--final:before{font-size:clamp(22px,3.5vw,36px);letter-spacing:.55em;color:#e8b8c46b}.gift-reveal-sheet-header{display:block;border:none;padding:0}.gift-reveal-sheet-header .gift-reveal-close{display:none}.gift-reveal-sheet-header>div:first-child{width:100%}.gift-reveal-sheet-body{padding:0;overflow:visible}.gift-reveal-actions{border-top:none;background:transparent;padding:0;margin-top:var(--ui-space-md)}}@media(min-width:768px){.game-ui .touch-pad{opacity:.35}.game-ui .touch-pad:hover{opacity:1}}@media(pointer:fine)and (min-width:900px){.game-ui .context-cluster,.game-ui .touch-pad{display:none}}.pin-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:radial-gradient(ellipse 80% 60% at 50% 20%,rgba(212,136,154,.22),transparent 70%),linear-gradient(165deg,#2a1520,#1a1218 45%,#141018);font-family:Courier New,Courier,monospace;color:#f0ebe4}.pin-gate[hidden]{display:none!important}.pin-gate-card{width:min(100%,360px);padding:clamp(20px,5vw,28px);border-radius:18px;border:1px solid rgba(212,136,154,.35);background:#1e1c1aeb;box-shadow:0 18px 48px #00000059;text-align:center}.pin-gate-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#d4889a;margin-bottom:8px}.pin-gate-title{font-size:clamp(22px,6vw,28px);line-height:1.15;color:#f8e8ee;margin-bottom:8px}.pin-gate-subtitle{font-size:clamp(13px,3.6vw,15px);line-height:1.45;color:#c8b8b0;margin-bottom:22px}.pin-dots{display:flex;justify-content:center;gap:12px;margin-bottom:10px;min-height:18px}.pin-dot{width:12px;height:12px;border-radius:999px;border:2px solid rgba(212,136,154,.55);background:transparent}.pin-dot--filled{background:#e8b8c4;border-color:#e8b8c4;box-shadow:0 0 10px #e8b8c473}.pin-error{min-height:20px;margin-bottom:12px;font-size:12px;color:#ffb4b4}.pin-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pin-key{min-height:clamp(52px,14vw,60px);border-radius:14px;border:1px solid rgba(212,136,154,.28);background:#3a3830b8;color:#f8f4f0;font-size:clamp(18px,5vw,22px);font-weight:700;transition:transform .08s ease,background .08s ease}.pin-key:active:not(:disabled){transform:scale(.97);background:#5a5048e6}.pin-key:disabled{opacity:.55}.pin-key--wide{grid-column:span 3;font-size:14px;letter-spacing:.04em}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:radial-gradient(ellipse 80% 60% at 50% 20%,rgba(212,136,154,.22),transparent 70%),linear-gradient(165deg,#2a1520,#1a1218 45%,#141018);font-family:Courier New,Courier,monospace;color:#f0ebe4}.onboarding-overlay[hidden]{display:none!important}.onboarding-card{width:min(100%,400px);max-height:min(92vh,640px);display:flex;flex-direction:column;padding:clamp(20px,5vw,28px);border-radius:18px;border:1px solid rgba(212,136,154,.35);background:#1e1c1aeb;box-shadow:0 18px 48px #00000059}.onboarding-icon{font-size:clamp(32px,10vw,42px);line-height:1;margin-bottom:10px;text-align:center}.onboarding-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#d4889a;margin-bottom:6px;text-align:center}.onboarding-title{font-size:clamp(20px,5.5vw,26px);line-height:1.2;color:#f8e8ee;margin-bottom:12px;text-align:center}.onboarding-body{flex:1;overflow-y:auto;font-size:clamp(13px,3.6vw,15px);line-height:1.55;color:#c8b8b0;margin-bottom:18px;text-align:center;-webkit-overflow-scrolling:touch}.onboarding-steps{display:flex;justify-content:center;gap:8px;margin-bottom:18px;min-height:8px}.onboarding-step-dot{width:8px;height:8px;border-radius:999px;border:2px solid rgba(212,136,154,.45);background:transparent;transition:background .15s ease,border-color .15s ease,transform .15s ease}.onboarding-step-dot--active{background:#e8b8c4;border-color:#e8b8c4;transform:scale(1.15);box-shadow:0 0 8px #e8b8c466}.onboarding-step-dot--done{background:#d4889a8c;border-color:#d4889a8c}.onboarding-actions{display:flex;flex-direction:column;gap:10px}.onboarding-actions-row{display:flex;gap:10px}.onboarding-btn{flex:1;min-height:clamp(48px,13vw,54px);border-radius:14px;border:1px solid rgba(212,136,154,.28);background:#3a3830b8;color:#f8f4f0;font-family:inherit;font-size:clamp(14px,3.8vw,16px);font-weight:700;letter-spacing:.02em;cursor:pointer;transition:transform .08s ease,background .08s ease;-webkit-tap-highlight-color:transparent}.onboarding-btn:active:not(:disabled){transform:scale(.98);background:#5a5048e6}.onboarding-btn:disabled{opacity:.55}.onboarding-btn--primary{background:linear-gradient(180deg,#d4889a8c,#8b5a68bf);border-color:#e8b8c473;color:#fff8fa}.onboarding-btn--primary:active:not(:disabled){background:linear-gradient(180deg,#e8b8c4a6,#8b5a68d9)}.onboarding-btn--ghost{background:transparent;border-color:#d4889a33;color:#c8b8b0;font-size:13px;min-height:40px}.game-ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;font-family:Courier New,Courier,monospace;color:#f0ebe4;-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;text-rendering:geometricPrecision;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.game-ui [hidden]{display:none!important;pointer-events:none!important}.game-ui button{pointer-events:auto;font-family:inherit;cursor:pointer;border:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.top-bar{pointer-events:none;position:relative;display:flex;justify-content:space-between;align-items:flex-start;padding:12px 14px;gap:10px}.region{font-size:12px;font-weight:700;color:#e8b8c4;background:#1e1c1ae0;padding:8px 12px;border-radius:10px;border:1px solid rgba(212,136,154,.35);line-height:1.3}.region-block{display:flex;flex-direction:column;gap:5px;max-width:58%;margin-left:52px}.scene-badge{font-size:10px;color:#d4889a;background:#5a504873;padding:4px 8px;border-radius:6px;border:1px solid rgba(212,136,154,.3);width:fit-content}.progress-track{height:4px;background:#3a3830cc;border-radius:4px;overflow:hidden;border:1px solid rgba(90,88,72,.5)}.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#6a8a6a,#d4889a);transition:width .35s ease-out}.progress-label{font-size:10px;color:#a89890}.build-version{font-size:9px;color:#706860;letter-spacing:.04em}.top-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;min-width:136px}.ui-btn{font-size:13px;font-weight:700;padding:12px 16px;min-height:48px;border-radius:10px;background:#2d2a28f0;color:#f0ebe4;border:1px solid #5a5848;touch-action:manipulation}.ui-btn *{pointer-events:none;-webkit-user-select:none;user-select:none}.ui-btn-primary{box-shadow:0 2px 8px #00000040}.ui-btn-menu{position:absolute;top:12px;left:14px;width:40px;min-width:40px;min-height:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#1c1c1eeb;border-color:#d4889a38;color:#f2d5de;font-size:18px;line-height:1;box-shadow:0 2px 10px #00000047}.ui-btn:active{background:#6a5848}.gift-btn.locked [data-gift-status]{color:#a89890}.gift-btn.unlocked{border-color:#d4889a;box-shadow:0 0 12px #d4889a59}.zone-toast{position:absolute;top:72px;left:0;right:0;margin-inline:auto;width:fit-content;transform:translateY(-8px);opacity:0;transition:opacity .25s,transform .25s;background:#1e1c1af0;border:1px solid #d4889a;padding:10px 16px;border-radius:10px;font-size:12px;text-align:center;max-width:min(92%,360px);pointer-events:none}.context-cluster{pointer-events:auto;position:absolute;left:50%;transform:translate(-50%);bottom:calc(12px + env(safe-area-inset-bottom,0px));width:min(88%,360px);min-height:48px;padding:10px 16px;border-radius:12px;background:#1e1c1af2;border:2px solid #d4889a;color:#f0ebe4;font-size:13px;font-weight:700;text-align:center;box-shadow:0 4px 18px #0006;touch-action:manipulation;z-index:30;display:none}.context-cluster.is-active{display:block}.context-cluster-label{display:block;line-height:1.35;color:#e8b8c4;pointer-events:none;-webkit-user-select:none;user-select:none}.context-cluster:active{transform:translate(-50%) scale(.98);background:#5a4844fa}.zone-toast.visible{opacity:1;transform:translateY(0)}.zone-toast .zone-name{display:block;font-weight:700;color:#e8b8c4}.zone-toast .zone-hint{display:block;margin-top:3px;font-size:10px;color:#a89890;line-height:1.35}.minimap-panel{pointer-events:auto;position:absolute;right:14px;top:118px;z-index:14;display:flex;flex-direction:column;gap:4px;width:132px}.minimap-header{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 2px}.minimap-title{font-size:10px;font-weight:700;color:#e8b8c4;letter-spacing:.04em;text-transform:uppercase}.minimap-expand-btn{pointer-events:auto;font-size:12px;line-height:1;padding:4px 6px;border-radius:6px;background:#2d2a28e6;color:#e8b8c4;border:1px solid rgba(212,136,154,.35);touch-action:manipulation}.minimap-expand-btn:active{background:#6a5848}.minimap-frame{position:relative;display:block;width:100%;padding:0;border:2px solid #5a5848;border-radius:8px;background:#1a2228;box-shadow:0 4px 14px #00000059,inset 0 0 0 1px #d4889a26;overflow:hidden;cursor:pointer;touch-action:manipulation}.minimap-frame:active{border-color:#d4889a}.minimap-canvas,.map-overlay-canvas{display:block;width:100%;height:auto;image-rendering:pixelated;image-rendering:crisp-edges}.minimap-markers,.map-overlay-markers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.minimap-marker,.map-overlay-marker{position:absolute;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:1px;border:1px solid rgba(255,255,255,.75);box-shadow:0 0 0 1px #00000073}.minimap-marker.visited,.map-overlay-marker.visited{box-shadow:0 0 6px #e8b8c48c,0 0 0 1px #00000073}.map-overlay-marker-label{position:absolute;left:50%;top:-14px;transform:translate(-50%);font-size:9px;color:#f0ebe4;background:#1e1c1aeb;border:1px solid rgba(90,88,72,.8);padding:2px 5px;border-radius:4px;white-space:nowrap;pointer-events:none}.map-overlay-marker-label.align-left{left:0;transform:translate(-8px)}.map-overlay-marker-label.align-right{left:auto;right:0;transform:translate(8px)}.minimap-player,.map-overlay-player{position:absolute;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:#f4c2d7;border:2px solid #fff8f0;box-shadow:0 0 8px #f4c2d7bf;pointer-events:none;z-index:2}.map-overlay-viewport{position:absolute;border:1px dashed rgba(244,194,215,.85);background:#f4c2d714;pointer-events:none;z-index:1;box-sizing:border-box}.map-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .22s ease}.map-overlay.open{opacity:1;pointer-events:auto}.map-overlay-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#140a10b8}.map-overlay-sheet{position:relative;width:min(100%,520px);max-height:min(92vh,640px);background:#1e1c1a;border:1px solid #5a5848;border-radius:14px;box-shadow:0 16px 40px #00000073;display:flex;flex-direction:column;overflow:hidden}.map-overlay-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px 10px;border-bottom:1px solid #3a3830}.map-overlay-header h2{font-size:14px;font-weight:400;color:#e8b8c4;margin-bottom:4px}.map-overlay-route{font-size:10px;color:#a89890;line-height:1.35}.map-overlay-close{background:transparent;color:#a89890;font-size:18px;padding:4px 8px;pointer-events:auto}.map-overlay-body{padding:12px 16px 16px;overflow-y:auto}.map-overlay-frame{position:relative;border:2px solid #5a5848;border-radius:10px;background:#1a2228;overflow:hidden;margin-bottom:12px}.map-legend{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:10px;color:#a89890}.map-legend li{display:flex;align-items:center;gap:8px}.map-legend-swatch{width:12px;height:12px;border-radius:2px;border:1px solid rgba(255,255,255,.2);flex-shrink:0}.map-legend-swatch.player{border-radius:50%;background:#f4c2d7;border-color:#fff8f0}.touch-pad{pointer-events:none;position:absolute;left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:128px;height:128px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:5px;z-index:22}.pad-btn{pointer-events:auto;position:relative;width:100%;height:100%;min-width:40px;min-height:40px;background:#2d2a28d1;color:transparent;border:1px solid rgba(212,136,154,.4);border-radius:12px;font-size:0;line-height:0;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.pad-btn:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:0;height:0;pointer-events:none}.pad-btn.up:before{transform:translate(-50%,-35%);border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:9px solid #e8b8c4}.pad-btn.down:before{transform:translate(-50%,-65%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid #e8b8c4}.pad-btn.left:before{transform:translate(-60%,-50%);border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:9px solid #e8b8c4}.pad-btn.right:before{transform:translate(-40%,-50%);border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:9px solid #e8b8c4}.pad-btn.action:before{width:11px;height:11px;background:#f8e8ee;border-radius:1px;transform:translate(-50%,-50%) rotate(45deg)}.pad-btn:active{background:#6a5848}.pad-btn.up{grid-column:2;grid-row:1}.pad-btn.left{grid-column:1;grid-row:2}.pad-btn.right{grid-column:3;grid-row:2}.pad-btn.down{grid-column:2;grid-row:3}.pad-btn.action{grid-column:2;grid-row:2;background:#5a4844f2;border-color:#d4889a}.portrait-bar{display:none!important}.panel-backdrop{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#140a1000;display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .2s,background .2s;z-index:20}.panel-backdrop.open{pointer-events:auto;opacity:1;background:#140a10a6}.panel.sheet{width:100%;max-width:480px;max-height:70vh;background:#1e1c1a;border:1px solid #5a5848;border-radius:16px 16px 0 0;transform:translateY(100%);transition:transform .25s ease-out;display:flex;flex-direction:column}.panel-backdrop.open .panel.sheet{transform:translateY(0)}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #3a3830}.panel-header h2{font-size:14px;font-weight:400;color:#e8b8c4}.panel-close{background:transparent;color:#a89890;font-size:18px;padding:4px 8px}.panel-body{padding:12px 16px 24px;overflow-y:auto;-webkit-user-select:text;user-select:text}.panel-body button{-webkit-user-select:none;user-select:none}.memory-list{display:flex;flex-direction:column;gap:10px}.memory-card{padding:12px;border-radius:10px;border:1px solid #3a3830;background:#2d2a2880}.memory-card.unlocked{border-color:#6a5848}.memory-card.locked{opacity:.7}.memory-card h3{font-size:12px;color:#e8b8c4;margin-bottom:6px;font-weight:400}.memory-card p{font-size:12px;color:#a89890;line-height:1.4}.memory-meta{font-size:10px;color:#8b6a7a;margin-bottom:4px}.memory-locked-msg,.memory-hint{font-size:10px;line-height:1.4}.memory-hint{color:#d4889a;font-style:italic;margin-top:4px}.gift-list{display:none;flex-direction:column;gap:10px}.gift-card{padding:12px;border-radius:10px;border:1px solid #3a3830;background:#2d2a2880;position:relative}.gift-card.unlocked{border-color:#d4889a;background:#8b3a6240}.gift-card.locked{opacity:.85}.gift-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.gift-icon{font-size:18px}.gift-card h3{font-size:12px;color:#e8b8c4;font-weight:400}.gift-card p{font-size:12px;color:#a89890;line-height:1.4;margin-bottom:4px}.gift-preview{color:#d4889a}.gift-locked-msg,.gift-hint{font-size:10px}.gift-hint{color:#d4889a;font-style:italic}.gift-badge{display:inline-block;margin-top:8px;font-size:10px;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.04em}.gift-badge.locked{background:#2a1520cc;color:#8b6a7a;border:1px solid #4a2035}.gift-badge.unlocked{background:#e8a0b833;color:#e8b8c4;border:1px solid #e8a0b8}.gift-badge.unlocked.new{background:#fbbf242e;color:#fde68a;border-color:#fbbf2473;animation:gift-badge-pulse 1.6s ease-in-out infinite}.gift-card-final.unlocked{border-color:#f4c2d7;box-shadow:0 0 0 1px #f4c2d759,0 8px 24px #2a152073}.gift-open-reveal{width:100%;margin-top:4px}.menu-panel{display:flex;flex-direction:column;gap:12px}.menu-panel-copy{font-size:12px;line-height:1.45;color:#bdaab1}.menu-panel-btn{width:100%;font-size:12px;background:#3e1c28eb;border-color:#e8a0b842;color:#f4d3de}.gift-btn.pulse{animation:gift-btn-pulse .8s ease-in-out 3}.gift-status.pending-reveal{color:#fde68a}.gift-reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .28s ease}.gift-reveal-overlay.visible{opacity:1;pointer-events:auto}.gift-reveal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#12080ed1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.gift-reveal-modal{position:relative;width:min(100%,380px);padding:24px 20px 20px;border-radius:18px;border:1px solid rgba(244,194,215,.35);background:linear-gradient(165deg,#3d1f2e,#2a1520 55%,#1f1018);box-shadow:0 20px 50px #00000073;text-align:center;transform:translateY(12px) scale(.96);transition:transform .32s ease}.gift-reveal-overlay.visible .gift-reveal-modal{transform:translateY(0) scale(1)}.gift-reveal-sparkles{font-size:14px;letter-spacing:.35em;color:#e8b8c4;margin-bottom:10px;animation:gift-sparkle 2.4s ease-in-out infinite}.gift-reveal-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#d4889a;margin-bottom:8px}.gift-reveal-modal h2{font-size:22px;color:#fce7f3;margin-bottom:10px}.gift-reveal-intro{font-size:13px;line-height:1.55;color:#e8b8c4;margin-bottom:14px}.gift-reveal-content{text-align:left;margin-bottom:16px}.gift-reveal-message{font-size:14px;line-height:1.55;color:#fce7f3;margin-bottom:10px}.gift-reveal-placeholder{font-size:12px;line-height:1.5;color:#c9a0b0;padding:10px 12px;border-radius:10px;background:#0003;border:1px dashed rgba(244,194,215,.25)}.gift-reveal-placeholder code{font-size:11px;color:#e8b8c4}.gift-reveal-link{color:#86efac;word-break:break-all}.gift-reveal-actions{display:flex;flex-direction:column;gap:8px}.gift-reveal-cta{width:100%}.gift-reveal-dismiss{width:100%;opacity:.85}.gift-reveal-overlay--final:before{content:"✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦";position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:clamp(18px,4vw,28px);letter-spacing:.45em;color:#e8b8c459;pointer-events:none;animation:gift-sparkle 2.4s ease-in-out infinite;z-index:0}.gift-reveal-overlay--final .gift-reveal-modal{z-index:1}.gift-reveal-overlay--chapter .gift-reveal-sparkles,.gift-reveal-modal--compact .gift-reveal-sparkles{display:none}.gift-reveal-modal--compact{width:min(100%,320px)!important;max-width:320px!important}.gift-reveal-product{display:flex;flex-direction:column;align-items:center;gap:12px}.gift-reveal-product-visual{padding:12px;border-radius:14px;background:radial-gradient(circle at 50% 40%,#d4889a2e,#00000040);border:1px solid rgba(244,194,215,.22)}.gift-reveal-product-img{display:block;width:min(52vw,180px);height:auto;image-rendering:pixelated;image-rendering:crisp-edges}.gift-reveal-product--bracelet .gift-reveal-product-img{width:min(58vw,220px)}.gift-reveal-message--lead{font-size:15px;color:#fce7f3;text-align:center}.gift-reveal-product .gift-reveal-message{text-align:center}.gift-reveal-signoff{margin-top:4px;font-size:13px;font-style:italic;color:#d4889a;text-align:center}.travel-slideshow-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:210;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;padding:0;opacity:0;pointer-events:none;transition:opacity .24s ease}.travel-slideshow-overlay.visible{opacity:1;pointer-events:auto}.travel-slideshow-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a121cd6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.travel-slideshow-modal{position:relative;z-index:1;width:100%;max-width:480px;margin:0 auto;max-height:100dvh;display:flex;flex-direction:column;padding:0;border-radius:16px 16px 0 0;border:1px solid rgba(122,201,231,.35);border-bottom:none;background:linear-gradient(180deg,#0f2433,#153246 55%,#1f475d);box-shadow:0 -8px 40px #00000073;transform:translateY(100%);transition:transform .28s ease}.travel-slideshow-overlay.visible .travel-slideshow-modal{transform:translateY(0)}.travel-slideshow-header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px 10px;padding-top:max(12px,env(safe-area-inset-top,0px));border-bottom:1px solid rgba(255,255,255,.1)}.travel-slideshow-header-text{min-width:0;flex:1}.travel-slideshow-close{flex-shrink:0;min-width:44px;min-height:44px;padding:0;border-radius:10px;background:#ffffff14;color:#e8f4fb;font-size:20px;line-height:1}.travel-slideshow-close:active{background:#ffffff29}.travel-slideshow-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#86d5f7;margin-bottom:4px}.travel-slideshow-modal h2{font-size:17px;line-height:1.25;color:#f7fbff;margin:0}.travel-slideshow-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 14px}.travel-slideshow-intro{font-size:12px;line-height:1.45;color:#d5effa;margin-bottom:10px}.travel-slideshow-frame{border-radius:12px;overflow:hidden;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);margin-bottom:8px;display:flex;align-items:center;justify-content:center;min-height:120px}.travel-slideshow-frame img{display:block;width:100%;max-height:var(--ui-media-max-h);height:auto;object-fit:contain}.travel-slideshow-caption{font-size:13px;line-height:1.45;color:#f0f7fb;margin:0}.travel-slideshow-outro{font-size:12px;line-height:1.45;color:#b8dce8;margin-top:8px}.travel-slideshow-footer{flex-shrink:0;padding:10px 14px max(12px,env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,255,.12);background:#0000002e}.travel-slideshow-counter{display:block;font-size:11px;color:#9fd9ef;text-align:center;margin-bottom:8px}.travel-slideshow-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}.travel-slideshow-nav .ui-btn{width:100%;min-height:var(--ui-btn-h);font-size:var(--ui-font-md)}.travel-slideshow-prev:disabled{opacity:.45;pointer-events:none}@media(min-width:520px){.travel-slideshow-overlay{align-items:center;justify-content:center;padding:18px}.travel-slideshow-modal{border-radius:18px;border-bottom:1px solid rgba(122,201,231,.35);max-height:min(92dvh,720px);box-shadow:0 20px 50px #00000073;transform:translateY(12px) scale(.97)}.travel-slideshow-overlay.visible .travel-slideshow-modal{transform:translateY(0) scale(1)}.travel-slideshow-modal h2{font-size:22px}.travel-slideshow-frame img{max-height:min(48dvh,calc(var(--ui-media-max-h) * 1.12))}}@media(max-width:519px){.travel-slideshow-intro,.travel-slideshow-kicker{display:none}}@keyframes gift-badge-pulse{0%,to{opacity:1}50%{opacity:.65}}@keyframes gift-btn-pulse{0%,to{transform:scale(1);box-shadow:none}50%{transform:scale(1.04);box-shadow:0 0 16px #f4c2d773}}@keyframes gift-sparkle{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.minigame-fab{pointer-events:auto;position:absolute;right:12px;bottom:108px;display:none!important;align-items:center;gap:6px;padding:10px 14px;border-radius:12px;background:#5a4844eb;color:#f0ebe4;border:1px solid #d4889a;font-size:12px;box-shadow:0 4px 16px #00000059;max-width:45%;text-align:left}.minigame-fab.completed{opacity:.7;border-color:#6a5848}.minigame-fab:active{transform:scale(.97)}.minigame-panel{display:flex;flex-direction:column;gap:10px}.minigame-desc{font-size:12px;color:#a89890;line-height:1.4}.minigame-progress{font-size:10px;color:#8b6a7a}.minigame-question{font-size:12px;color:#e8b8c4;line-height:1.4}.minigame-answers{display:flex;flex-direction:column;gap:8px}.minigame-answer{text-align:left;width:100%}.minigame-answer.is-correct{border-color:#8bcf95;background:#48724873;color:#eff8ef}.minigame-answer.is-wrong{border-color:#d4889a;background:#7836486b;color:#fff1f4}.minigame-answer-feedback{margin-top:10px;font-size:12px;line-height:1.5;padding:10px 12px;border-radius:10px}.minigame-answer-feedback.is-correct{color:#e7f5e8;background:#48724852;border:1px solid #8bcf95}.minigame-answer-feedback.is-wrong{color:#fff1f4;background:#7836484d;border:1px solid #d4889a}.minigame-result{font-size:12px;line-height:1.5;padding:12px;border-radius:10px}.minigame-result.success{color:#e8b8c4;background:#5a584859;border:1px solid #d4889a}.minigame-result.fail{color:#a89890;background:#1e1c1a99;border:1px solid #3a3830}.minigame-retry{align-self:flex-start;margin-top:8px}.garage-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:220;display:flex;flex-direction:column;touch-action:none;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);background:linear-gradient(180deg,#4a4540,#2e2a26 28%,#1e1c18)}.garage-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.06;pointer-events:none;background:repeating-linear-gradient(-45deg,transparent,transparent 14px,rgba(245,197,24,.9) 14px,rgba(245,197,24,.9) 28px)}.garage-overlay[hidden]{display:none!important}.garage-overlay-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 18px;flex-shrink:0;background:#141210;border-bottom:none}.garage-overlay-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:repeating-linear-gradient(90deg,#f5c518 0,#f5c518 16px,#141210 16px,#141210 32px)}.garage-overlay-brand{display:flex;flex-direction:column;gap:4px;min-width:0}.garage-site-badge{font-size:10px;font-weight:700;letter-spacing:.12em;color:#141210;background:#f5c518;padding:3px 8px;border-radius:4px;width:fit-content}.garage-overlay-title{font-size:16px;font-weight:700;color:#f0ebe4;margin:0;line-height:1.2}.garage-overlay-close{background:#5a504880;color:#e8e0d8;font-size:18px;padding:8px 12px;min-height:44px;min-width:44px;border-radius:8px;border:1px solid #5a5048;touch-action:manipulation}.garage-overlay-close:active{background:#76484099}.garage-overlay-body{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;padding:10px 12px 14px}.garage-overlay-body .minigame-result{font-size:14px;line-height:1.5;padding:14px 16px;border-radius:10px;border:2px solid #5a5048;background:#1e1c18eb}.garage-overlay-body .minigame-result.success{border-color:#6a8a48;color:#c8e0a8}.garage-overlay-body .minigame-result.fail{border-color:#a85848;color:#f0c0b0}.garage-overlay-body .ui-btn{background:linear-gradient(180deg,#e87830,#c85820);border-color:#a84818;color:#fff8f0}.garage-gift-btn{background:linear-gradient(180deg,#f5c518,#d8a800)!important;border-color:#a88000!important;color:#141210!important;font-size:15px}.garage-win-note{font-size:13px;color:#f5c518;text-align:center;margin:0}.garage-minigame-done{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:20px 16px}.garage-minigame{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;overflow:hidden}.garage-minigame-hud{flex-shrink:0;text-align:center;padding:0 4px}.garage-minigame-tagline{font-size:12px;color:#c8c0b0;margin:0 0 8px}.garage-minigame-progress-track{height:10px;background:#2a2824;border:2px solid #5a5048;border-radius:6px;overflow:hidden;margin-bottom:6px}.garage-minigame-progress-fill{height:100%;width:0%;background:repeating-linear-gradient(90deg,#b84a38 0,#b84a38 8px,#9a4030 8px,#9a4030 16px);transition:width .25s ease-out;border-radius:2px}.garage-minigame-progress{font-size:12px;color:#f5c518;font-weight:700;letter-spacing:.04em}.garage-minigame-stage-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:10px;background:linear-gradient(135deg,#5c4838,#4a3828,#3d3024);border:3px solid #3d3024;border-radius:6px;box-shadow:inset 0 0 0 2px #7a6548,0 6px 16px #00000073}.garage-minigame-stage{flex:1;min-height:0;max-height:100%;display:flex;gap:10px;align-items:center;justify-content:center;overflow:hidden}.garage-minigame-board,.garage-minigame-preview{image-rendering:pixelated;image-rendering:crisp-edges;border:none;border-radius:2px;background:#1e1c18;max-height:100%;width:auto;height:auto;box-shadow:0 2px 8px #00000059}.garage-minigame-preview{border:2px solid #5a5048;border-radius:4px}.garage-minigame-controls{flex-shrink:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;max-width:360px;margin:0 auto;padding-top:6px}.garage-minigame-btn{min-height:48px;font-size:18px;font-weight:700;border-radius:10px;border:2px solid #3a3830;background:linear-gradient(180deg,#5a5650,#3a3834);color:#f0ebe4;touch-action:manipulation;user-select:none;-webkit-user-select:none;box-shadow:0 3px #2a2824}.garage-minigame-btn[data-gar-rot]{background:linear-gradient(180deg,#f5c518,#d8a800);border-color:#a88000;color:#141210;box-shadow:0 3px #8a6800}.garage-minigame-btn-soft{background:linear-gradient(180deg,#6a6660,#4a4844);font-size:14px;box-shadow:0 3px #2a2824}.garage-minigame-btn-drop{background:linear-gradient(180deg,#e87830,#c85820);border-color:#a84818;color:#fff8f0;font-size:14px;box-shadow:0 3px #8a3810}.garage-minigame-btn:active{transform:translateY(2px);box-shadow:0 1px #2a2824}.garage-minigame-btn[data-gar-rot]:active{box-shadow:0 1px #8a6800}.garage-minigame-btn-drop:active{box-shadow:0 1px #8a3810}.garage-minigame--mobile .garage-minigame-controls{grid-template-columns:1fr 1fr 1fr;max-width:none;gap:10px}.garage-minigame--mobile .garage-minigame-btn{min-height:58px;font-size:22px}.garage-minigame--mobile .garage-minigame-btn-soft{font-size:15px}.garage-minigame--mobile .garage-minigame-btn-drop{grid-column:2 / 4;font-size:16px;min-height:58px}.game-ui--garage-active .top-bar,.game-ui--garage-active .touch-pad,.game-ui--garage-active .minimap-panel,.game-ui--garage-active .context-cluster,.game-ui--garage-active .minigame-fab,.game-ui--garage-active .zone-toast{visibility:hidden!important;pointer-events:none!important}.hotspot-panel{display:flex;flex-direction:column;gap:10px}.hotspot-action{width:100%;text-align:left}.npc-actions{display:flex;flex-direction:column;gap:8px;margin-top:4px}.gift-locked,.gift-unlocked,.gift-progress{font-size:12px;line-height:1.5;color:#d4889a;margin-bottom:8px}@media(min-width:768px){.panel-backdrop{align-items:center}.panel.sheet{border-radius:16px;max-height:60vh}.panel.sheet.panel-sheet--garage{max-height:min(94dvh,calc(100dvh - 52px));height:min(94dvh,calc(100dvh - 52px));border-radius:14px 14px 0 0}}
