@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Noto+Serif+KR:wght@500;600&display=swap";:root{color:#f4eee5;font-synthesis:none;text-rendering:optimizelegibility;--glass:#181411bd;--glass-strong:#15120ff0;--line:#eddcc32e;--muted:#b6aa9b;--gold:#c8a873;--cream:#f4eee5;background:#15120f;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{background:#15120f;width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,a{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}.gallery-stage,.gallery-canvas{width:100%;height:100%;position:fixed;inset:0}.gallery-canvas{touch-action:none;outline:none;display:block}.gallery-header{z-index:20;padding:max(18px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) 18px max(22px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:center;gap:20px;display:flex;position:fixed;top:0;left:0;right:0}.gallery-brand,.header-actions{pointer-events:auto}.gallery-brand{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;align-items:center;gap:12px;min-width:0;padding:8px 12px 8px 8px;display:flex;box-shadow:0 12px 36px #0003}.brand-index{color:#241d16;background:var(--gold);border-radius:50%;place-items:center;width:34px;height:34px;font-family:Fraunces,serif;font-size:.78rem;font-weight:600;display:grid}.gallery-brand strong,.gallery-brand small{white-space:nowrap;display:block}.gallery-brand strong{letter-spacing:.01em;font-family:Fraunces,Noto Serif KR,serif;font-size:.98rem}.gallery-brand small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:1px;font-size:.65rem}.header-actions{align-items:center;gap:8px;display:flex}.interior-picker{border:1px solid var(--line);min-height:42px;color:var(--cream);background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;align-items:center;gap:8px;padding:0 12px;transition:border-color .18s,background .18s,transform .18s;display:inline-flex;box-shadow:0 12px 36px #00000029}.interior-picker:hover,.interior-picker:focus-within{background:#2f2720e6;border-color:#eddcc366}.interior-swatch{background:var(--interior-swatch);border:1px solid #ffffff6b;border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 0 3px #ffffff0e}.interior-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.interior-picker select{max-width:128px;color:var(--cream);cursor:pointer;background:0 0;border:0;outline:0;font-size:.73rem;font-weight:600}.interior-picker option{color:#221b16;background:#f1e9de}.header-button,.icon-button{border:1px solid var(--line);min-height:42px;color:var(--cream);background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 15px;transition:border-color .18s,background .18s,transform .18s;display:inline-flex;box-shadow:0 12px 36px #00000029}.header-button:hover,.icon-button:hover{background:#2f2720e6;border-color:#eddcc366;transform:translateY(-1px)}.header-button.icon-only,.icon-button{width:42px;padding:0}.room-status{z-index:15;left:max(24px, env(safe-area-inset-left));bottom:max(24px, env(safe-area-inset-bottom));border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:12px;align-items:center;gap:11px;padding:10px 14px 10px 10px;display:flex;position:fixed}.room-status>span{width:38px;height:38px;color:var(--gold);border:1px solid #c8a87366;border-radius:8px;place-items:center;font-family:Fraunces,serif;display:grid}.room-status strong,.room-status small{display:block}.room-status strong{letter-spacing:.06em;text-transform:uppercase;font-size:.82rem}.room-status small{color:var(--muted);margin-top:2px;font-size:.68rem}.crosshair{z-index:12;pointer-events:none;border:1px solid #ffffffb8;border-radius:50%;width:7px;height:7px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #0000001f}.hover-label{z-index:16;border:1px solid var(--line);text-align:center;background:var(--glass-strong);pointer-events:none;border-radius:10px;min-width:180px;max-width:min(420px,100vw - 40px);padding:10px 14px;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.hover-label small,.hover-label strong{display:block}.hover-label small{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:.64rem}.hover-label strong{margin-top:3px;font-family:Noto Serif KR,serif;font-size:.86rem;font-weight:500}.pointer-prompt{z-index:16;border:1px solid var(--line);min-height:38px;color:var(--muted);background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:.74rem;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.entry-overlay{z-index:50;background:linear-gradient(90deg,#0d0b09fa 0%,#0d0b09e0 36%,#0d0b093d 72%),linear-gradient(#0000 60%,#0d0b09b8);align-items:center;padding:clamp(28px,7vw,112px);display:flex;position:fixed;inset:0}.entry-vignette{pointer-events:none;background:radial-gradient(circle at 76% 44%,#c8a87314,#0000 32%);position:absolute;inset:0}.entry-copy{width:min(640px,100%);position:relative}.eyebrow{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:600}.entry-copy h1{letter-spacing:.325em;margin:18px 0 26px;font-family:Fraunces,Noto Serif KR,serif;font-size:clamp(4.4rem,10vw,9.6rem);font-weight:500;line-height:.78}.entry-copy>p:not(.eyebrow){color:#c7bcae;max-width:480px;margin:0;font-family:Noto Serif KR,serif;font-size:clamp(.94rem,1.5vw,1.1rem);line-height:1.85}.enter-button,.primary-button{border:1px solid var(--gold);color:#1d1712;background:var(--gold);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;gap:12px;min-height:52px;margin-top:34px;padding:0 22px;font-size:.78rem;font-weight:600;transition:gap .18s,background .18s,transform .18s;display:inline-flex}.enter-button:hover,.primary-button:hover{background:#dec08d;gap:17px;transform:translateY(-2px)}.loading-block{width:min(360px,100%);margin-top:36px}.loading-track{background:#ffffff1f;height:2px;overflow:hidden}.loading-track span{background:var(--gold);height:100%;transition:width .24s;display:block}.loading-block small{color:var(--muted);margin-top:10px;font-size:.72rem;display:block}.error-message{color:#efb6a5;background:#601f1240;border:1px solid #d6775c66;border-radius:10px;max-width:440px;margin-top:30px;padding:14px 16px}.entry-footer{left:clamp(28px,7vw,112px);right:clamp(28px,7vw,112px);bottom:max(24px, env(safe-area-inset-bottom));color:#81776c;letter-spacing:.11em;text-transform:uppercase;justify-content:space-between;font-size:.64rem;display:flex;position:absolute}.panel{z-index:60;border:1px solid var(--line);background:var(--glass-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);animation:.26s both panel-in;position:fixed;box-shadow:0 30px 90px #0000007a}.panel-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.panel h2{margin:7px 0 0;font-family:Noto Serif KR,Fraunces,serif;font-size:1.45rem;font-weight:500}.panel-description,.help-note{color:var(--muted);font-size:.8rem;line-height:1.65}.room-map{border-radius:18px;width:min(420px,100vw - 44px);padding:24px;top:86px;bottom:22px;right:22px;overflow:auto}.room-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:22px;display:grid}.room-button{border:1px solid var(--line);min-height:74px;color:var(--cream);text-align:left;background:#ffffff09;border-radius:10px;padding:11px;transition:background .16s,border-color .16s}.room-button:hover,.room-button.active{background:#c8a87321;border-color:#c8a8739e}.room-button strong,.room-button span{display:block}.room-button strong{color:var(--gold);font-family:Fraunces,serif;font-size:1.04rem}.room-button span{color:var(--muted);text-transform:uppercase;margin-top:9px;font-size:.65rem;line-height:1.45}.help-panel{border-radius:18px;width:min(440px,100vw - 32px);padding:25px;animation-name:help-in;top:50%;left:50%;transform:translate(-50%,-50%)}.help-list{gap:10px;margin-top:24px;display:grid}.help-list>div{border:1px solid #eddcc31a;border-radius:10px;grid-template-columns:32px 1fr;gap:10px;padding:14px;display:grid}.help-list svg{color:var(--gold)}.help-list p{margin:0}.help-list strong,.help-list span{display:block}.help-list strong{font-size:.8rem}.help-list span{color:var(--muted);margin-top:4px;font-size:.72rem}.move-pad{z-index:18;right:max(22px, env(safe-area-inset-right));bottom:max(22px, env(safe-area-inset-bottom));border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#181410b8;border-radius:15px;gap:8px;width:150px;padding:10px;display:grid;position:fixed;box-shadow:0 14px 42px #0003}.move-pad-heading{text-transform:uppercase;justify-content:space-between;align-items:center;padding:0 2px;display:flex}.move-pad-heading span{color:var(--cream);letter-spacing:.12em;font-size:.58rem;font-weight:700}.move-pad-heading small{color:var(--muted);letter-spacing:.06em;font-size:.48rem}.move-pad-keys{grid-template-rows:repeat(3,32px);grid-template-columns:repeat(3,38px);justify-content:center;gap:5px;display:grid}.move-pad-height{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.move-pad button{border:1px solid var(--line);color:#fff8edd1;letter-spacing:.04em;touch-action:none;background:#ffffff0e;border-radius:7px;place-items:center;min-width:0;min-height:32px;padding:0 7px;font:700 .68rem/1 Inter,sans-serif;transition:color .12s,background .12s,border-color .12s,transform .12s;display:grid;box-shadow:inset 0 -2px #00000047}.move-pad button:hover{border-color:#dbbb7c85}.move-pad button:active,.move-pad button.is-active{color:#211a14;background:var(--gold);border-color:#f0d49b;transform:translateY(1px)scale(.96);box-shadow:0 0 18px #dbbb7c57,inset 0 -1px #0000002e}.key-w{grid-area:1/2}.key-a{grid-area:2/1}.key-s{grid-area:2/2}.key-d{grid-area:2/3}.key-q{grid-area:3/1}.key-e{grid-area:3/3}.move-pad-height button{min-height:27px;color:var(--muted);padding:0 5px;font-size:.52rem}@keyframes panel-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes help-in{0%{opacity:0;transform:translate(-50%,calc(16px - 50%))}to{opacity:1;transform:translate(-50%,-50%)}}@media (width<=760px),(pointer:coarse){.gallery-header{padding:max(12px, env(safe-area-inset-top)) 12px 12px;align-items:flex-start}.gallery-brand{padding:6px}.gallery-brand>span:last-child,.header-button span,.archive-link{display:none}.header-button{width:40px;min-height:40px;padding:0}.interior-picker{gap:6px;min-height:40px;padding:0 9px}.interior-picker>svg,.interior-label{display:none}.interior-picker select{width:92px;font-size:.68rem}.fullscreen-button{display:none}.room-status{top:max(68px, calc(env(safe-area-inset-top) + 58px));width:min(400px,100vw - 24px);padding:7px 10px 7px 7px;bottom:auto;left:12px}.room-status>div{min-width:0}.room-status strong,.room-status small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-status>span{width:32px;height:32px}.move-pad{right:12px;bottom:max(12px, env(safe-area-inset-bottom));width:136px;padding:8px}.move-pad-heading small{display:none}.move-pad-keys{grid-template-rows:repeat(3,30px);grid-template-columns:repeat(3,34px)}.pointer-prompt,.crosshair{display:none}.hover-label{bottom:max(24px, env(safe-area-inset-bottom))}.entry-overlay{padding:28px 22px max(74px, calc(env(safe-area-inset-bottom) + 54px));background:linear-gradient(#0d0b0926,#0d0b09f0 62%);align-items:flex-end}.entry-copy h1{margin:14px 0 20px;font-size:clamp(3.1rem,14vw,5rem)}.entry-copy>p:not(.eyebrow){font-size:.88rem;line-height:1.7}.entry-footer{left:22px;right:22px;bottom:max(18px, env(safe-area-inset-bottom))}.entry-footer span:last-child{display:none}.room-map{width:auto;padding:18px;inset:72px 12px 12px}.room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=420px){.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}
