:root{--ink:#2a2622;--canvas:#faf6ef;--clay:#834c66;--gold:#b08a3e;--sage:#8a9a7b;--serif:var(--font-fraunces), Georgia, serif;--sans:var(--font-inter), system-ui, sans-serif;--script:var(--font-caveat), cursive}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--sans);color:var(--canvas);background:#14110e;overflow:hidden}#scene{position:fixed;inset:0}#scene canvas{display:block}a{color:inherit;text-decoration:none}.g-topbar{z-index:30;pointer-events:none;background:linear-gradient(#14110e99,#0000);justify-content:space-between;align-items:center;padding:16px 26px;display:flex;position:fixed;top:0;left:0;right:0}.g-topbar a{pointer-events:auto;font-size:14px;font-weight:500;transition:color .3s}.g-topbar a:hover{color:var(--clay)}.g-title{font-family:var(--serif);font-variant:small-caps;letter-spacing:.12em;color:#e8decb;font-size:16px}.g-home,.g-back{border-bottom:1px solid #0000}.g-home:hover,.g-back:hover{border-color:var(--clay)}.g-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;background:radial-gradient(circle at 50% 40%,#28221cd1,#0e0b08f5);align-content:center;place-items:center;gap:20px;padding:24px;display:grid;position:fixed;inset:0}.g-overlay[hidden]{display:none}.g-spinner{border:3px solid #d6a24b40;border-top-color:var(--gold);border-radius:50%;width:46px;height:46px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.g-load-text{font-family:var(--serif);color:#d9cdb6;font-size:19px;font-style:italic}.g-card{background:#faf6ef0a;border:1px solid #d6a24b66;border-radius:4px;max-width:480px;padding:48px 44px;box-shadow:inset 0 0 0 4px #14110e80,0 30px 80px #0009}.g-kicker{font-family:var(--serif);font-variant:small-caps;letter-spacing:.2em;color:var(--gold);font-size:14px}.g-card h1{font-family:var(--serif);margin:6px 0 4px;font-size:clamp(34px,5vw,48px);font-weight:500;line-height:1.05}.g-sig{font-family:var(--script);color:var(--sage);margin-bottom:26px;font-size:26px}.g-controls{text-align:left;max-width:320px;margin:0 auto 30px;list-style:none}.g-controls li{color:#d9cdb6;border-bottom:1px dashed #d6a24b33;align-items:center;gap:12px;padding:8px 0;font-size:14.5px;display:flex}.g-controls .key{text-align:center;min-width:30px;font-family:var(--serif);color:var(--canvas);background:#d6a24b24;border:1px solid #d6a24b59;border-radius:4px;flex:none;padding:4px 8px;font-size:12.5px}.g-btn{cursor:pointer;font-family:var(--serif);font-variant:small-caps;letter-spacing:.08em;color:#fff;background:var(--clay);border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:3px;padding:13px 30px;font-size:17px;font-weight:500;transition:transform .25s,box-shadow .25s;display:inline-block}.g-btn:hover{box-shadow:1px 1px 0 var(--ink);transform:translate(1px,1px)}.g-btn-sm{padding:9px 18px;font-size:15px}.g-btn-ghost{color:var(--canvas);box-shadow:3px 3px 0 var(--gold);background:0 0}.g-btn-ghost:hover{box-shadow:1px 1px 0 var(--gold)}#crosshair{z-index:20;pointer-events:none;border:1.5px solid #ffffffb3;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;transition:transform .2s,background .2s;position:fixed;top:50%;left:50%;box-shadow:0 0 0 1px #0000004d}#crosshair.hot{background:#d6a24bb3;border-color:#fff;transform:scale(1.8)}#crosshair[hidden]{display:none}#hud{z-index:20;pointer-events:none;letter-spacing:.03em;color:#d9cdb6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14110e99;border:1px solid #d6a24b4d;border-radius:999px;padding:9px 20px;font-size:13px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}#hud[hidden]{display:none}.g-info{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#14110ef0;border-left:1px solid #d6a24b59;flex-direction:column;width:min(420px,100%);height:100%;padding:64px 34px 34px;transition:transform .5s cubic-bezier(.22,.61,.36,1);display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-30px 0 80px #00000080}.g-info:not([hidden]){transform:translate(0)}.g-info[hidden]{display:flex;transform:translate(100%)}.g-info-close{cursor:pointer;color:#d9cdb6;background:0 0;border:0;font-size:30px;line-height:1;transition:color .3s;position:absolute;top:18px;right:22px}.g-info-close:hover{color:var(--clay)}.g-info-img{border:1px solid var(--stone,#cabfa9);text-align:center;background:#fff;border-radius:2px;flex:none;padding:12px;box-shadow:0 20px 50px #00000080}.g-info-img img{object-fit:contain;border-radius:1px;width:auto;max-width:100%;height:auto;max-height:46vh;margin:0 auto;display:block}.g-info-body{flex:none;padding-top:26px}.g-info-body h2{font-family:var(--serif);font-variant:small-caps;font-size:30px;font-weight:500;line-height:1.1}.g-info-medium{font-family:var(--serif);color:#d9cdb6;margin-top:6px;font-size:16px;font-style:italic}.g-info-size{color:#9a917f;letter-spacing:.03em;margin-top:4px;font-size:14px}.g-info-price{font-family:var(--serif);color:var(--gold);margin-top:16px;font-size:24px;font-weight:600}.g-info-actions{gap:12px;margin-top:28px;display:flex}@media (max-width:720px){.g-info{width:100%;padding:60px 22px 22px}.g-title{display:none}}.g-exit-link{letter-spacing:.04em;color:#cdbfa6;border-bottom:1px solid #0000;margin-top:18px;font-size:13px;transition:color .3s,border-color .3s;display:inline-block}.g-exit-link:hover{color:#fff;border-color:var(--clay)}#navpad{z-index:25;align-items:center;gap:12px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}#navpad[hidden]{display:none}.navbtn{cursor:pointer;color:#f3ece1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:none;-webkit-user-select:none;user-select:none;background:#14110e8c;border:1px solid #d6a24b66;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;line-height:1;transition:background .2s,transform 80ms;display:flex}.navbtn:hover{background:#834c66bf;border-color:#d6a24bb3}.navbtn:active{background:var(--clay);transform:scale(.9)}#hud{bottom:100px}
