:root{--warm-sunlight:#f5e6c8;--natural-green:#6b9b7d;--natural-green-dark:#4a7a5c;--soft-blue:#8bb8d4;--honey-wood:#c4975a;--warm-stone:#d4c5b2;--white-arch:#f0ede8;--gentle-orange:#e8a964;--fog:#e8e4df;--night-deep:#1a1a2e;--night-mid:#16213e;--night-accent:#0f3460;--glass-bg:#f0ede81f;--glass-border:#f0ede82e;--text-primary:#f0ede8;--text-secondary:#f0ede8b3;--text-dark:#1a1a1a;--text-dark-secondary:#6b6b6b;--text-dark-muted:#9a9a9a;--font-body:"Satoshi", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Clash Display", -apple-system, BlinkMacSystemFont, sans-serif;--font-quote:"Instrument Serif", Georgia, serif;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.32, .72, 0, 1);--ease-in-out:cubic-bezier(.45, 0, .55, 1);--transition-fast:.15s var(--ease-out);--transition-normal:.3s var(--ease-out);--transition-slow:.6s var(--ease-out);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-round:50%}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-body);background:var(--night-deep);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#world-canvas{cursor:grab;touch-action:none;width:100%;height:100%;display:block}#world-canvas:active{cursor:grabbing}.screen-fade-overlay{z-index:2000;opacity:0;pointer-events:none;background:#0d0e15;transition:opacity .3s cubic-bezier(.4,0,.2,1);position:fixed;inset:0}.screen-fade-overlay.active{opacity:1;pointer-events:all}#loading-screen{z-index:1000;transition:opacity .6s var(--ease-out), visibility .6s;background:radial-gradient(circle at 50% 45%,#e8a9641f 0%,#1a1a2ef2 60%,#0d0e15 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}#loading-screen:after{content:"";opacity:.035;pointer-events:none;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");position:absolute;inset:0}#loading-screen:before{content:"";pointer-events:none;z-index:2;background:radial-gradient(circle,#0000 50%,#00000080 100%);position:absolute;inset:0}#loading-screen.fade-out{opacity:0;visibility:hidden;pointer-events:none}.ambient-glow{pointer-events:none;z-index:1;background:radial-gradient(circle,#e8a96426 0%,#c4975a0d 50%,#0000 70%);border-radius:50%;width:600px;height:600px;animation:6s ease-in-out infinite alternate glow-breathe;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes glow-breathe{0%{opacity:.5;transform:translate(-50%,-50%)scale(.85)}to{opacity:.9;transform:translate(-50%,-50%)scale(1.15)}}.dust-particles{pointer-events:none;z-index:2;position:absolute;inset:0}.dust-mote{filter:blur(1px);background:#f5e6c866;border-radius:50%;width:3px;height:3px;animation:12s ease-in-out infinite alternate dust-drift;position:absolute}.mote-1{animation-delay:0s;top:25%;left:20%}.mote-2{animation-delay:-3s;top:65%;left:75%}.mote-3{animation-delay:-6s;top:35%;left:80%}.mote-4{animation-delay:-9s;top:75%;left:15%}@keyframes dust-drift{0%{opacity:.2;transform:translate(0)}50%{opacity:.6}to{opacity:.1;transform:translate(30px,-40px)}}.loading-workspace{pointer-events:none;z-index:1;position:absolute;inset:0}.loading-prop{opacity:0;filter:drop-shadow(0 20px 30px #0000008c);animation:prop-settle 1.4s var(--ease-out) forwards;position:absolute}@keyframes prop-settle{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:.85;transform:translateY(0)scale(1)}}.prop-journal{z-index:3;width:190px;animation-delay:.3s;bottom:8%;left:6%;transform:rotate(-8deg)}.prop-plant{z-index:2;width:140px;animation-delay:.5s;top:8%;left:8%;transform:rotate(5deg)}.prop-books{z-index:2;width:170px;animation-delay:.7s;top:44%;left:4%;transform:rotate(-12deg)}.coffee-wrapper{z-index:3;width:85px;animation-delay:.4s;top:10%;right:9%}.prop-coffee{width:100%;display:block}.prop-laptop{z-index:2;width:260px;animation-delay:.6s;top:38%;right:4%;transform:rotate(8deg)}.prop-blueprint{z-index:2;width:200px;animation-delay:.8s;bottom:8%;right:7%;transform:rotate(-14deg)}.prop-keyboard{z-index:3;width:210px;animation-delay:.9s;bottom:3%;left:50%;transform:translate(-50%)}.steam{filter:blur(6px);opacity:0;background:#ffffff40;border-radius:50%;width:12px;height:35px;position:absolute}.steam-1{animation:3s ease-in 1.2s infinite steam-rise;top:-20px;left:25px}.steam-2{animation:3.5s ease-in 1.8s infinite steam-rise;top:-25px;left:45px}@keyframes steam-rise{0%{opacity:0;transform:translateY(0)scaleX(1)}30%{opacity:.5}to{opacity:0;transform:translateY(-35px)scaleX(2)}}.loading-content{z-index:5;text-align:center;padding:var(--space-xl);flex-direction:column;justify-content:center;align-items:center;max-width:900px;display:flex;position:relative}.loading-header{opacity:0;animation:hero-fade-in 1.4s var(--ease-out) .2s forwards;flex-direction:column;align-items:center;display:flex}@keyframes hero-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.loading-welcome{font-family:var(--font-quote);color:#d4a840;text-shadow:0 4px 20px #d4a84059;margin-bottom:var(--space-xs);letter-spacing:.5px;font-size:clamp(26px,3.5vw,42px);font-style:italic}.loading-author{font-family:var(--font-display);color:#f0ede8;letter-spacing:-2px;text-shadow:0 12px 35px #0009;align-items:center;font-size:clamp(48px,6.5vw,92px);font-weight:700;line-height:1;display:inline-flex}.blinking-cursor{color:#d4a840;text-shadow:0 0 12px #d4a84099;margin-left:6px;font-weight:300;animation:1s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.loading-action-area{margin-top:var(--space-2xl);opacity:0;min-height:56px;animation:hero-fade-in 1s var(--ease-out) .6s forwards;justify-content:center;align-items:center;display:flex}.loading-progress-pill{-webkit-backdrop-filter:blur(20px);background:#0e101880;border:1px solid #ffffff14;border-radius:32px;flex-direction:column;align-items:center;gap:6px;padding:16px 36px;animation:6s ease-in-out infinite alternate pill-breath;display:flex;box-shadow:0 16px 36px #00000040,inset 0 1px #ffffff0d}@keyframes pill-breath{0%{transform:scale(1);box-shadow:0 16px 36px #00000040,inset 0 1px #ffffff0d}to{transform:scale(1.012);box-shadow:0 20px 44px #00000052,inset 0 1px #ffffff14}}.loading-bar-container{background:#ffffff1f;border-radius:3px;width:180px;height:3px;overflow:hidden}.loading-bar{background:linear-gradient(90deg, var(--natural-green), #d4a840);width:0%;height:100%;transition:width .3s var(--ease-out);border-radius:3px}.loading-hint{color:#f0ede8eb;letter-spacing:.2px;transition:opacity .3s var(--ease-out);font-size:14px;font-weight:500}.loading-count{color:#f0ede87a;letter-spacing:.3px;text-transform:none;font-size:12px;font-weight:400}.enter-world-btn{color:#0d0e15;font-family:var(--font-body);letter-spacing:1.5px;cursor:pointer;transition:all .3s var(--ease-out);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#e8a964f2,#c4975ae6);border:1px solid #fff6;border-radius:50px;align-items:center;gap:10px;padding:16px 44px;font-size:15px;font-weight:700;display:inline-flex;box-shadow:0 12px 35px #e8a9644d,inset 0 1px #fff6}.enter-world-btn.hidden{display:none!important}.enter-world-btn:hover{background:linear-gradient(135deg,#f5b973,#d4a840f2);transform:translateY(-2px)scale(1.02);box-shadow:0 18px 45px #e8a96473,inset 0 1px #fff9}.btn-arrow{transition:transform .25s var(--ease-out);display:inline-block}.enter-world-btn:hover .btn-arrow{transform:translate(6px)}.district-panel{z-index:200;-webkit-backdrop-filter:blur(40px)saturate(180%);width:480px;max-width:92vw;height:100%;transition:transform .55s var(--ease-spring);overscroll-behavior:contain;background:#fffffff7;border-left:1px solid #0000000f;position:fixed;top:0;right:0;overflow:hidden auto;transform:translate(100%);box-shadow:-20px 0 60px #00000014}.district-panel.visible{transform:translate(0)}.district-panel.hidden{transform:translate(100%)}.district-panel::-webkit-scrollbar{width:4px}.district-panel::-webkit-scrollbar-track{background:0 0}.district-panel::-webkit-scrollbar-thumb{background:#0000001a;border-radius:4px}.panel-close{top:var(--space-md);float:right;margin-right:var(--space-md);border-radius:var(--radius-round);width:36px;height:36px;color:var(--text-dark-secondary);cursor:pointer;transition:all var(--transition-fast);z-index:10;background:#0000000a;border:none;justify-content:center;align-items:center;display:flex;position:sticky}.panel-close:hover{color:var(--text-dark);background:#00000014;transform:scale(1.05)}.panel-close svg{width:16px;height:16px}.panel-content{padding:0}.panel-hero{padding:var(--space-3xl) var(--space-xl) var(--space-2xl);position:relative}.panel-hero-content{z-index:5;width:60%;position:relative}.hero-composition{z-index:1;width:250px;height:250px;position:absolute;bottom:-10px;right:-30px}.hero-organic-shape{filter:blur(20px);opacity:.7;border-radius:40% 60% 70% 30%/40% 50% 60%;width:80%;height:80%;animation:8s ease-in-out infinite alternate organic-morph;position:absolute;top:10%;left:10%}@keyframes organic-morph{0%{border-radius:40% 60% 70% 30%/40% 50% 60%;transform:rotate(0)scale(.95)}to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;transform:rotate(10deg)scale(1.05)}}.hero-prop{filter:drop-shadow(0 15px 25px #00000026);animation:6s ease-in-out infinite prop-float;position:absolute}.prop-main{z-index:3;width:140px;bottom:20px;left:50px}.prop-background-left{z-index:2;opacity:.9;width:120px;animation-delay:-1s;bottom:70px;left:-10px}.prop-accent-right{z-index:4;width:110px;animation-delay:-2s;bottom:40px;right:10px}.prop-foreground{z-index:5;width:100px;animation-delay:-3s;bottom:-10px;left:110px}@keyframes prop-float{0%,to{transform:translateY(0)rotate(-10deg)}50%{transform:translateY(-10px)rotate(-8deg)}}.panel-title{font-family:var(--font-display);color:var(--text-dark);letter-spacing:-1px;margin-bottom:var(--space-sm);font-size:38px;font-weight:800;line-height:1.05}.panel-tagline{font-family:var(--font-quote);color:var(--text-dark-secondary);margin-bottom:var(--space-lg);font-size:22px;font-style:italic;font-weight:400}.panel-tags{gap:var(--space-xs);flex-wrap:wrap;display:flex}.panel-tag{text-transform:uppercase;letter-spacing:.8px;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-block}.panel-body{padding:var(--space-lg) var(--space-xl) var(--space-3xl)}.panel-about{color:var(--text-dark-secondary);margin-bottom:var(--space-md);font-size:16px;line-height:1.75}.panel-section{margin-bottom:var(--space-2xl);opacity:0;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);transform:translateY(15px)}.panel-section.visible{opacity:1;transform:translateY(0)}.panel-section-heading{font-family:var(--font-display);text-transform:uppercase;letter-spacing:2px;color:var(--text-dark-muted);margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid #0000000d;font-size:13px;font-weight:700}.panel-text-block{color:var(--text-dark-secondary);font-size:16px;line-height:1.8}.panel-text{margin-bottom:var(--space-sm)}.panel-text strong{color:var(--text-dark);font-weight:600}.panel-quote{font-style:italic;font-family:var(--font-quote);color:var(--text-dark);margin:var(--space-md) 0;padding-left:var(--space-md);border-left:3px solid var(--text-dark-muted);font-size:22px;line-height:1.5}.panel-cards-grid{gap:var(--space-md);flex-direction:column;display:flex}.panel-project-card{border-radius:var(--radius-lg);padding:var(--space-lg);transition:all .3s var(--ease-out);background:#fffc;border:1px solid #0000000f;box-shadow:0 4px 12px #00000005}.panel-project-card:hover{border-color:#0000001a;transform:translateY(-3px);box-shadow:0 8px 24px #0000000f}.project-card-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:baseline;gap:var(--space-xs);flex-wrap:wrap;display:flex}.project-title{color:var(--text-dark);font-size:18px;font-weight:700}.project-role{font-size:13px;font-weight:600}.project-desc{color:var(--text-dark-secondary);margin-bottom:var(--space-md);font-size:14px;line-height:1.6}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.project-tag{color:var(--text-dark-secondary);background:#0000000a;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500}.panel-card{border-radius:var(--radius-md);padding:var(--space-lg);transition:all var(--transition-fast);background:#00000005;border:1px dashed #00000014}.placeholder-card{text-align:center}.placeholder-icon{margin-bottom:var(--space-sm);opacity:.5;font-size:24px}.placeholder-text{color:var(--text-dark-muted);font-size:13px;font-style:italic}.panel-links{gap:var(--space-sm);flex-wrap:wrap;display:flex}.panel-link-btn{align-items:center;gap:var(--space-sm);color:var(--text-dark);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:#00000008;border:1px solid #0000000f;padding:10px 18px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.panel-link-btn:hover{background:#0000000f;border-color:#0000001f;transform:translateY(-1px);box-shadow:0 2px 8px #0000000a}.panel-link-icon{justify-content:center;align-items:center;width:16px;height:16px;display:flex}.world-hud{top:var(--space-lg);right:var(--space-lg);z-index:100;gap:var(--space-md);-webkit-backdrop-filter:blur(16px);pointer-events:none;opacity:0;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);background:#1a1a2e66;border:1px solid #ffffff1a;border-radius:40px;padding:10px 16px;display:flex;position:absolute;transform:translateY(-10px);box-shadow:0 10px 30px #0003}.world-hud.visible{opacity:1;transform:translateY(0)}.hud-btn{color:#fff9;cursor:pointer;pointer-events:auto;padding:4px;padding-right:var(--space-sm);background:0 0;border:none;border-right:1px solid #ffffff1a;justify-content:center;align-items:center;margin-right:4px;transition:color .2s,transform .2s;display:flex}.hud-btn:hover{color:#fff;transform:scale(1.1)}.hud-location,.hud-time{align-items:center;gap:6px;display:flex}.hud-time{padding-left:var(--space-sm);border-left:1px solid #ffffff1a}.hud-icon{color:#ffffffb3;justify-content:center;align-items:center;display:flex}.hud-icon svg{width:14px;height:14px}.hud-text{font-family:var(--font-body);color:#ffffffe6;letter-spacing:.5px;font-size:13px;font-weight:500}.panel-link-icon svg{width:16px;height:16px}.artist-signature{z-index:999;-webkit-user-select:none;user-select:none;pointer-events:auto;opacity:.1;flex-direction:column;align-items:flex-end;transition:opacity .35s,filter .35s;display:flex;position:fixed;bottom:18px;right:22px}.artist-signature:hover{opacity:.55;filter:brightness(1.1)}.artist-name{font-style:italic;font-family:var(--font-quote);color:#ffffff8c;text-shadow:0 0 8px #ffffff0a;font-size:22px;line-height:1}.artist-meta{letter-spacing:.18em;text-transform:uppercase;color:#ffffff38;margin-top:2px;font-family:Inter,sans-serif;font-size:8px;font-weight:300}.kiosk-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:auto;background:#1c171340;justify-content:center;align-items:center;transition:opacity .4s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0}.kiosk-overlay.visible{opacity:1}.kiosk-overlay.dismissed{opacity:0;transition:opacity .35s}.kiosk-card{-webkit-backdrop-filter:blur(24px);color:#2d2722;width:min(330px,85vw);font-family:var(--font-body);text-align:center;opacity:0;background:#f9f4ecf0;border:1px solid #e4d6c2bf;border-radius:20px;padding:20px 22px 18px;transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;transform:scale(.94)translateY(12px);box-shadow:0 20px 48px -8px #241e1838,0 4px 14px #241e1814,inset 0 0 0 1px #fff9,inset 0 2px 16px #ffffffd9}.kiosk-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#0000 35%,#beaf9a1a 100%),url("data:image/svg+xml,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");border-radius:24px;position:absolute;inset:0}.kiosk-overlay.visible .kiosk-card{opacity:1;transform:scale(1)translateY(0)}.kiosk-overlay.dismissed .kiosk-card{opacity:0;transition:opacity .3s,transform .3s;transform:scale(.96)translateY(8px)}.kiosk-card .kiosk-header,.kiosk-card #kiosk-beverage-anchor,.kiosk-card .kiosk-confirm-btn{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(14px)}.kiosk-overlay.visible .kiosk-header{opacity:1;transition-delay:50ms;transform:translateY(0)}.kiosk-overlay.visible #kiosk-beverage-anchor{opacity:1;transition-delay:.12s;transform:translateY(0)}.kiosk-overlay.visible .kiosk-confirm-btn{opacity:1;transition-delay:.2s;transform:translateY(0)}.kiosk-header{z-index:2;margin-bottom:2px;position:relative}.kiosk-eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:2px;color:#9a8c7b;margin:0 0 2px;font-size:10.5px;font-weight:500}.kiosk-title{font-family:var(--font-heading);color:#231e19;letter-spacing:-.2px;margin:0 0 2px;font-size:21px;font-weight:500;line-height:1.15}.kiosk-subtitle{font-family:var(--font-body);color:#7e7366;letter-spacing:.15px;margin:0 0 6px;font-size:12px;font-weight:400;line-height:1.4}.beverage-carousel-container{pointer-events:auto;z-index:2;margin:0;position:relative}.beverage-prompt{font-family:var(--font-heading);color:#8a7b6b;letter-spacing:.2px;text-align:center;margin-bottom:2px;font-size:12.5px;font-style:italic;font-weight:400}.carousel-stage-container{z-index:2;justify-content:center;align-items:center;min-height:125px;margin-bottom:4px;display:flex;position:relative;overflow:visible}.carousel-stage-inner{justify-content:center;align-items:center;width:100%;display:flex}.carousel-item{flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;display:flex;position:relative}.slide-enter-right{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards carouselSlideRight}.slide-enter-left{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards carouselSlideLeft}.fade-enter{animation:.3s cubic-bezier(.16,1,.3,1) forwards carouselFadeEnter}@keyframes carouselSlideRight{0%{opacity:0;transform:translate(28px)scale(.94)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes carouselSlideLeft{0%{opacity:0;transform:translate(-28px)scale(.94)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes carouselFadeEnter{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.carousel-object-stage{justify-content:center;align-items:center;width:180px;height:120px;display:flex;position:relative;overflow:visible}.carousel-object-img{object-fit:contain;filter:drop-shadow(0 10px 20px #241e1638);z-index:2;max-width:165px;max-height:120px;position:relative}.carousel-float{animation:4s ease-in-out infinite alternate welcomeCozyFloat}@keyframes welcomeCozyFloat{0%{transform:translateY(2px)}to{transform:translateY(-5px)}}.carousel-ground-shadow{z-index:1;pointer-events:none;background:radial-gradient(#26201a38 0%,#0000 75%);border-radius:50%;width:130px;height:16px;animation:4s ease-in-out infinite alternate welcomeShadowPulse;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}@keyframes welcomeShadowPulse{0%{opacity:.18;transform:translate(-50%)scale(.92)}to{opacity:.25;transform:translate(-50%)scale(1.05)}}.carousel-glow-ring{filter:blur(5px);z-index:1;pointer-events:none;background:radial-gradient(#e4b24c73 0%,#e4b24c26 50%,#0000 75%);border-radius:50%;width:170px;height:34px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.carousel-none-wrap{color:#8e8275;z-index:2;filter:drop-shadow(0 6px 12px #26201a1f);justify-content:center;align-items:center;display:flex;position:relative}.none-shadow{opacity:.5;width:82px}.carousel-item-label{flex-direction:column;justify-content:center;align-items:center;gap:3px;margin-top:-4px;display:flex}.carousel-item-name{font-family:var(--font-body);color:#2d261e;letter-spacing:-.1px;font-size:15px;font-weight:600}.carousel-item-notes{font-family:var(--font-body);color:#8c7f70;letter-spacing:.4px;font-size:11.5px;font-weight:400}.carousel-steam-wrap{pointer-events:none;z-index:3;opacity:.82;width:48px;height:32px;position:absolute;top:-24px;left:50%;transform:translate(-50%)}.carousel-steam-wrap.soft-steam{opacity:.68}.carousel-steam-wrap.tiny-steam{opacity:.58;top:-16px;transform:translate(-50%)scale(.85)}.carousel-steam{background:radial-gradient(#ffffffe6 0%,#0000 80%);border-radius:50%;width:5px;height:18px;animation:2.4s ease-in-out infinite carouselSteamRise;position:absolute;bottom:0}.carousel-steam.steam-p1{animation-delay:0s;left:14px}.carousel-steam.steam-p2{animation-delay:1.1s;right:14px}@keyframes carouselSteamRise{0%{opacity:0;transform:translateY(6px)scaleX(.7)}50%{opacity:.85;transform:translateY(-2px)scaleX(1.2)}to{opacity:0;transform:translateY(-18px)scaleX(1.5)}}.carousel-shimmer-wrap{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;top:4px;left:50%;transform:translate(-50%)}.carousel-shimmer{background:#fff;border-radius:50%;width:7px;height:7px;animation:1.8s ease-in-out infinite alternate welcomeShimmer;position:absolute;top:18%;right:24%;box-shadow:0 0 8px #fff}@keyframes welcomeShimmer{0%{opacity:.4;transform:scale(.6)}to{opacity:.95;transform:scale(1.3)}}.carousel-controls{z-index:2;justify-content:center;align-items:center;gap:12px;margin:4px 0 0;display:flex;position:relative}.carousel-nav-btn{cursor:pointer;color:#6e6357;background:#fffdf8b3;border:1px solid #d6c6b0bf;border-radius:50%;outline:none;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 2px 6px #26201a0a}.carousel-nav-btn:hover{color:#1e1a16;background:#fff;border-color:#c8a462;transform:scale(1.06);box-shadow:0 4px 10px #26201a1a}.carousel-nav-btn:active{transform:scale(.94)}.carousel-dots{justify-content:center;align-items:center;gap:6px;display:flex}.carousel-dot{cursor:pointer;background:#b6a89673;border:none;border-radius:50%;outline:none;width:6px;height:6px;margin:0;padding:0;transition:all .35s cubic-bezier(.16,1,.3,1)}.carousel-dot:hover{background:#b6a896cc;transform:scale(1.2)}.carousel-dot.active{background:#c29a4d;border-radius:9999px;width:20px;box-shadow:0 0 8px #c29a4d66}.kiosk-confirm-btn{pointer-events:auto;-webkit-backdrop-filter:blur(16px);width:100%;font-family:var(--font-body);color:#342b21;cursor:pointer;z-index:2;letter-spacing:.2px;background:linear-gradient(135deg,#fffcf6f0 0%,#f5eddef5 100%);border:1px solid #d8c6acd9;border-radius:14px;outline:none;justify-content:center;align-items:center;gap:6px;margin:12px 0 0;padding:10px 20px;font-size:13.5px;font-weight:600;transition:all .35s cubic-bezier(.16,1,.3,1);display:flex;position:relative;box-shadow:0 10px 24px -4px #c29a4d38,0 3px 8px #26201a0f,inset 0 1px 1px #ffffffe6}.kiosk-confirm-btn:hover{color:#181410;background:linear-gradient(135deg,#fff 0%,#fdf7ec 100%);border-color:#c8a462;transform:translateY(-2px);box-shadow:0 14px 32px -4px #c29a4d52,0 6px 14px #26201a14,inset 0 1px 2px #fff}.kiosk-confirm-btn:active{transform:translateY(0);box-shadow:0 5px 14px #c29a4d2e,0 2px 6px #26201a0a}.btn-arrow{font-size:15px;line-height:1;transition:transform .35s cubic-bezier(.34,1.56,.64,1);display:inline-block}.kiosk-confirm-btn:hover .btn-arrow{transform:translate(4px)}@media (width<=820px) and (width>=541px){.kiosk-card{width:min(340px,85vw);padding:20px 22px 18px}}@media (width<=540px){.kiosk-card{border-radius:18px;width:calc(100vw - 36px);max-width:320px;padding:18px 18px 16px}.kiosk-title{font-size:19px}.kiosk-subtitle{margin-bottom:4px;font-size:11.5px}.carousel-object-stage{width:170px;height:110px}.carousel-object-img{max-width:155px;max-height:110px}.kiosk-confirm-btn{padding:10px 18px;font-size:13px}}.tooltip{z-index:300;color:var(--text-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-sm);pointer-events:none;white-space:nowrap;transition:opacity var(--transition-fast);letter-spacing:.3px;background:#1a1a2ee0;padding:6px 12px;font-size:12px;font-weight:500;position:fixed}.tooltip.hidden{opacity:0}@media (width<=640px){.district-panel{border-left:none;width:100vw;max-width:100vw}.panel-hero{padding:var(--space-2xl) var(--space-lg) var(--space-lg)}.panel-title{font-size:26px}.panel-body{padding:var(--space-md) var(--space-lg) var(--space-2xl)}}.custom-cursor-active,.custom-cursor-active *{cursor:none!important}.cursor-companion{z-index:10000;-webkit-user-select:none;user-select:none;opacity:0;width:72px;height:72px;transition:opacity .3s var(--ease-out);will-change:transform;transform-origin:50%;position:fixed;top:0;left:0;pointer-events:none!important}.cursor-companion.visible{opacity:.98}.companion-inner{width:64px;height:64px;transition:filter .25s;position:absolute;top:-32px;left:-32px}.cursor-companion.is-hovering .companion-inner{filter:drop-shadow(0 0 16px #ffd1668c)brightness(1.15)}.companion-float-wrap{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.companion-img{object-fit:contain;filter:drop-shadow(0 6px 10px #00000059)drop-shadow(0 2px 4px #00000038);pointer-events:none;width:100%;height:100%}.companion-idle-float{animation:3.5s ease-in-out infinite alternate companion-float}@keyframes companion-float{0%{transform:translateY(0)}to{transform:translateY(-3px)}}.companion-steam-wrap{pointer-events:none;z-index:2;width:30px;height:24px;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.companion-steam-particle{filter:blur(1px);opacity:0;background:radial-gradient(circle,#ffffffa6 0%,#0000 80%);border-radius:50%;width:9px;height:15px;position:absolute;bottom:0}.companion-matcha .companion-steam-particle{background:radial-gradient(circle,#ebffebb3 0%,#0000 80%)}.steam-p1{animation:3.2s cubic-bezier(.4,0,.2,1) .5s infinite companion-steam;left:4px}.steam-p2{width:11px;height:17px;animation:3.8s cubic-bezier(.4,0,.2,1) 2.1s infinite companion-steam;right:4px}@keyframes companion-steam{0%{opacity:0;transform:translateY(6px)scale(.6)scaleX(.8)}30%{opacity:.6}to{opacity:0;transform:translateY(-12px)scale(1.35)scaleX(1.45)}}.companion-shimmer-wrap{z-index:2;pointer-events:none;border-radius:6px;position:absolute;inset:2px;overflow:hidden}.companion-shimmer{width:50%;height:200%;animation:companion-shimmer-sweep 5s var(--ease-out) infinite;background:linear-gradient(90deg,#0000 0%,#ffffff0d 40%,#ffffff59 50%,#ffffff0d 60%,#0000 100%);position:absolute;top:-50%;left:-100%;transform:rotate(25deg)}@keyframes companion-shimmer-sweep{0%,70%{opacity:0;left:-100%}75%{opacity:1}90%,to{opacity:0;left:200%}}.now-playing{z-index:100;pointer-events:auto;align-items:center;gap:16px;transition:opacity .5s;display:flex;position:absolute;bottom:20px;left:20px}.now-playing.hidden{opacity:0;pointer-events:none}.cd-container{width:50px;height:50px;position:relative}.cd{background:radial-gradient(circle,#0000 15%,#111 16% 20%,#333 21%,#000 45%),#222 linear-gradient(45deg,#ffffff1a 25%,#0000 25% 50%,#ffffff1a 50% 75%,#0000 75%,#0000);border-radius:50%;width:46px;height:46px;animation:4s linear infinite paused spin;position:absolute;top:2px;left:15px;box-shadow:0 2px 4px #00000080}.now-playing.playing .cd{animation-play-state:running}.cd:after{content:"";background:#080b12;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#album-cover{object-fit:cover;z-index:2;border-radius:4px;width:50px;height:50px;position:absolute;top:0;left:0;box-shadow:2px 2px 8px #0006}.track-info{color:#fff;text-shadow:0 2px 4px #00000080;flex-direction:column;justify-content:center;font-family:Satoshi,sans-serif;display:flex}.now-playing-text{opacity:.9;letter-spacing:.5px;font-size:.85rem}.track-name{font-size:1.1rem;font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
