:root{--bg:#dfe9e4;--ink:#33402f;--muted:#6b7766;--accent:#fbba00;--accent-ink:#4a3410;--card:#fffdf8;--shadow:0 8px 24px #2837282e;--top:calc(14px + env(safe-area-inset-top));--bottom:calc(18px + env(safe-area-inset-bottom))}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;margin:0;font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#scene{touch-action:none;width:100vw;height:100dvh;display:block}.hidden{opacity:0!important}.hidden,.hidden *{pointer-events:none!important}button{font:inherit;cursor:pointer}[hidden]{display:none!important}button:disabled{cursor:wait;opacity:.6}#auth-screen{padding:max(24px, var(--top)) 20px max(24px, var(--bottom));background:var(--bg);display:grid;position:fixed;inset:0;overflow-y:auto}.auth-card{background:var(--card);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:24px;margin:auto;padding:28px 24px}.auth-card h1{margin-top:0}.auth-card p{line-height:1.5}#auth-fields{border:0;gap:12px;min-width:0;margin:0;padding:0;display:grid}#auth-fields label{font-weight:800}#auth-fields input{border:1px solid var(--muted);width:100%;min-width:0;font:inherit;color:var(--ink);-webkit-user-select:text;user-select:text;background:#fff;border-radius:10px;padding:12px;font-size:16px}#auth-submit{margin-top:8px}#auth-error,#account-error{color:#9b2525}#auth-status:empty,#auth-error:empty,#account-error:empty{display:none}#account{left:12px;bottom:var(--bottom);position:fixed}#sign-out{background:var(--card);color:var(--ink);box-shadow:var(--shadow);border:0;border-radius:12px;padding:10px 12px}#account-error{background:var(--card);border-radius:12px;max-width:220px;padding:12px}.btn{background:var(--accent);color:var(--accent-ink);box-shadow:0 4px 0 #c99400, var(--shadow);border:0;border-radius:999px;padding:14px 30px;font-size:17px;font-weight:800;transition:transform .1s}.btn:active{box-shadow:0 1px 0 #c99400, var(--shadow);transform:translateY(3px)}.icon-btn{background:var(--card);width:44px;height:44px;color:var(--ink);box-shadow:var(--shadow);border:0;border-radius:50%;font-size:18px;font-weight:800;position:absolute}#guide{top:var(--top);background:var(--card);max-width:420px;box-shadow:var(--shadow);pointer-events:none;border-radius:18px;grid-template-columns:auto 1fr;grid-template-areas:"label label""icons text";align-items:center;gap:4px 12px;margin:0 auto;padding:12px 16px;transition:opacity .3s,transform .3s;display:grid;position:fixed;left:16px;right:16px}#guide.hint{grid-template-areas:"text text"}#guide.hint #guide-label,#guide.hint #guide-icons{display:none}#guide.quest{border:2px solid var(--accent)}#guide-label{letter-spacing:.08em;text-transform:uppercase;color:#c99400;grid-area:label;font-size:12px;font-weight:800}#guide-icons{color:var(--muted);grid-area:icons;align-items:center;gap:2px;font-weight:800;display:flex}.chip{width:54px;color:var(--chip);flex-direction:column;align-items:center;font-size:11px;font-weight:800;display:flex}.chip img{background:color-mix(in srgb, var(--chip) 18%, white);border:2px solid var(--chip);border-radius:12px;width:48px;height:48px}#guide-text{grid-area:text;font-size:16px;font-weight:700;line-height:1.3}#guide.shake{animation:.45s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(9px)}60%{transform:translate(-6px)}80%{transform:translate(3px)}}#hud{left:0;right:0;bottom:var(--bottom);pointer-events:none;flex-direction:column;align-items:center;gap:4px;transition:opacity .3s;display:flex;position:fixed}#stack{pointer-events:auto;touch-action:none;cursor:grab;width:104px;height:104px;position:relative}#stack:before{content:"";position:absolute;inset:-14px}#stack-tiles img{pointer-events:none;-webkit-user-drag:none;width:104px;height:104px;transition:transform .25s,opacity .25s;position:absolute;left:0}#stack.lifting #stack-tiles img:last-child{opacity:0;transform:translateY(-30px)scale(.8)}#stack.pulse{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}#stack-count{background:var(--card);text-align:center;min-width:30px;height:30px;box-shadow:var(--shadow);border-radius:15px;padding:0 8px;font-size:15px;font-weight:800;line-height:30px;position:absolute;top:2px;right:-6px}#stack-label{background:var(--card);box-shadow:var(--shadow);border-radius:999px;padding:3px 12px;font-size:14px;font-weight:800}#stack.empty{visibility:hidden}.screen{text-align:center;background:radial-gradient(circle at 50% 40%, #eef4ea 0%, var(--bg) 70%);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;transition:opacity .5s;display:flex;position:fixed;inset:0}#start-tiles{width:220px;height:150px;margin-bottom:8px;position:relative}#start-tiles img{width:110px;height:110px;animation:3s ease-in-out infinite float;position:absolute}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.screen h1{letter-spacing:-.02em;margin:0;font-size:44px;font-weight:900;line-height:1}.disclaimer{color:var(--muted);margin:0 0 18px;font-size:14px}.sheet{left:16px;right:16px;bottom:var(--bottom);background:var(--card);text-align:center;border-radius:24px;max-width:420px;margin:0 auto;padding:22px 20px 20px;transition:opacity .3s,transform .4s cubic-bezier(.2,1.4,.4,1);position:fixed;box-shadow:0 16px 40px #28372847}.sheet.hidden{transform:translateY(40px)scale(.96)}.sheet p{margin:10px 0 18px;font-size:17px;font-weight:700;line-height:1.35}.badge{background:var(--accent);color:var(--accent-ink);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:900;display:inline-block}#diorama-ui{pointer-events:none;transition:opacity .3s;position:fixed;inset:0}#diorama-ui>*{pointer-events:auto}#diorama-close{top:var(--top);right:16px}#diorama-ui .info{left:16px;right:16px;bottom:var(--bottom);background:var(--card);max-width:420px;box-shadow:var(--shadow);border-radius:20px;margin:0 auto;padding:16px 18px;position:absolute}#diorama-ui h2{margin:0 0 6px;font-size:22px;font-weight:900}#diorama-ui .info p{color:var(--muted);margin:0;font-size:15px;font-weight:600;line-height:1.4}#photo-btn{background:var(--accent);width:52px;height:52px;color:var(--accent-ink);box-shadow:var(--shadow);border:3px solid #fff;border-radius:50%;place-items:center;margin:-26px 0 0 -26px;animation:1.6s ease-out infinite beacon;display:grid;position:absolute;top:0;left:0}@keyframes beacon{0%{box-shadow:0 0 0 0 #fbba00b3, var(--shadow)}to{box-shadow:0 0 0 18px #fbba0000, var(--shadow)}}#photo{background:#1e261ed9;place-items:center;padding:70px 16px 24px;transition:opacity .3s;display:grid;position:fixed;inset:0}#photo figure{width:100%;max-width:420px;margin:0;transition:transform .4s cubic-bezier(.2,1.3,.4,1)}#photo.hidden figure{transform:scale(.9)}#photo img{object-fit:cover;border:6px solid #fff;border-radius:14px;width:100%;max-height:72dvh;display:block;box-shadow:0 16px 40px #0006}#photo figcaption{text-align:center;color:#fff;opacity:.85;margin-top:10px;font-size:14px;font-weight:700}#photo-close{top:var(--top);right:16px}#controls{top:var(--top);background:var(--card);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:2px;padding:3px;transition:opacity .3s;display:flex;position:fixed;right:16px}#controls button{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:11px;place-items:center;display:grid}#controls button.active{background:var(--accent);color:var(--accent-ink)}#guide{right:72px}#stack:not(.drag-mode){cursor:default}#tap-hint{pointer-events:none;transition:opacity .3s;position:fixed;top:0;left:0}#tap-hint img{transform-origin:45% 31%;width:96px;height:96px;animation:1.6s ease-in-out infinite tap-finger;position:absolute;top:-30px;left:-43px}@keyframes tap-finger{0%,to{transform:translateY(-12px)}45%{transform:translateY(0)scale(.94)}60%{transform:translateY(0)scale(.94)}}#stack-tiles img:last-child{animation:2.4s ease-in-out infinite stack-float}@keyframes stack-float{0%,to{transform:translateY(-4px)}50%{transform:translateY(-11px)}}.chip{width:auto}
