:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{background:#2b2340;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-family:Huninn,-apple-system,PingFang TC,system-ui,sans-serif;position:fixed;inset:0}#ui{pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;inset:0}#ui>*{pointer-events:auto}@font-face{font-family:Huninn;src:url(/assets/fonts/huninn-subset.woff2)format("woff2");font-display:swap}.hud{z-index:20;pointer-events:none;justify-content:space-between;align-items:flex-start;padding:14px;display:flex;position:absolute;inset:0}.hud>*{pointer-events:auto}.hud-right{align-items:center;gap:12px;display:flex}.hud-btn,.hud-pill{background:linear-gradient(180deg, #fff 0%, var(--paper,#fff6e5) 100%);min-width:64px;min-height:64px;color:var(--ink,#3a2e2a);cursor:pointer;touch-action:manipulation;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font:700 26px/1 Huninn,-apple-system,PingFang TC,system-ui,sans-serif;transition:transform .12s;display:inline-flex;box-shadow:inset 0 2px #ffffffe6,inset 0 -3px #0000000f,0 6px #0000001f,0 10px 24px #0000002e}.hud-btn:active{transform:translateY(3px)scale(.97)}.hud-avatar{font-size:34px}.hud-star{font-size:30px}.hud-count{text-align:center;min-width:1.2em}.debug-panel{z-index:60;color:#fff;pointer-events:none;white-space:pre;background:#0009;border-radius:8px;padding:8px 10px;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;position:absolute;bottom:12px;left:12px}.hud-left{gap:12px;display:flex}.hud-back[hidden],.hud-profile[hidden]{display:none}.deck{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;container-type:size}.deck>*{pointer-events:auto}.deck-inner{flex-direction:column;justify-content:center;align-items:center;gap:14px;width:100%;height:100%;display:flex}.clock-box{--frac:.92;width:min(calc(var(--frac) * 100cqw), calc(var(--frac) * 100cqh));height:min(calc(var(--frac) * 100cqw), calc(var(--frac) * 100cqh));flex:none}.deck-stack{flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;height:100%;display:flex}.subtitle{background:var(--paper,#fff6e5);max-width:min(92vw,720px);color:var(--ink,#3a2e2a);text-align:center;pointer-events:none;border-radius:999px;padding:12px 22px;font:700 22px/1.35 Huninn,-apple-system,PingFang TC,system-ui,sans-serif;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 6px #0000001f,0 10px 24px #0000002e}.subtitle[hidden]{display:none}@media (orientation:portrait){.subtitle{max-width:94vw;padding:10px 18px;font-size:18px}}.next-btn{pointer-events:auto;background:linear-gradient(180deg, #ffb27f, var(--accent,#ff9f5a));color:#fff;min-width:84px;min-height:84px;animation:.4s cubic-bezier(.34,1.56,.64,1) both next-pop;position:absolute;bottom:18px;right:18px}.next-btn[hidden]{display:none}@keyframes next-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.star-particle{pointer-events:none;will-change:transform, opacity;z-index:5;font-size:28px;position:absolute}.star-flyer{font-size:36px}.clock{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-width:100%;height:100%;max-height:100%;display:block}.clock-rim{fill:var(--wood,#8a5a3c)}.clock-face{fill:#fffdf5}.tick{stroke:#c9b9a6;stroke-width:1.2px;stroke-linecap:round}.tick.big{stroke:#7a6555;stroke-width:2.4px}.clock-num{fill:var(--ink,#3a2e2a);font:700 20px Huninn,-apple-system,PingFang TC,system-ui,sans-serif;transition:fill .2s,font-size .2s}.clock-num.is-target{fill:#ff3b8d;font-size:26px;animation:.8s ease-in-out infinite alternate num-pulse}@keyframes num-pulse{0%{opacity:.55}to{opacity:1}}.hand-body{fill:var(--ink,#3a2e2a)}.clock-hand.minute .hand-body{fill:#d9534f}.hand-hit{fill:#0000}.clock-hand.draggable{cursor:grab}.clock-hand.draggable .hand-body{filter:drop-shadow(0 2px 2px #00000040)}.clock.is-dragging .clock-hand.draggable{cursor:grabbing}.clock-pin{fill:var(--accent,#ff9f5a);stroke:#fff;stroke-width:2px}.ghost-hand{fill:#ff3b8d;opacity:.35}.card-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;width:100%;display:flex}.card{background:var(--paper,#fff6e5);width:min(38cqw,42cqh,180px);min-width:96px;height:min(38cqw,42cqh,180px);min-height:96px;color:var(--ink,#3a2e2a);cursor:pointer;touch-action:manipulation;border:0;border-radius:22px;flex-direction:column;flex:none;align-items:center;gap:6px;padding:10px;font:700 22px/1 Huninn,-apple-system,PingFang TC,system-ui,sans-serif;transition:transform .12s;display:flex;box-shadow:0 6px #0000001f,0 10px 24px #0000002e}.card:active{transform:translateY(3px)scale(.97)}.card .card-icon{font-size:44px;line-height:1}.card.is-correct{outline:5px solid #52c41a;animation:.5s cubic-bezier(.34,1.56,.64,1) card-pop}.card.is-wrong{animation:.45s ease-in-out card-shake}.card.is-hint{outline:5px solid #ff3b8d;animation:.7s ease-in-out infinite alternate num-pulse}.card.is-done{opacity:.35;pointer-events:none}@keyframes card-pop{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes card-shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.big-btn{background:linear-gradient(180deg, #ffb27f, var(--accent,#ff9f5a));color:#fff;gap:12px;min-width:120px;min-height:84px;font-size:26px}.ceremony{text-align:center;color:var(--ink,#3a2e2a);flex-direction:column;align-items:center;gap:14px;font:700 28px/1.3 Huninn,-apple-system,PingFang TC,system-ui,sans-serif;display:flex}.ceremony .badge{filter:drop-shadow(0 8px 12px #00000040);font-size:96px;line-height:1;animation:.8s cubic-bezier(.34,1.56,.64,1) card-pop}.ceremony .stars{font-size:34px}.picker{z-index:30;pointer-events:auto;background:#2b23408c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.picker[hidden]{display:none}.picker-card{background:var(--paper,#fff6e5);color:var(--ink,#3a2e2a);text-align:center;border-radius:32px;max-width:92vw;padding:28px 32px;box-shadow:0 16px 48px #0000004d}.picker-title{margin:0 0 18px;font:700 34px/1.2 Huninn,-apple-system,PingFang TC,system-ui,sans-serif}.picker-row{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.picker-avatar{border:6px solid var(--ring,#ffb454);cursor:pointer;background:#fff;border-radius:50%;width:min(22vw,150px);height:min(22vw,150px);padding:8px;transition:transform .15s}.picker-avatar svg{width:100%;height:100%}.picker-avatar.is-active{box-shadow:0 0 0 6px #0000001f}.picker-avatar:active,.picker-avatar.is-picked{transform:scale(1.12)}.hud-avatar.has-avatar{width:52px;height:52px;display:inline-flex}.hud-avatar.has-avatar svg{width:100%;height:100%}.report{z-index:30;pointer-events:auto;background:#2b23408c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:auto}.report[hidden]{display:none}.report-card{background:var(--paper,#fff6e5);color:var(--ink,#3a2e2a);border-radius:24px;max-width:min(92vw,560px);max-height:88vh;padding:22px 26px;font:500 18px/1.5 Huninn,-apple-system,PingFang TC,system-ui,sans-serif;overflow:auto;box-shadow:0 16px 48px #0000004d}.report-head{align-items:center;gap:12px;display:flex}.report-avatar{width:56px;height:56px;display:inline-block}.report-avatar svg{width:100%;height:100%}.report-card h2{margin:0;font-size:26px}.report-card h3{margin:16px 0 6px;font-size:20px}.report-card h3 small{opacity:.7;margin-left:8px;font-size:15px;font-weight:500}.report-card table{border-collapse:collapse;width:100%}.report-card th,.report-card td{text-align:center;border-bottom:1px solid #00000014;padding:4px 8px}.report-privacy{opacity:.7;margin:16px 0 12px;font-size:14px}.report-actions{justify-content:flex-end;gap:12px;display:flex}.report-actions .hud-btn{min-height:56px;font-size:20px}.clock-scene{pointer-events:none;width:100%;height:100%;display:block}.clock-scene .sky{transition:fill .6s}.clock-scene .stars{transition:opacity .6s}.clock-scene .sun,.clock-scene .moon{will-change:transform;transition:transform .8s,opacity .6s}.clock-scene .house-window{transition:fill .6s}.clock-scene .house-window-glow,.clock-scene .night-veil{transition:opacity .6s}.clock-scene .cloud{will-change:transform}.book-screen{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--wall,#fff1d0);grid-template-rows:38% 1fr;display:grid;position:absolute;inset:0}.book-screen[hidden]{display:none}@media (orientation:landscape){.book-screen{grid-template-rows:1fr;grid-template-columns:1fr minmax(0,46%)}}.book-scene{position:relative;overflow:hidden}.book-scene>svg{width:100%;height:100%;display:block}.book-cat{width:min(24vw,22vh,190px);position:absolute;bottom:3%;right:3%}.book-screen .deck{width:auto;height:auto;padding:8px 8px calc(88px + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex;position:relative;inset:auto}@media (orientation:landscape){.book-screen .deck{padding:8px 8px calc(24px + env(safe-area-inset-bottom))}}.shelf{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-template-rows:1fr auto 1fr;display:grid;position:absolute;inset:0}.shelf[hidden]{display:none}.shelf-room{background:linear-gradient(to bottom, var(--wall,#fff1d0) 0%, var(--wall,#fff1d0) 62%, var(--floor,#ead7b4) 62%, var(--floor,#ead7b4) 100%);grid-area:1/1/-1;position:relative}.shelf-wood{background:var(--wood,#dba672);height:1.6%;min-height:10px;position:absolute;top:62%;left:0;right:0;box-shadow:0 6px 14px #00000047}.shelf-track{--card-w:min(64vw, 360px);scroll-snap-type:x mandatory;touch-action:pan-x;overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-inline:calc(50% - var(--card-w) / 2);grid-area:2/1;align-items:center;gap:4vw;display:flex;position:relative;overflow-x:auto}.shelf-track::-webkit-scrollbar{display:none}@media (orientation:landscape){.shelf-track{--card-w:min(30vw, 320px)}}.shelf-card{flex:0 0 var(--card-w);aspect-ratio:3/4;scroll-snap-align:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:14px;margin:0;padding:0;transition:transform .12s,opacity .2s;position:relative;overflow:hidden;box-shadow:0 10px #0000001f,0 18px 30px #0000002e}.shelf-card:before{content:"";pointer-events:none;background:#0000002e;width:8%;position:absolute;top:0;bottom:0;left:0}.shelf-card:active{transform:translateY(4px)scale(.98)}.shelf-card.is-locked{opacity:.8}.shelf-card.is-wiggle{animation:.5s ease-in-out shelf-card-wiggle}@keyframes shelf-card-wiggle{0%,to{transform:translate(0)rotate(0)}20%{transform:translate(-6px)rotate(-3deg)}40%{transform:translate(5px)rotate(2deg)}60%{transform:translate(-4px)rotate(-2deg)}80%{transform:translate(3px)rotate(1deg)}}.shelf-card-art{pointer-events:none;position:absolute;inset:0}.shelf-card-art canvas{width:100%;height:100%;display:block}.shelf-card-ribbon{clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);pointer-events:none;background:#ffd45a;width:13%;height:24%;position:absolute;top:0;right:20%;box-shadow:0 4px 8px #00000040}.shelf-card-ribbon[hidden]{display:none}.shelf-card-badge{filter:drop-shadow(0 3px 4px #00000059);pointer-events:none;width:34px;height:34px;position:absolute;top:-10px;right:-10px}.shelf-card-badge svg{width:100%;height:100%;display:block}.shelf-card-badge[hidden]{display:none}.shelf-cat{right:16px;bottom:max(16px, env(safe-area-inset-bottom));aspect-ratio:120/130;width:min(26vw,190px);position:absolute}.cat2d{aspect-ratio:120/130;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;display:block;position:relative}.cat2d svg{width:100%;height:100%;display:block;overflow:visible}.cat2d-eye{transform-box:fill-box;transform-origin:50%;animation:4.2s ease-in-out infinite cat2d-blink}@keyframes cat2d-blink{0%,96%,to{transform:scaleY(1)}98%{transform:scaleY(.1)}}.cat2d-tail,.cat2d-tail-tip{transform-box:view-box;transform-origin:90px 114px;animation:2.6s ease-in-out infinite cat2d-tail-sway}@keyframes cat2d-tail-sway{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.cat2d-torso{transform-box:fill-box;transform-origin:50% 100%;animation:3s ease-in-out infinite cat2d-breathe}@keyframes cat2d-breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.02)}}.cat2d-mouth-closed{opacity:calc(1 - var(--mouth,0))}.cat2d-mouth-open{transform-box:fill-box;transform-origin:50%;transform:scaleY(var(--mouth,0))}.cat2d-mouth.is-talking .cat2d-mouth-open{animation:.28s ease-in-out infinite cat2d-mouth-talk}@keyframes cat2d-mouth-talk{0%,to{transform:scaleY(.15)}50%{transform:scaleY(.85)}}.cat2d-eye-happy{opacity:0;transition:opacity .15s}.cat2d-eye-pupil,.cat2d-eye-highlight,.cat2d-eye-sparkle{transition:opacity .15s}.cat2d-eye.is-happy .cat2d-eye-pupil,.cat2d-eye.is-happy .cat2d-eye-highlight,.cat2d-eye.is-happy .cat2d-eye-sparkle{opacity:0}.cat2d-eye.is-happy .cat2d-eye-happy{opacity:1}@media (prefers-reduced-motion:reduce){.cat2d-eye,.cat2d-tail,.cat2d-tail-tip,.cat2d-torso{animation:none}}
