:root{--ink:#ffffffeb;--dim:#ffffff6b;--gold:#e8c37a;--glass:rgba(var(--world-tint), calc(var(--world-tint-a) - .06));--glass-line:#ffecc880;--hud-glow:255,214,138;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--hud-top:calc(env(safe-area-inset-top) + 44px);--hud-title:22px;--hud-sub:12px;--pill-bottom:calc(env(safe-area-inset-bottom) + 56px);--pill-h:30px;--pill-pad:16px;--fade:.9s;--glass-hi:rgba(var(--world-tint), var(--world-tint-a));--glass-lo:rgba(var(--world-tint), calc(var(--world-tint-a) - .06));--glass-on:rgba(var(--world-tint), calc(var(--world-tint-a) + .12));--glass-field:rgba(var(--world-tint), calc(var(--world-tint-a) - .06));--glass-field-line:#ffecc852;--glass-dash:#ffecc866;--glass-edge:inset 0 1px 0 #fff6e459, inset 0 0 0 1px #ffd68a1f;--glass-shadow:0 18px 50px #140c2873, 0 0 40px #ffc88229;--glass-blur:blur(20px) saturate(1.25);--gold-hi:#f0cd8cf2;--gold-lo:#d6a05af2;--on-gold:#1a1206;--muted:#ffffff8c;--faint:#fff6;--danger:#ff968c;--scrim:rgba(var(--world-tint), .5);--r-card:26px;--r-sheet:28px;--r-field:14px;--r-tab:11px;--r-thumb:12px;--r-cta:16px;--r-pill:999px;--fs-title:17px;--fs-body:15px;--fs-field:13.5px;--fs-small:12px;--fs-tiny:11px;--fs-icon:22px;--lh-body:1.9;--track-date:.3em;--track-cta:.2em;--gap:12px;--pad-card:18px;--pad-field:11px 12px;--tap:44px;--thumb:58px;--toggle-w:40px;--toggle-h:24px;--progress-h:3px;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--t-fast:.2s;--t-med:.45s;--t-slow:.8s;--behind-blur:3px;--behind-dim:.55;--behind-scale:1.25}.glass{background:linear-gradient(160deg, var(--glass-hi), var(--glass-lo));border:1px solid var(--glass-line);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow), var(--glass-edge)}.field{border-radius:var(--r-field);background:var(--glass-field);border:1px solid var(--glass-field-line);width:100%;padding:var(--pad-field);font:inherit;font-size:var(--fs-field);color:var(--ink);-webkit-user-select:text;user-select:text;outline:none}.field::placeholder{color:var(--muted)}.field:focus{border-color:var(--glass-line);background:var(--glass-on)}.btn{min-height:var(--tap);padding:0 var(--pad-card);border-radius:var(--r-field);background:var(--glass-field);border:1px solid var(--glass-field-line);color:var(--ink);font:inherit;font-size:var(--fs-field);letter-spacing:.08em;transition:transform var(--t-fast) var(--ease-out), background var(--t-fast) ease}.btn:active{background:var(--glass-on);transform:scale(.97)}.btn:disabled{opacity:.45}.btn-gold{width:100%;min-height:var(--tap);border-radius:var(--r-cta);background:linear-gradient(135deg, var(--gold-hi), var(--gold-lo));color:var(--on-gold);font:inherit;font-size:var(--fs-body);letter-spacing:var(--track-cta);transition:transform var(--t-fast) var(--ease-out), opacity var(--t-fast) ease;border:0;padding:14px;font-weight:600}.btn-gold:active{transform:scale(.98)}.btn-gold:disabled{opacity:.5}.tabs{gap:6px;display:flex}.tab{text-align:center;font:inherit;font-size:var(--fs-small);border-radius:var(--r-tab);background:var(--glass-lo);border:1px solid var(--glass-field-line);color:var(--muted);transition:background var(--t-fast) ease, color var(--t-fast) ease;flex:1;padding:8px 0}.tab.on{background:var(--glass-on);color:var(--ink)}.toggle{width:var(--toggle-w);height:var(--toggle-h);border-radius:var(--r-pill);background:var(--glass-on);transition:background var(--t-fast) ease;border:0;position:relative}.toggle:after{content:"";width:calc(var(--toggle-h) - 6px);height:calc(var(--toggle-h) - 6px);background:var(--ink);transition:transform var(--t-med) var(--ease-spring);border-radius:50%;position:absolute;top:3px;left:3px}.toggle.on{background:var(--gold)}.toggle.on:after{transform:translateX(calc(var(--toggle-w) - var(--toggle-h)))}.icon-btn{width:var(--tap);height:var(--tap);background:var(--glass-field);border:1px solid var(--glass-field-line);color:var(--ink);font-size:var(--fs-icon);-webkit-backdrop-filter:var(--glass-blur);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.progress{height:var(--progress-h);border-radius:var(--r-pill);background:var(--glass-field);overflow:hidden}.progress>i{background:var(--gold);height:100%;transition:width var(--t-fast) linear;display:block}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.btn,.btn-gold,.tab,.toggle,.toggle:after,.progress>i{transition:none}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{overscroll-behavior:none;background:rgb(var(--world-base));color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.galaxy{touch-action:none;position:fixed;inset:0}.galaxy-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hud{top:var(--hud-top);text-align:center;pointer-events:none;position:absolute;left:0;right:0}.hud-day{font-size:var(--hud-title);letter-spacing:.08em;color:var(--gold);text-shadow:var(--sky-halo), 0 0 18px rgba(var(--hud-glow), .65);font-weight:600}.hud-range{font-size:var(--hud-sub);letter-spacing:.14em;color:var(--dim);font-variant-numeric:tabular-nums;text-shadow:var(--sky-halo);margin-top:8px}.hud-error{color:var(--dim);letter-spacing:.2em;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pill{bottom:var(--pill-bottom);height:var(--pill-h);padding:0 var(--pill-pad);border-radius:calc(var(--pill-h) / 2);font-size:var(--hud-sub);letter-spacing:.12em;background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(18px)saturate(1.3);opacity:0;transition:opacity var(--fade) ease, transform var(--fade) ease;pointer-events:none;align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%,8px)}.pill.on{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.pill{transition:none}}:root{--home-add-inset:18px;--candle-wax-hi:255,248,236;--candle-wax-lo:232,214,189;--candle-core:255,255,255;--candle-flame-hi:255,227,154;--candle-flame-lo:255,174,69;--candle-glow:255,200,120;--lock-w:280px;--lock-gap:14px;--lock-track:.2em;--lock-msg-h:1.5em;--shake:8px;--card-inset:14px;--card-max-w:440px;--card-bottom:calc(env(safe-area-inset-bottom) + 26px);--card-max-h:74vh;--card-fit-chrome:240px;--card-fit-room:calc(var(--card-max-h) - var(--card-fit-chrome));--card-fit-photo-h:calc(var(--card-fit-room) * .68);--card-fit-hand-h:calc(var(--card-fit-room) * .32);--card-rise:56px;--card-space-sm:10px;--card-space:12px;--card-space-lg:14px;--card-grab-w:36px;--card-grab-h:4px;--card-count-bg:rgba(var(--world-tint), .6);--card-count-pad:3px 8px;--card-count-inset:9px;--card-ring:44px;--card-ring-w:2px;--card-milestone:26px;--card-loading-h:120px;--card-track:.04em;--card-step-track:.1em;--card-edit-min:88px;--card-input-fs:16px;--ink-mask:#000;--t-ink:1.6s;--overlay-close-inset:calc(env(safe-area-inset-top) + 12px);--card-z:10;--overlay-z:20}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{to{opacity:0}}@keyframes shake{0%,to{transform:none}20%,60%{transform:translateX(calc(var(--shake) * -1))}40%,80%{transform:translateX(var(--shake))}}.galaxy{animation:fade-in var(--t-slow) ease both}.galaxy-canvas{transition:filter var(--t-med) ease}.galaxy-canvas.behind{filter:blur(var(--behind-blur)) brightness(var(--behind-dim))}.home-loading{background:rgb(var(--world-base));position:fixed;inset:0}.home-error{background:rgb(var(--world-base));width:100%;color:var(--dim);font:inherit;letter-spacing:var(--lock-track);border:0;position:fixed;inset:0}.home-add{right:calc(env(safe-area-inset-right) + var(--home-add-inset));bottom:calc(env(safe-area-inset-bottom) + var(--home-add-inset));animation:fade-in var(--t-slow) ease both;transition:opacity var(--t-med) ease, visibility var(--t-med);color:#0000;box-shadow:var(--glass-edge), 0 0 22px rgba(var(--candle-glow), .35);font-size:0;position:fixed}.home-add:before{content:"";background:linear-gradient(rgb(var(--candle-wax-hi)), rgb(var(--candle-wax-lo)));border-radius:2px;width:8px;height:16px;margin-left:-4px;position:absolute;bottom:11px;left:50%}.home-add:after{content:"";background:radial-gradient(circle at 50% 70%, rgb(var(--candle-core)) 0 18%, rgb(var(--candle-flame-hi)) 35%, rgb(var(--candle-flame-lo)) 70%, transparent 72%);width:10px;height:15px;filter:drop-shadow(0 0 6px rgb(var(--candle-flame-hi)));transform-origin:50% 90%;border-radius:50%/62% 62% 38% 38%;margin-left:-5px;animation:1.6s ease-in-out infinite candle-flicker;position:absolute;bottom:26px;left:50%}@keyframes candle-flicker{0%,to{transform:none}40%{transform:translate(-1px)scale(.94,1.06)}70%{transform:translate(1px)scale(1.03,.96)}}.world-back,.world-front{transition:filter var(--t-med) ease}:is(.world:has(.card-scrim,.link-overlay) .world-back,.world:has(.card-scrim,.link-overlay) .world-front){filter:blur(var(--behind-blur)) brightness(var(--behind-dim))}.galaxy-world:has(.card-scrim,.link-overlay)~.home-add{opacity:0;visibility:hidden;pointer-events:none}.lock{transition:opacity var(--t-slow) ease;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lock.out{opacity:0}.lock-world .world-middle{justify-content:center;align-items:center;display:flex}.lock-form{width:var(--lock-w);gap:var(--lock-gap);animation:fade-in var(--t-slow) ease both;z-index:var(--z-above-clouds);flex-direction:column;display:flex;position:relative}.lock-input{text-align:center;letter-spacing:var(--lock-track);font-size:var(--fs-body)}.lock-input.shake{animation:shake var(--t-med) var(--ease-out)}.lock-msg{min-height:var(--lock-msg-h);text-align:center;font-size:var(--fs-small);color:var(--muted);letter-spacing:var(--card-step-track);text-shadow:var(--sky-halo)}@media (prefers-reduced-motion:reduce){.galaxy,.home-add,.lock-form,.lock-input.shake,.home-add:after{animation:none}.lock,.galaxy-canvas,.world-back,.world-front{transition:none}}@keyframes card-rise{0%{opacity:0;transform:translateY(var(--card-rise)) scale(.98)}to{opacity:1;transform:none}}@keyframes card-sink{to{opacity:0;transform:translateY(var(--card-rise))}}@keyframes ink{to{-webkit-mask-position:0 0;mask-position:0 0}}.card-scrim{z-index:var(--card-z);background:linear-gradient(to top, var(--scrim), transparent 60%);animation:fade-in var(--t-med) ease both;position:fixed;inset:0}.card-scrim.out{animation:fade-out var(--t-med) ease forwards}.card{left:var(--card-inset);right:var(--card-inset);bottom:var(--card-bottom);max-width:var(--card-max-w);max-height:var(--card-max-h);overscroll-behavior:contain;border-radius:var(--r-card);padding:0 var(--pad-card) var(--pad-card);animation:card-rise var(--t-slow) var(--ease-spring) both;transition:translate var(--t-fast) var(--ease-out);-webkit-user-select:text;user-select:text;margin-inline:auto;position:absolute;overflow-y:auto}.card.stepped{animation:fade-in var(--t-med) ease both}.card-scrim.out .card{animation:card-sink var(--t-med) var(--ease-out) forwards}.card-grab{padding-top:var(--card-space-sm);touch-action:none}.card-grabber{width:var(--card-grab-w);height:var(--card-grab-h);margin:0 auto var(--card-space);border-radius:var(--r-pill);background:var(--glass-line);display:block}.card-date{font-size:var(--fs-tiny);letter-spacing:var(--track-date);color:var(--gold);font-variant-numeric:tabular-nums}.card-photos{margin:var(--card-space-lg) 0 var(--card-space);border-radius:var(--r-field);background:var(--glass-field);position:relative;overflow:hidden}.card-strip{scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y;width:100%;height:100%;display:flex;overflow-x:auto}.card-strip::-webkit-scrollbar{display:none}.card-photo{object-fit:cover;scroll-snap-align:center;flex:0 0 100%;width:100%;height:100%;display:block}.card-count{right:var(--card-space-sm);bottom:var(--card-count-inset);font-size:var(--fs-tiny);color:var(--muted);background:var(--card-count-bg);padding:var(--card-count-pad);border-radius:var(--r-pill);font-style:normal;position:absolute}.card-text{margin-top:var(--card-space);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--card-track);text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-mask-image:linear-gradient(90deg, var(--ink-mask) 40%, transparent 60%);-webkit-mask-image:linear-gradient(90deg, var(--ink-mask) 40%, transparent 60%);mask-image:linear-gradient(90deg, var(--ink-mask) 40%, transparent 60%);animation:ink var(--t-ink) var(--ease-out) var(--t-fast) forwards;-webkit-mask-position:100% 0;mask-position:100% 0;-webkit-mask-size:250% 100%;mask-size:250% 100%}.card-hand{margin-top:var(--card-space-sm)}.card.both .card-photos{width:min(100%, calc(var(--card-fit-photo-h) / var(--ar)));margin-inline:auto}.card.both .hand-replay{width:min(100%, calc(var(--card-fit-hand-h) / var(--ar)))}.card.both .hand-ink{width:auto;max-width:100%;max-height:var(--card-fit-hand-h);margin-inline:auto}.card-edit-open{margin:var(--card-space-sm) auto 0;min-height:var(--tap);padding:0 var(--pad-card);color:var(--muted);font:inherit;font-size:var(--fs-small);letter-spacing:var(--card-step-track);background:0 0;border:0;display:block}.card-edit-open:active{color:var(--ink)}.card-edit{gap:var(--card-space-sm);margin-top:var(--card-space);animation:fade-in var(--t-fast) ease both;flex-direction:column;display:flex}.card-edit-wrap{position:relative}.card-edit-text{resize:none;min-height:var(--card-edit-min);font-size:var(--card-input-fs);line-height:var(--lh-body);display:block}.card-edit-count{right:var(--card-count-inset);bottom:var(--card-count-inset);font-size:var(--fs-tiny);color:var(--faint);font-variant-numeric:tabular-nums;position:absolute}.card-edit-count.over{color:var(--danger)}.card-edit-msg{text-align:center;font-size:var(--fs-small);color:var(--danger)}.card-edit-actions{gap:var(--card-space-sm);grid-template-columns:1fr 2fr;display:grid}.card.editing{bottom:calc(var(--card-bottom) + var(--kb,0px));max-height:calc(var(--card-max-h) - var(--kb,0px))}.card-note,.card-peek{margin-top:var(--card-space);text-align:center;font-size:var(--fs-small);color:var(--muted);letter-spacing:var(--card-step-track)}.card-peek{color:var(--gold)}.card-loading{height:var(--card-loading-h);margin-top:var(--card-space-lg);border-radius:var(--r-field);background:var(--glass-field);animation:fade-in var(--t-slow) ease infinite alternate}.card-retry{margin:var(--card-space-lg) auto 0;display:block}.card-milestone,.card-sealed{margin-top:var(--card-space-lg);align-items:center;gap:var(--gap);text-align:center;flex-direction:column;display:flex}.card-milestone-label{font-size:var(--card-milestone);color:var(--gold);letter-spacing:var(--card-step-track)}.card-ring{width:var(--card-ring);height:var(--card-ring)}.card-ring-track{fill:none;stroke:var(--glass-field-line);stroke-width:var(--card-ring-w)}.card-ring-fill{fill:none;stroke:var(--gold);stroke-width:var(--card-ring-w);stroke-linecap:round}.card-sealed-line{font-size:var(--fs-small);color:var(--gold);letter-spacing:var(--card-step-track)}.card-nav{justify-content:space-between;gap:var(--gap);margin-top:var(--card-space);display:flex}.card-step{min-height:var(--tap);font:inherit;font-size:var(--fs-tiny);color:var(--faint);letter-spacing:var(--card-step-track);background:0 0;border:0}.card-step:disabled{visibility:hidden}.link-overlay{z-index:var(--overlay-z);background:rgb(var(--world-base));animation:fade-in var(--t-med) ease both;position:fixed;inset:0}.link-frame{border:0;width:100%;height:100%;display:block}.link-close{top:var(--overlay-close-inset);right:var(--card-inset);position:absolute}@media (prefers-reduced-motion:reduce){.card,.card.stepped,.card-scrim,.card-loading,.link-overlay{animation:fade-in var(--t-fast) ease both}.card-scrim.out,.card-scrim.out .card{animation:none}.card{transition:none}.card-text{animation:none;-webkit-mask-image:none;mask-image:none}}:root{--add-side:10px;--add-top:calc(env(safe-area-inset-top) + 10px);--add-sheet-top:calc(env(safe-area-inset-top) + 64px);--add-sheet-bottom:calc(env(safe-area-inset-bottom) + 14px);--add-pad-y:18px;--add-pad-x:16px;--add-thumb-gap:7px;--add-inset:4px;--add-dot:6px;--add-badge:20px;--add-count-inset:10px;--add-text-min:88px;--add-rise:24px;--add-dim:.6;--add-track-title:.06em;--add-track-small:.1em;--add-lh-text:1.6;--add-input-fs:16px}.add{position:fixed;inset:0;overflow:hidden}.add-world .world-back,.add-world .world-front{filter:blur(var(--behind-blur)) brightness(var(--behind-dim));transform:scale(var(--behind-scale))}.add-top{top:var(--add-top);height:var(--tap);font-size:var(--fs-small);letter-spacing:var(--track-cta);color:var(--muted);z-index:var(--z-above-clouds);justify-content:center;align-items:center;display:flex;position:absolute;left:0;right:0}.add-back{left:var(--add-side);position:absolute;top:0}.add-sheet{left:var(--add-side);right:var(--add-side);top:var(--add-sheet-top);bottom:calc(var(--add-sheet-bottom) + var(--kb,0px));border-radius:var(--r-sheet);padding:var(--add-pad-y) var(--add-pad-x);gap:var(--gap);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;animation:add-rise var(--t-slow) var(--ease-spring) both;transition:bottom var(--t-med) var(--ease-out);z-index:var(--z-above-clouds);flex-direction:column;display:flex;position:absolute;overflow-y:auto}.add-title{font-size:var(--fs-title);letter-spacing:var(--add-track-title);text-align:center;font-weight:600}.add-text-wrap{flex-shrink:0;position:relative}.add-text{resize:none;min-height:var(--add-text-min);line-height:var(--add-lh-text);font-size:var(--add-input-fs);display:block}.add-sheet .field:disabled{opacity:var(--add-dim)}.add-row:has(input:disabled){opacity:var(--add-dim)}.add-row:has(.toggle:disabled){opacity:var(--add-dim)}.add-count{right:var(--add-count-inset);bottom:var(--add-inset);font-size:var(--fs-tiny);color:var(--faint);font-variant-numeric:tabular-nums;position:absolute}.add-count.over{color:var(--danger)}.add-thumbs{gap:var(--add-thumb-gap);flex-wrap:wrap;flex-shrink:0;display:flex}.add-thumb,.add-plus{width:var(--thumb);height:var(--thumb);border-radius:var(--r-thumb);position:relative;overflow:hidden}.add-thumb{background:var(--glass-field);animation:add-pop var(--t-med) var(--ease-spring) both}.add-thumb img{object-fit:cover;width:100%;height:100%;display:block}.add-thumb-alt{font-size:var(--fs-tiny);color:var(--muted);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.add-thumb-bar{left:var(--add-inset);right:var(--add-inset);bottom:var(--add-inset);position:absolute}.add-thumb.done:after{content:"";right:var(--add-inset);bottom:var(--add-inset);width:var(--add-dot);height:var(--add-dot);background:var(--gold);border-radius:50%;position:absolute}.add-thumb-retry{background:var(--scrim);color:var(--gold);font:inherit;font-size:var(--fs-small);letter-spacing:var(--add-track-small);border:0;position:absolute;inset:0}.add-thumb-x{top:calc(var(--add-inset) / 2);right:calc(var(--add-inset) / 2);width:var(--add-badge);height:var(--add-badge);background:var(--scrim);color:var(--ink);font-size:var(--fs-small);line-height:var(--add-badge);border:0;border-radius:50%;position:absolute}.add-plus{background:var(--glass-field);border:1px dashed var(--glass-dash);font-size:var(--fs-icon);color:var(--muted);transition:background var(--t-fast) ease;justify-content:center;align-items:center;display:flex}.add-plus:active{background:var(--glass-on)}.add-hand-line{align-items:center;gap:var(--add-thumb-gap);font-size:var(--fs-tiny);color:var(--muted);flex-shrink:0;display:flex}.add-hand-line .progress{flex:1}.add-hand-line.failed{color:var(--danger)}.add-inline{color:var(--gold);font:inherit;min-height:var(--tap);background:0 0;border:0}.add-row{min-height:var(--tap);font-size:var(--fs-field);color:var(--ink);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.add-row-val{color:var(--muted)}.add-date{opacity:0;width:100%;height:100%;font-size:var(--add-input-fs);position:absolute;inset:0}.add-seal{margin-top:calc(var(--gap) * -1);min-height:var(--tap);line-height:var(--tap);text-align:right;font-size:var(--fs-small);color:var(--gold);animation:add-pop var(--t-med) var(--ease-spring) both;flex-shrink:0;display:block;position:relative}.add-msg{font-size:var(--fs-small);color:var(--danger);text-align:center;flex-shrink:0}.add-cta{flex-shrink:0;margin-top:auto}.add-later{min-height:var(--tap);color:var(--muted);font:inherit;font-size:var(--fs-small);letter-spacing:var(--add-track-small);background:0 0;border:0;flex-shrink:0}.add-load{left:var(--add-side);right:var(--add-side);align-items:center;gap:var(--gap);text-align:center;color:var(--muted);z-index:var(--z-above-clouds);flex-direction:column;display:flex;position:absolute;top:45%}@keyframes add-rise{0%{opacity:0;transform:translateY(var(--add-rise)) scale(.98)}}@keyframes add-pop{0%{opacity:0;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.add-sheet,.add-thumb,.add-seal{animation:none}.add-sheet,.add-plus{transition:none}}:root{--hand-ink:255,255,255;--hand-ink-alpha:.92;--hand-width:3.2;--hand-glow:10;--hand-glow-alpha:.5;--hand-pad-ratio:2 / 1;--hand-pad-bg:#ffffff09;--hand-pad-line:#ffffff1a;--hand-replay-max:330px;--hand-tools-gap:8px}.hand-capture{gap:var(--gap);flex-direction:column;display:flex}.hand-pad{width:100%;aspect-ratio:var(--hand-pad-ratio);border-radius:var(--r-field);background:var(--hand-pad-bg);border:1px dashed var(--hand-pad-line);touch-action:none;position:relative;overflow:hidden}.hand-pad canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hand-pad-hint{color:var(--faint);font-size:var(--fs-small);letter-spacing:.2em;pointer-events:none;transition:opacity var(--t-med) ease;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hand-pad-hint.off{opacity:0}.hand-tools{justify-content:flex-end;align-items:center;gap:var(--hand-tools-gap);display:flex}.hand-tools .btn{min-height:calc(var(--tap) * .75);font-size:var(--fs-small)}.hand-video{align-items:flex-start;gap:var(--hand-tools-gap);flex-direction:column;display:flex}.hand-pick{align-items:center;display:inline-flex}.hand-hint{font-size:var(--fs-small);color:var(--muted);letter-spacing:.06em}.hand-hint.bad{color:var(--danger)}.hand-replay{width:100%;max-width:var(--hand-replay-max);margin:0 auto;display:block}.hand-replay-video{width:100%;max-width:var(--hand-replay-max);margin:0 auto}.hand-ink{width:100%;height:auto;display:block}.hand-state{text-align:center;font-size:var(--fs-small);color:var(--muted);letter-spacing:.12em;padding:var(--hand-tools-gap) 0}.hand-state.wait{animation:2.8s ease-in-out infinite hand-breathe}@keyframes hand-breathe{0%,to{opacity:.45}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.hand-state.wait{animation:none}.hand-pad-hint{transition:none}}:root{--gate-gap:24px;--gate-q:16.5px;--gate-q-track:.07em;--gate-hint-track:.14em;--gate-hint-h:1.4em;--gate-dot:10px;--gate-dot-gap:17px;--gate-dot-line:#fff0d7b3;--gate-key:66px;--gate-key-gap:12px;--gate-key-fs:26px;--gate-key-bg:var(--glass-field);--gate-key-on:var(--glass-on);--gate-key-off:.35}.gate{transition:opacity var(--t-slow) ease;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gate.out{opacity:0}.gate-world .world-middle{justify-content:center;align-items:center;display:flex}.gate-box{align-items:center;gap:var(--gate-gap);animation:fade-in var(--t-slow) ease both;z-index:var(--z-above-clouds);flex-direction:column;display:flex;position:relative}.gate-box.shake{animation:shake var(--t-med) var(--ease-out)}.gate-q{font-size:var(--gate-q);letter-spacing:var(--gate-q-track);color:var(--ink);text-align:center;text-shadow:var(--sky-halo);margin:0}.gate-dots{gap:var(--gate-dot-gap);display:flex}.gate-dot{width:var(--gate-dot);height:var(--gate-dot);border:1px solid var(--gate-dot-line);transition:background var(--t-fast) ease, border-color var(--t-fast) ease;background:rgba(var(--world-tint), calc(var(--sky-halo-a) * .6));box-shadow:0 0 8px rgba(var(--world-tint), var(--sky-halo-a));border-radius:50%}.gate-dot.on{background:var(--ink);border-color:var(--ink)}.gate-hint{min-height:var(--gate-hint-h);font:inherit;font-size:var(--fs-small);letter-spacing:var(--gate-hint-track);color:var(--dim);text-shadow:var(--sky-halo);background:0 0;border:0;margin:0;padding:0}button.gate-hint{color:var(--muted);text-underline-offset:4px;text-decoration:underline}.gate-pad{grid-template-columns:repeat(3, var(--gate-key));gap:var(--gate-key-gap);display:grid}.gate-key{width:var(--gate-key);height:var(--gate-key);border:1px solid var(--glass-field-line);background:var(--gate-key-bg);color:var(--ink);font:inherit;font-size:var(--gate-key-fs);touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--t-fast) ease;-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-edge);border-radius:50%;font-weight:300}.gate-key:active{background:var(--gate-key-on)}.gate-key:disabled{opacity:var(--gate-key-off)}.gate-key.blank{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0}.gate-key.del{font-size:var(--fs-body);color:var(--muted)}@media (prefers-reduced-motion:reduce){.gate-box,.gate-box.shake{animation:none}.gate,.gate-dot,.gate-key{transition:none}}:root{--letter-w:min(76vw, 300px);--letter-h:calc(var(--letter-w) * .66);--letter-flap-h:calc(var(--letter-h) * .57);--letter-seal:calc(var(--letter-w) * .18);--letter-r:14px;--letter-fs:16px;--letter-track:.18em;--letter-hint-track:.3em;--letter-perspective:520px;--letter-body-hi:rgba(var(--world-tint), calc(var(--world-tint-a) - .1));--letter-body-lo:rgba(var(--world-tint), calc(var(--world-tint-a) - .2));--letter-edge:#ffffff38;--letter-flap-hi:#ffffff38;--letter-flap-lo:#ffffff14;--letter-in-hi:#1a1e32f5;--letter-in-lo:#2e344eeb;--letter-hinge:#ffffff4d;--letter-heart-hi:#f7dea8;--letter-heart-lo:#c98f45;--letter-heart-glow:#f0be6ea6;--letter-heart-flare:#ffdc96;--letter-light:#ffe6b0e6;--letter-ease:cubic-bezier(.3,.7,.2,1);--t-letter-flap:.9s;--t-letter-seal:1.1s;--t-letter-out:.8s}.letter{z-index:var(--overlay-z);cursor:pointer;-webkit-tap-highlight-color:transparent;animation:fade-in var(--t-slow) ease both;outline:none;position:fixed;inset:0}.letter-world .world-middle{justify-content:center;align-items:center;gap:calc(var(--letter-h) * .5);flex-direction:column;display:flex}.letter.open{pointer-events:none}.letter-world .world-back,.letter-world .world-front{transition:opacity var(--t-letter-out) ease 1s}.letter.open .letter-world .world-back,.letter.open .letter-world .world-front{opacity:0}.letter-env{width:var(--letter-w);height:var(--letter-h);perspective:var(--letter-perspective);transition:transform 1.2s var(--ease-out) 1s, opacity var(--t-letter-out) ease 1.5s;z-index:var(--z-above-clouds);position:relative}.letter.open .letter-env{opacity:0;transform:scale(1.06)}.letter-body{border-radius:var(--letter-r);background:linear-gradient(160deg, var(--letter-body-hi), var(--letter-body-lo));border:1px solid var(--letter-edge);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow), var(--glass-edge);position:absolute;inset:0}.letter-flap{height:var(--letter-flap-h);transform-origin:50% 0;transform-style:preserve-3d;transition:transform var(--t-letter-flap) var(--letter-ease) .15s;z-index:2;position:absolute;top:0;left:0;right:0}.letter-flap i{backface-visibility:hidden;position:absolute;inset:0}.letter-flap-out{clip-path:polygon(3px 0,calc(100% - 3px) 0,50% 100%);background:linear-gradient(180deg, var(--letter-flap-hi), var(--letter-flap-lo))}.letter-flap-in{clip-path:polygon(50% 0,calc(100% - 3px) 100%,3px 100%);background:linear-gradient(180deg, var(--letter-in-hi), var(--letter-in-lo));transform:rotateX(180deg)}.letter.open .letter-flap{transform:rotateX(178deg)}.letter-hinge{background:var(--letter-hinge);z-index:3;height:1px;position:absolute;top:0;left:6px;right:6px}.letter-seal{z-index:4;left:50%;top:calc(var(--letter-flap-h) - var(--letter-seal) * .7);width:var(--letter-seal);height:calc(var(--letter-seal) * .94);margin-left:calc(var(--letter-seal) / -2);filter:drop-shadow(0 0 8px var(--letter-heart-glow));transition:transform var(--t-letter-seal) var(--letter-ease), filter var(--t-letter-seal) ease, opacity .5s ease 1s;position:absolute;overflow:visible}.letter.open .letter-seal{transform:translateY(calc(var(--letter-seal) * -1.2)) scale(1.5);filter:drop-shadow(0 0 22px var(--letter-heart-flare)) brightness(1.35);opacity:0}.letter-heart-hi{stop-color:var(--letter-heart-hi)}.letter-heart-lo{stop-color:var(--letter-heart-lo)}.letter-glow{background:radial-gradient(closest-side, var(--letter-light), transparent);opacity:0;border-radius:50%;height:50%;transition:opacity .6s .5s;position:absolute;top:8%;left:10%;right:10%}.letter.open .letter-glow{opacity:1}.letter-line{text-align:center;font-size:var(--letter-fs);letter-spacing:var(--letter-track);color:var(--ink);text-shadow:var(--sky-halo);margin:0;position:absolute;bottom:12%;left:0;right:0}.letter-day{color:var(--gold)}.letter-hint{font-size:var(--fs-tiny);letter-spacing:var(--letter-hint-track);color:var(--faint);text-shadow:var(--sky-halo);z-index:var(--z-above-clouds);margin:0;animation:2.6s ease-in-out infinite breathe;position:relative}.letter.open .letter-hint{opacity:0;transition:opacity var(--t-fast) ease;animation:none}.letter-bloom{width:var(--letter-w);height:var(--letter-w);margin:calc(var(--letter-w) / -2) 0 0 calc(var(--letter-w) / -2);background:radial-gradient(closest-side, var(--letter-light), transparent);opacity:0;pointer-events:none;z-index:var(--z-above-clouds);border-radius:50%;position:absolute;top:50%;left:50%;transform:scale(.2)}.letter.open .letter-bloom{animation:letter-bloom 1.8s var(--ease-out) .6s both}@keyframes letter-bloom{0%{opacity:0;transform:scale(.2)}40%{opacity:1}to{opacity:0;transform:scale(5)}}@keyframes breathe{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.letter,.letter-hint{animation:none}.letter-world .world-back,.letter-world .world-front,.letter-flap,.letter-seal,.letter-glow{transition:none}.letter.open .letter-env{transition:opacity .5s;transform:none}.letter.open .letter-flap,.letter.open .letter-seal{filter:none;transform:none}.letter.open .letter-bloom{animation:none}}.preview-bar{top:var(--overlay-close-inset);left:var(--card-inset);right:var(--card-inset);pointer-events:none;animation:fade-in var(--t-slow) ease both;transition:opacity var(--t-med) ease, visibility var(--t-med);justify-content:space-between;align-items:center;display:flex;position:fixed}.preview-tag{padding:var(--card-count-pad);border-radius:var(--r-pill);background:var(--glass);border:1px solid var(--glass-line);color:var(--gold);font-size:var(--fs-tiny);letter-spacing:var(--track-date)}.preview-close{pointer-events:auto}.galaxy-world:has(.card-scrim,.link-overlay)~.preview-bar{opacity:0;visibility:hidden}@media (prefers-reduced-motion:reduce){.preview-bar{transition:none;animation:none}}:root{--world-glow:1;--z-above-clouds:2}.world{isolation:isolate;position:fixed;inset:0}.world-back,.world-front{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.world-back{z-index:0}.world-middle{position:absolute;inset:0}.world-front{z-index:1}.world .galaxy{animation:none;position:absolute}.world .galaxy-canvas,.world .hud{animation:fade-in var(--t-slow) ease both}.world .hud,.world .pill{z-index:var(--z-above-clouds)}:root{--world-base:26,23,64;--world-tint:52,30,74;--world-tint-a:.74;--sky-halo-a:.9;--sky-halo:0 0 1px rgba(var(--world-tint), var(--sky-halo-a)), 0 0 5px rgba(var(--world-tint), var(--sky-halo-a)), 0 0 16px rgba(var(--world-tint), calc(var(--sky-halo-a) * .6));--w-dawn-sky:46,44,92 / 104,86,140 / 186,140,176 / 238,178,178 / 252,222,200;--w-dawn-sun:255,226,214;--w-dawn-clouds:255,238,236 / 246,220,226 / 232,214,236;--w-dawn-mote:255,236,240;--w-dawn-star:255,240,245;--w-dawn-tint:60,34,80;--w-dawn-tint-a:.76;--w-dawn-glow:.75;--w-dawn-stars:.35;--w-day-sky:62,118,196 / 96,150,220 / 140,184,236 / 196,220,246 / 238,244,252;--w-day-sun:255,252,236;--w-day-clouds:255,255,255 / 240,246,255 / 226,236,250;--w-day-mote:255,255,250;--w-day-star:255,255,255;--w-day-tint:20,36,78;--w-day-tint-a:.76;--w-day-glow:.55;--w-day-stars:0;--w-dusk-sky:26,23,64 / 59,47,99 / 138,90,134 / 227,146,122 / 247,192,126;--w-dusk-sun:255,236,190;--w-dusk-clouds:255,244,232 / 255,226,205 / 240,210,220;--w-dusk-mote:255,246,220;--w-dusk-star:255,244,224;--w-dusk-tint:52,30,74;--w-dusk-tint-a:.74;--w-dusk-glow:.85;--w-dusk-stars:.45;--w-night-sky:8,12,34 / 16,24,58 / 30,40,86 / 52,62,110 / 86,98,140;--w-night-sun:200,215,255;--w-night-clouds:176,188,214 / 150,164,196 / 196,204,226;--w-night-mote:214,226,255;--w-night-star:235,240,255;--w-night-tint:22,28,60;--w-night-tint-a:.66;--w-night-glow:1;--w-night-stars:1;--path-line:255,232,185;--path-day:255,244,226;--path-candle:255,210,140;--path-gold:255,200,110;--path-silver:222,232,255;--path-sealed:255,240,220;--path-ring:255,220,160}
