:root{--ink:#5a4a5e;--ink-soft:#907d94;--pink:#f3cfe2;--pink-deep:#e8a8c9;--blue:#bcd4f2;--cream:#fff7f0;--glass:#fff7fad1;--font-display:"Cormorant Garamond", serif;--font-body:"Zen Kaku Gothic New", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-body);color:var(--ink);background:linear-gradient(#bdd6f4 0%,#f4d5e6 70%,#f9e3ee 100%);overflow:hidden}#stage{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{opacity:0!important;pointer-events:none!important}.loader{z-index:40;background:linear-gradient(#bdd6f4 0%,#f4d5e6 70%,#f9e3ee 100%);flex-direction:column;justify-content:center;align-items:center;transition:opacity 1.2s;display:flex;position:fixed;inset:0}.loader-pearl{background:radial-gradient(circle at 35% 30%,#fff,#f0d8e6 55%,#d9b7d3);border-radius:50%;width:22px;height:22px;margin-bottom:28px;animation:2.2s ease-in-out infinite pearl-breathe;box-shadow:0 0 24px 6px #fff0fae6}@keyframes pearl-breathe{0%,to{transform:scale(1);box-shadow:0 0 18px 4px #fff0facc}50%{transform:scale(1.25);box-shadow:0 0 34px 10px #fff0fa}}.loader-name{font-family:var(--font-display);letter-spacing:.35em;text-indent:.35em;font-size:28px;font-weight:400}.loader-sub{letter-spacing:.3em;text-indent:.3em;color:var(--ink-soft);text-transform:uppercase;margin-top:10px;font-size:11px}.dots span{animation:1.4s infinite dot-blink}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes dot-blink{0%,60%,to{opacity:.15}30%{opacity:1}}.intro{z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:radial-gradient(at 50% 60%,#fff7fa1f,#d6bae06b);justify-content:center;align-items:center;transition:opacity 1s;display:flex;position:fixed;inset:0}.intro-inner{text-align:center;animation:.9s .2s both rise}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.intro-title{font-family:var(--font-display);letter-spacing:.18em;text-indent:.18em;color:#fff;text-shadow:0 2px 30px #d68cb88c,0 0 60px #fff9;font-size:clamp(42px,8vw,76px);font-weight:400}.intro-role{letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:#fff;opacity:.85;text-shadow:0 1px 12px #a078a099;margin-top:16px;font-size:12px}.enter-btn{cursor:pointer;font-family:var(--font-display);letter-spacing:.28em;text-indent:.28em;color:var(--ink);background:var(--glass);border:1px solid #ffffffe6;border-radius:999px;margin-top:44px;padding:15px 46px;font-size:17px;transition:transform .35s,box-shadow .35s;box-shadow:0 4px 30px #d68cb859,inset 0 0 18px #ffffffb3}.enter-btn:hover{transform:translateY(-2px)scale(1.03);box-shadow:0 8px 44px #d68cb88c,inset 0 0 24px #fffffff2}.intro-about{cursor:pointer;width:fit-content;font-family:var(--font-display);letter-spacing:.28em;text-indent:.28em;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-shadow:0 1px 10px #a078a08c;background:#fff7fa29;border:1px solid #ffffff73;border-radius:999px;margin:0 auto;padding:10px 34px;font-size:14px;transition:background .3s,border-color .3s;position:absolute;bottom:76px;left:0;right:0}.intro-about:hover{background:#fff7fa52;border-color:#ffffffbf}body.is-touch .intro-about{display:none}.intro-hint{letter-spacing:.18em;color:#fff;opacity:.8;text-shadow:0 1px 10px #a078a099;margin-top:26px;font-size:11px}.intro-hint b{font-weight:500}body:not(.is-touch) [data-mobile],body.is-touch [data-desktop]{display:none}@media (width<=480px){.intro-role{letter-spacing:.24em;text-indent:.24em;white-space:nowrap;font-size:10px}}.hud{transition:opacity .6s}.crosshair{z-index:20;background:#fffffff2;border-radius:50%;width:5px;height:5px;transition:transform .2s,background .2s;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 8px 2px #ffffffb3}.crosshair.on-art{background:var(--pink-deep);transform:translate(-50%,-50%)scale(2.1)}body.is-touch .crosshair{display:none}.room-label{z-index:20;font-family:var(--font-display);letter-spacing:.34em;text-indent:.34em;color:#fff;text-shadow:0 1px 18px #be78aabf;opacity:0;font-size:21px;transition:opacity .8s;position:fixed;top:42px;left:50%;transform:translate(-50%)}.room-label.show{opacity:1}.hud-corner-btn{z-index:21;cursor:pointer;font-family:var(--font-display);letter-spacing:.22em;text-indent:.22em;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-shadow:0 1px 10px #a078a08c;background:#fff7fa29;border:1px solid #ffffff73;border-radius:999px;padding:9px 22px;font-size:14px;transition:background .3s;position:fixed;top:26px;right:28px}.hud-corner-btn:hover{background:#fff7fa52}body:not(.is-touch) .hud-corner-btn{display:none}.hud-hint{z-index:20;letter-spacing:.18em;white-space:nowrap;color:#fff;opacity:.6;text-shadow:0 1px 10px #a078a0a6;font-size:10.5px;transition:opacity .4s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.hud-hint b{font-weight:500}body.viewing .hud-hint{opacity:0}.joystick{z-index:22;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;background:#fff7fa14;border:1px solid #ffffff38;border-radius:50%;width:108px;height:108px;transition:opacity .25s;position:fixed;bottom:34px;left:34px}.joystick.active{opacity:1}.joystick-knob{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffff29;border:1px solid #ffffff59;border-radius:50%;width:40px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}body:not(.is-touch) .joystick{display:none}.modal{z-index:32;justify-content:center;align-items:center;padding:20px;transition:opacity .45s;display:flex;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(9px)saturate(1.15);backdrop-filter:blur(9px)saturate(1.15);background:radial-gradient(at 50% 45%,#f6d9e847,#cdb4de80);position:absolute;inset:0}.modal-card{z-index:1;background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #ffffffeb;border-radius:24px;flex-direction:column;max-width:min(760px,94vw);max-height:88vh;padding:16px 16px 26px;transition:transform .5s cubic-bezier(.22,1,.3,1);display:flex;position:relative;transform:none;box-shadow:0 24px 90px #be8cb466,inset 0 0 30px #ffffff8c}.modal.hidden .modal-card{transform:translateY(16px)scale(.965)}.modal-card img{object-fit:contain;border-radius:14px;max-width:100%;max-height:58vh;margin:0 auto;display:block}.modal-caption{text-align:center;padding:18px 20px 0;overflow-y:auto}.modal .panel-close{background:var(--glass);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #ffffffe6;top:-12px;right:-12px}.modal .panel-cat{text-align:center}.modal .panel-title{margin-top:6px;font-size:24px}.modal .panel-note{margin-top:10px}.panel{z-index:32;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-left:1px solid #ffffffe6;flex-direction:column;width:min(430px,92vw);transition:transform .5s cubic-bezier(.22,1,.3,1),opacity .4s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(0);box-shadow:-12px 0 50px #be8cb447}.panel.hidden{transform:translate(40px)}.panel-close{z-index:2;cursor:pointer;width:38px;height:38px;color:var(--ink);background:#ffffffbf;border:none;border-radius:50%;font-size:20px;position:absolute;top:14px;right:18px;box-shadow:0 2px 10px #be8cb440}.panel-figure{background:linear-gradient(#e9d3ea,#f6dce9);flex:none}.panel-figure img{object-fit:contain;width:100%;max-height:58vh;display:block}.panel-body{padding:26px 30px 40px}.panel-cat{letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);font-size:10.5px}.panel-title{font-family:var(--font-display);margin-top:8px;font-size:26px;font-weight:500;line-height:1.25}.panel-note{color:var(--ink-soft);margin-top:14px;font-size:13px;line-height:1.9}.about-text{margin-top:16px;font-size:13.5px;line-height:2.1}.about-links{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.about-links a{letter-spacing:.14em;color:var(--ink);background:#ffffff8c;border:1px solid #c8a0c38c;border-radius:999px;padding:8px 20px;font-size:12px;text-decoration:none;transition:background .3s}.about-links a:hover{background:#fffffff2}.about-articles-head{letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);margin-top:34px;font-size:10.5px}.about-articles{margin-top:10px;list-style:none}.about-articles li{border-bottom:1px solid #c8a0c34d}.about-articles a{color:var(--ink);padding:12px 2px;font-size:13px;line-height:1.7;text-decoration:none;transition:padding-left .3s,color .3s;display:block}.about-articles a:hover{color:#b0679a;padding-left:10px}
