@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-vietnamese-500-normal-Bos7Oy9U.woff2)format("woff2"),url(/assets/lexend-vietnamese-500-normal-EFAPmUTE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-ext-500-normal-Bo17xs96.woff2)format("woff2"),url(/assets/lexend-latin-ext-500-normal-DbCmXT_D.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-500-normal-Dl-X5nog.woff2)format("woff2"),url(/assets/lexend-latin-500-normal-D9x1QWTH.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-vietnamese-600-normal-Cr1ePs6O.woff2)format("woff2"),url(/assets/lexend-vietnamese-600-normal-BxEVPgxw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-latin-ext-600-normal-hDcqLAH9.woff2)format("woff2"),url(/assets/lexend-latin-ext-600-normal-BXtyp5LP.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-latin-600-normal-DdvlkEkX.woff2)format("woff2"),url(/assets/lexend-latin-600-normal-DSBzZxpA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lexend-vietnamese-700-normal-BrGlFDtO.woff2)format("woff2"),url(/assets/lexend-vietnamese-700-normal-NEp7hM5T.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lexend-latin-ext-700-normal-CcWyeg4T.woff2)format("woff2"),url(/assets/lexend-latin-ext-700-normal-iR1cPiNX.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lexend-latin-700-normal-DqO8md6r.woff2)format("woff2"),url(/assets/lexend-latin-700-normal-DVyJlN8t.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ink:#24312b;--ink-soft:#5f6f66;--ink-faint:#8b978f;--page:#f4f1e9;--surface:#fbfaf5;--surface-sunk:#eae5d8;--surface-raised:#fff;--line:#ded7c6;--line-soft:#ece7da;--sage:#6f8f7d;--sage-deep:#40614f;--sage-mid:#7fa896;--sage-soft:#dde8e0;--sage-wash:#eef4ef;--sage-ink:#fff;--alert:#c26a3f;--alert-deep:#9a4f2c;--alert-soft:#f7e5d8;--alert-ink:#fff;--critical:#a8422f;--critical-ink:#fff;--token:#d9a441;--token-deep:#a87c22;--token-soft:#f6ead0;--jar-glass:#a9dcda;--jar-glass-deep:#6fb9b6;--jar-rim:#3f7f7c;--jar-shine:#fff;--jar-shadow:#3f7f7c29;--jar-label:#5f8a86;--coin-face:#f2c250;--coin-edge:#d9992c;--coin-line:#a46c16;--coin-shine:#fff3d2;--ok:#4d7a58;--danger:#a8452f;--pastel-ink:#17383f;--pastel-ink-soft:#48666d;--pastel-page:#fbf7f3;--pastel-line:#f0e6df;--pastel-peach:#f8cbb0;--pastel-peach-deep:#f7c2a3;--pastel-peach-track:#e9ab86;--pastel-sky:#9ecff1;--pastel-sky-soft:#cbe6fa;--pastel-butter:#f5da7c;--pastel-butter-soft:#fcedb4;--pastel-bank-1:#6fcbb6;--pastel-bank-2:#f9a3bd;--pastel-bank-3:#8ec4f2;--pastel-bank-4:#9ed07f;--pastel-bank-5:#f9b489;--pastel-bank-6:#c6b2ec;--pastel-shadow:0 4px 16px #283c320f;--pastel-shadow-sm:0 2px 8px #283c320d;--radius-sm:8px;--radius:14px;--radius-lg:22px;--radius-pill:999px;--shadow:0 1px 2px #24312b0f, 0 10px 28px #24312b12;--shadow-lift:0 2px 6px #24312b1a, 0 18px 44px #24312b1f;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Lexend", "Inter", system-ui, sans-serif;--gap-xs:4px;--gap-sm:8px;--gap:16px;--gap-lg:24px;--gap-xl:40px;--display-unit:min(1.2vw, 2vh);--tabbar-height:62px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ink:#e8e6df;--ink-soft:#a6b0a8;--ink-faint:#7d8a83;--page:#171b19;--surface:#1e2422;--surface-sunk:#262d2a;--surface-raised:#232a27;--line:#333c38;--line-soft:#2a322e;--sage:#7fa993;--sage-deep:#a3c6b3;--sage-mid:#6f9a87;--sage-soft:#23332c;--sage-wash:#1d2622;--sage-ink:#10201b;--alert:#d98a5c;--alert-deep:#e0a37c;--alert-soft:#34261e;--alert-ink:#1a120c;--critical:#d3705a;--critical-ink:#1a0f0c;--token:#e2b45c;--token-deep:#f0cd8a;--token-soft:#2f2718;--jar-glass:#35635f;--jar-glass-deep:#58a29e;--jar-rim:#93cec9;--jar-shine:#d9f2ef;--jar-shadow:#00000061;--jar-label:#90b5b1;--coin-face:#e3b755;--coin-edge:#bb8b2d;--coin-line:#6e4b12;--coin-shine:#fff1cf;--ok:#7fb48b;--danger:#d3705a;--shadow:0 1px 2px #0006, 0 10px 28px #0000004d;--shadow-lift:0 2px 6px #00000073, 0 18px 44px #0006}}*{box-sizing:border-box}body{font-family:var(--font-ui);background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-soft);margin:0}.micro{font-size:.82rem}.error{color:var(--danger);padding:var(--gap-sm) var(--gap);background:var(--surface);border:1px solid var(--danger);border-radius:var(--radius);margin:0}.notice{background:var(--sage-wash);color:var(--ink);padding:var(--gap-sm) var(--gap);border-radius:var(--radius);border:1px solid var(--line-soft);margin:0}.notice-warn{background:var(--alert-soft);border-color:var(--alert);color:var(--alert-deep)}.empty{color:var(--ink-soft);padding:var(--gap-xl) 0;text-align:center}.link{color:var(--sage-deep);font-weight:500;text-decoration:none}.link:hover{text-decoration:underline}.back-link{margin-bottom:var(--gap-sm);display:inline-block}.tag{margin-left:var(--gap-xs);border-radius:var(--radius-pill);background:var(--surface-sunk);color:var(--ink-soft);vertical-align:middle;padding:1px 8px;font-size:.72rem;font-weight:500;display:inline-block}.tag-now{background:var(--sage-soft);color:var(--sage-deep)}.section-title{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 var(--gap-sm);font-size:.95rem;font-weight:600}.section-head{justify-content:space-between;align-items:baseline;gap:var(--gap);flex-wrap:wrap;display:flex}.section-foot{margin-top:var(--gap);gap:var(--gap-xs);flex-direction:column;display:flex}.button{font:inherit;min-height:44px;padding:var(--gap-sm) var(--gap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:var(--gap-xs);font-weight:500;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.button:hover{border-color:var(--sage)}.button:focus-visible,.input:focus-visible,.chip:focus-visible,.tab:focus-visible{outline:3px solid var(--sage-deep);outline-offset:2px}.button:disabled{opacity:.55;cursor:default}.button-primary{background:var(--sage-deep);border-color:var(--sage-deep);color:var(--sage-ink)}.button-primary:hover{background:var(--sage);border-color:var(--sage)}.button-quiet{color:var(--ink-soft);background:0 0;border-color:#0000}.button-quiet:hover{background:var(--surface-sunk);border-color:#0000}.button-danger{color:var(--danger)}.field{gap:var(--gap-xs);flex-direction:column;display:flex}.field-inline{min-width:180px}.field-small{max-width:130px}.field-tiny{max-width:84px}.field-label{color:var(--ink-soft);font-size:.85rem;font-weight:500}.field-hint{color:var(--ink-faint);font-size:.8rem;line-height:1.4}.input{font:inherit;min-height:44px;padding:var(--gap-sm) var(--gap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink)}.input:disabled{opacity:.55;cursor:default}.input-compact{min-height:38px;padding:var(--gap-xs) var(--gap-sm)}.input-large{min-height:52px;font-size:1.1rem}.input-code{font-family:var(--font-display);letter-spacing:.28em;text-transform:uppercase;font-size:1.4rem}.check{align-items:center;gap:var(--gap-sm);cursor:pointer;min-height:40px;display:flex}.sound-row{align-items:center;gap:var(--gap-sm);flex-wrap:wrap;display:flex}.sound-row .check{flex:12rem;min-width:0}.sound-plays{flex:none;min-height:40px;padding:6px 10px}.sound-test{border-color:var(--line);color:var(--ink);flex:none;padding:6px 14px}.sound-test:disabled{color:var(--ink-faint);border-color:var(--line-soft)}.tune-pick{margin:var(--gap-sm) 0 0 var(--gap)}.tune-pick .field-label{color:var(--ink-soft)}.tune-library{margin-top:var(--gap);padding-top:var(--gap);border-top:1px solid var(--line-soft)}.tune-library-title{margin:0 0 var(--gap-sm);font-size:.95rem;font-weight:600}.tune-list{margin:0 0 var(--gap);padding:0;list-style:none}.tune-row{align-items:center;gap:var(--gap-sm);padding:var(--gap-sm) 0;border-bottom:1px solid var(--line-soft);flex-wrap:wrap;display:flex}.tune-row:last-child{border-bottom:none}.tune-name{overflow-wrap:anywhere;flex:10rem;min-width:0}.tune-name-input{flex:10rem;min-width:0;min-height:40px;padding:6px 10px}.tune-meta{color:var(--ink-faint);font-variant-numeric:tabular-nums;flex:none}.tune-listen{border-color:var(--line);min-width:4.5rem;color:var(--ink);flex:none}.tune-delete{color:var(--danger)}.tune-upload{align-items:center;gap:var(--gap-sm);flex-wrap:wrap;display:flex}.tune-upload .is-disabled{opacity:.55;cursor:not-allowed}.tune-upload .field-hint{flex:14rem}.check input{width:20px;height:20px;accent-color:var(--sage-deep)}.chips{gap:var(--gap-sm);flex-wrap:wrap;display:flex}.chip{font:inherit;min-height:40px;padding:var(--gap-xs) var(--gap);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);cursor:pointer}.chip-on{background:var(--sage-soft);border-color:var(--sage);color:var(--sage-deep);font-weight:600}.disclosure{font:inherit;padding:var(--gap-xs) 0;color:var(--sage-deep);cursor:pointer;background:0 0;border:0;align-self:flex-start;font-weight:500}.inline-form{align-items:flex-end;gap:var(--gap);padding:var(--gap);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);flex-wrap:wrap;display:flex}.inline-form .field:first-child{flex:200px}.app{height:100dvh;min-height:100dvh;padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}.app-bar{align-items:center;gap:var(--gap);padding:var(--gap-sm) var(--gap);background:var(--surface);border-bottom:1px solid var(--line-soft);z-index:20;display:flex;position:sticky;top:0}.app-bar-brand{align-items:center;gap:var(--gap-sm);font-family:var(--font-display);min-width:0;margin-right:auto;font-weight:700;display:flex}.app-mark{background:var(--sage-deep);border-radius:6px;flex:none;width:18px;height:18px}.app-name{white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;overflow:hidden}.app-bar-user{align-items:center;gap:var(--gap-sm);display:flex}.app-main{min-height:0;padding:var(--gap);flex:auto;overflow-y:auto}body[data-page=coins] .app-main{padding:var(--gap-sm);overflow:hidden}.app-loading{place-items:center;min-height:40vh;display:grid}.app-loading:after{content:"";border:3px solid var(--line);border-top-color:var(--sage);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tabbar{z-index:30;background:var(--surface);border-top:1px solid var(--line-soft);padding-bottom:env(safe-area-inset-bottom,0);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:var(--tabbar-height);color:var(--ink-faint);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.72rem;font-weight:500;text-decoration:none;display:flex}.tab.active{color:var(--sage-deep)}.tab-icon{font-size:1.15rem;line-height:1}.centered-card{min-height:100vh;padding:var(--gap-lg);place-items:center;display:grid}.card{gap:var(--gap);width:min(420px,100%);padding:var(--gap-lg);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;display:flex}.card-title{font-family:var(--font-display);margin:0;font-size:1.4rem}.page{gap:var(--gap-lg);flex-direction:column;max-width:760px;margin:0 auto;display:flex}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--gap);flex-wrap:wrap;display:flex}.page-title{font-family:var(--font-display);margin:0 0 2px;font-size:1.5rem}.date-nav{align-items:center;gap:var(--gap-xs);display:flex}.now-card{padding:var(--gap-lg);background:var(--sage-wash);border:1px solid var(--sage-soft);border-radius:var(--radius-lg)}.now-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--sage-deep);margin:0;font-size:.8rem;font-weight:600}.now-title{font-family:var(--font-display);margin:var(--gap-xs) 0 var(--gap-sm);font-size:1.55rem;line-height:1.15}.now-countdown{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--sage-deep);margin:0;font-size:2.4rem;font-weight:700;line-height:1}.now-unit{color:var(--ink-soft);font-size:.95rem;font-weight:500}.quick-grid{gap:var(--gap-sm);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.quick-button{font:inherit;justify-content:center;align-items:flex-start;gap:var(--gap-xs);min-height:78px;padding:var(--gap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;flex-direction:column;font-weight:500;text-decoration:none;display:flex}.quick-button:hover{border-color:var(--sage)}.quick-button:disabled{opacity:.55;cursor:default}.quick-primary{background:var(--sage-deep);border-color:var(--sage-deep);color:var(--sage-ink)}.quick-icon{font-size:1.2rem;line-height:1}.alert-list,.item-list,.period-list,.student-list,.ledger,.roster,.store-list,.display-list,.events-list{gap:var(--gap-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.alert-row{justify-content:space-between;gap:var(--gap);padding:var(--gap-sm) 0;border-bottom:1px solid var(--line-soft);display:flex}.alert-when{color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.token-avatar{background:var(--sage-soft);width:42px;height:42px;color:var(--sage-deep);border-radius:50%;flex:none;place-items:center;font-size:1.2rem;font-weight:600;display:grid}.page-coins{gap:var(--gap-sm);max-width:none;height:100%;position:relative}.coin-head{justify-content:space-between;align-items:center;gap:var(--gap);flex:none;min-width:0;display:flex}.coin-head-titles{min-width:0}.coin-title{font-family:var(--font-display);margin:0;font-size:1.25rem;line-height:1.15}.coin-sub{color:var(--ink-soft);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:.85rem;line-height:1.2}.coin-manage{flex:none;position:relative}.coin-manage-wide{display:none}.coin-manage-more{font:inherit;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);width:44px;height:44px;color:var(--ink-soft);cursor:pointer;place-items:center;font-size:1.3rem;line-height:1;display:grid}.coin-manage-more:focus-visible{outline:3px solid var(--sage-deep);outline-offset:2px}.coin-manage-menu{top:calc(100% + var(--gap-xs));z-index:15;min-width:180px;padding:var(--gap-xs);background:var(--surface-raised);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-lift);position:absolute;right:0}.coin-manage-item{padding:var(--gap-sm) var(--gap);border-radius:var(--radius-sm);min-height:44px;color:var(--ink);line-height:28px;text-decoration:none;display:block}.coin-manage-item:hover,.coin-manage-item:focus-visible{background:var(--sage-wash)}.coin-notice{flex:none}.coin-grid{grid-template-columns:repeat(var(--coin-cols,2), minmax(0, 1fr));grid-template-rows:repeat(var(--coin-rows,6), minmax(var(--coin-row-min), 1fr));gap:var(--gap-sm);flex:auto;align-content:start;min-height:0;max-height:100%;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.coin-cell{min-width:0;min-height:0;display:flex}.coin-card{font:inherit;color:inherit;text-align:left;align-content:center;gap:2px var(--gap-sm);width:100%;min-width:0;padding:var(--gap-sm);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"avatar name""avatar balance""cta cta";transition:transform 90ms,background .2s,border-color .2s;display:grid}.coin-card:hover{border-color:var(--sage-mid)}.coin-card:focus-visible{outline:3px solid var(--sage-deep);outline-offset:2px}.coin-card:active{transform:scale(.97)}.coin-card:disabled{cursor:default;opacity:.72}.coin-card.is-flashing{animation:.38s ease-out coin-card-flash}@keyframes coin-card-flash{0%{background:var(--token-soft);border-color:var(--token)}to{background:var(--surface);border-color:var(--line-soft)}}.coin-card-flat{cursor:default}.coin-card-avatar{width:var(--coin-avatar);height:var(--coin-avatar);background:var(--sage-soft);color:var(--sage-deep);font-size:calc(var(--coin-avatar) * .45);border-radius:50%;flex:none;grid-area:avatar;align-self:center;place-items:center;font-weight:600;display:grid;overflow:hidden}.coin-card-name{font-size:var(--coin-name-size);text-overflow:ellipsis;white-space:nowrap;grid-area:name;align-self:end;min-width:0;font-weight:600;line-height:1.15;overflow:hidden}.coin-card-balance{align-self:start;align-items:center;gap:var(--gap-xs);grid-area:balance;min-width:0;display:flex;position:relative}.coin-card-count{font-family:var(--font-display);font-size:var(--coin-count-size);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.coin-card-cta{justify-content:center;align-items:center;gap:var(--gap-xs);min-height:44px;padding:0 var(--gap-sm);margin-top:var(--gap-xs);border-radius:var(--radius-pill);background:var(--sage-soft);color:var(--sage-deep);font-size:var(--coin-cta-size);white-space:nowrap;grid-area:cta;font-weight:600;line-height:1;display:flex;overflow:hidden}.coin-card-cta-text{text-overflow:ellipsis;overflow:hidden}.coin-card:active .coin-card-cta,.coin-card.is-flashing .coin-card-cta{background:var(--sage-mid);color:var(--sage-ink)}.coin-sprite{width:0;height:0;position:absolute;overflow:hidden}.coin-icon{flex:none;display:block}.coin-icon-balance{width:var(--coin-glyph-balance);height:auto}.coin-icon-cta{width:var(--coin-glyph-cta);height:auto}.coin-icon-hop{width:var(--coin-glyph-balance);pointer-events:none;height:auto;animation:.38s ease-out forwards coin-hop;position:absolute;top:0;left:0}@keyframes coin-hop{0%{opacity:0;transform:translateY(0)scale(.9)}35%{opacity:1}to{opacity:0;transform:translateY(-18px)scale(1.15)}}.coin-says{z-index:25;align-items:center;gap:var(--gap-xs);pointer-events:none;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.coin-toast{max-width:100%;padding:var(--gap-xs) var(--gap);border-radius:var(--radius-pill);background:var(--ink);color:var(--page);text-align:center;box-shadow:var(--shadow-lift);opacity:1;margin:0;font-size:.9rem;font-weight:600;transition:opacity .18s}.coin-toast:empty{display:none}.coin-toast-bad{background:var(--critical);color:var(--critical-ink);white-space:normal;font-weight:500}@media (width>=600px){.coin-manage-wide{display:inline-flex}.coin-manage-more{display:none}.coin-title{font-size:1.5rem}.coin-sub{font-size:.95rem}.coin-card{grid-template-areas:"avatar name""avatar balance""avatar cta"}}.coin-cell{container:coincard/size}.coin-card{--coin-avatar:38px;--coin-name-size:.92rem;--coin-count-size:1.2rem;--coin-cta-size:.82rem;--coin-glyph-balance:17px;--coin-glyph-cta:13px}@container coincard (height<=99px){.coin-card{padding:var(--gap-xs) var(--gap-sm);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"avatar name balance""avatar cta cta";align-items:center}.coin-card-name{align-self:center}.coin-card-balance{justify-content:flex-end;align-self:center}.coin-card-cta{margin-top:2px}}@container coincard (height>=100px){.coin-card{--coin-avatar:44px;--coin-name-size:.95rem;--coin-count-size:1.3rem;--coin-cta-size:.85rem;--coin-glyph-balance:18px;--coin-glyph-cta:14px}}@container coincard (height>=116px){.coin-card{--coin-avatar:52px;--coin-name-size:1.05rem;--coin-count-size:1.55rem;--coin-cta-size:.9rem;--coin-glyph-balance:21px;--coin-glyph-cta:15px}}@container coincard (height>=140px){.coin-card{--coin-avatar:60px;--coin-name-size:1.15rem;--coin-count-size:1.8rem;--coin-cta-size:.98rem;--coin-glyph-balance:24px;--coin-glyph-cta:17px}}@container coincard (height>=200px){.coin-card{padding:var(--gap-sm) var(--gap);--coin-avatar:clamp(60px, min(34cqh, 55cqw), 200px);--coin-name-size:clamp(1.15rem, 7cqh, 2.8rem);--coin-count-size:clamp(1.8rem, 15cqh, 5rem);--coin-cta-size:clamp(.98rem, 4.5cqh, 1.5rem);--coin-glyph-balance:clamp(24px, 10cqh, 60px);--coin-glyph-cta:clamp(17px, 5cqh, 30px);grid-template-columns:minmax(0,1fr);grid-template-areas:"avatar""name""balance""cta";align-content:center;justify-items:center;gap:clamp(2px,1.2cqh,14px) 0}.coin-card-name{text-align:center;place-self:center stretch}.coin-card-balance{justify-content:center;align-self:center}.coin-card-cta{width:100%;min-height:clamp(44px,18cqh,96px);margin-top:clamp(4px,2cqh,16px)}}@container coincard (width<=170px){.coin-card{--coin-cta-size:.78rem}.coin-card-cta{padding:0 var(--gap-xs)}}.student-row{align-items:center;gap:var(--gap);padding:var(--gap-sm) var(--gap);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);color:var(--ink);text-decoration:none;display:flex}.student-name{flex:1;font-weight:500}.student-balance{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink-soft);font-weight:600}.student-chevron{color:var(--ink-faint)}.student-hero{align-items:center;gap:var(--gap-sm);padding:var(--gap-lg);background:var(--sage-wash);border:1px solid var(--sage-soft);border-radius:var(--radius-lg);flex-direction:column;display:flex}.student-hero-avatar{font-size:2.4rem}.student-hero-name{font-family:var(--font-display);margin:0;font-size:1.6rem}.student-actions{gap:var(--gap-sm);flex-wrap:wrap;display:flex}.ledger-row{align-items:center;gap:var(--gap);padding:var(--gap-sm) var(--gap);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);display:flex}.ledger-amount{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--ok);min-width:3.5ch;font-weight:700}.ledger-negative{color:var(--ink-soft)}.ledger-body{flex-direction:column;flex:1;display:flex}.ledger-what{font-weight:500}.ledger-meta{color:var(--ink-faint);font-size:.8rem}.ledger-row.ledger-reversal{background:var(--surface-sunk)}.item,.period{align-items:center;gap:var(--gap);padding:var(--gap-sm) var(--gap);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);display:flex}.item-body,.period-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.item-text{margin:0;font-weight:500}.item-meta{gap:var(--gap-sm);color:var(--ink-soft);flex-wrap:wrap;margin:0;font-size:.82rem;display:flex}.item-completed{opacity:.6}.item-actions,.period-actions{gap:var(--gap-xs);flex:none;display:flex}.period-when{font-variant-numeric:tabular-nums;color:var(--ink-soft);flex:none;min-width:11ch;font-size:.9rem}.period-label{font-weight:500}.period-current{border-color:var(--sage);background:var(--sage-wash)}.settings-nav{gap:var(--gap-xs);flex-wrap:wrap;display:flex}.settings-link{padding:var(--gap-xs) var(--gap);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line-soft);color:var(--ink-soft);align-items:center;min-height:40px;font-weight:500;text-decoration:none;display:inline-flex}.settings-link.active{background:var(--sage-soft);border-color:var(--sage);color:var(--sage-deep)}.settings-panel{gap:var(--gap);flex-direction:column;display:flex}.settings-actions{gap:var(--gap-sm);flex-wrap:wrap;display:flex}.roster-row,.display-row{align-items:center;gap:var(--gap);padding:var(--gap-sm) var(--gap);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);display:flex}.roster-name{flex:1;font-weight:500}.roster-balance{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.roster-actions{gap:2px;display:flex}.roster-inactive{opacity:.6}.schedule-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);overflow:hidden}.schedule-head{font:inherit;align-items:center;gap:var(--gap);width:100%;padding:var(--gap);color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;display:flex}.schedule-name{font-family:var(--font-display);font-size:1.05rem;font-weight:600}.schedule-tags{align-items:center;gap:var(--gap-xs);flex-wrap:wrap;flex:1;font-size:.85rem;display:flex}.schedule-body{gap:var(--gap);padding:0 var(--gap) var(--gap);flex-direction:column;display:flex}.staff-card{padding:var(--gap);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);gap:var(--gap-sm);flex-direction:column;display:flex}.staff-head{justify-content:space-between;align-items:flex-start;gap:var(--gap);flex-wrap:wrap;display:flex}.staff-name{margin:0;font-weight:600}.staff-actions{gap:var(--gap-sm);align-items:center;display:flex}.staff-caps{gap:var(--gap-xs);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.store-manage{align-items:center;gap:var(--gap);width:100%;padding:var(--gap-sm) var(--gap);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);font:inherit;color:var(--ink);text-align:left;cursor:pointer;display:flex}.store-manage-off{opacity:.6}.store-manage{flex-wrap:wrap}.store-manage .store-body{flex:8rem}.store-manage .store-actions{margin-left:auto}.store-icon{flex:none;place-items:center;width:2.25rem;height:2.25rem;font-size:1.5rem;line-height:1;display:grid}@media (width>=600px){.store-icon{width:2.75rem;height:2.75rem}}.store-icon-image img{object-fit:contain;width:100%;height:100%;display:block}.store-icon-button{border-radius:var(--radius);cursor:pointer;background:0 0;border:0;flex:none;padding:0}.store-icon-button:focus-visible{outline:2px solid var(--sage);outline-offset:2px}.field-store-icon{flex:none}.store-icon-choose{align-items:center;gap:var(--gap-sm);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-soft);cursor:pointer;font:inherit;padding:2px 4px;display:flex}.store-icon-choose:hover{border-color:var(--sage-mid)}.store-icon-choose:focus-visible{outline:2px solid var(--sage);outline-offset:2px}.store-icon-choose .store-icon{width:2rem;height:2rem;font-size:1.25rem}.store-icon-choose-label{padding-right:var(--gap-sm);font-size:.9rem}.sheet-store-icons{width:100%;max-width:34rem}.store-icon-grid{gap:var(--gap-sm);margin-bottom:var(--gap);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));display:grid}.store-icon-tile{padding:var(--gap-sm) 4px;border-radius:var(--radius);color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;flex-direction:column;align-items:center;gap:4px;display:flex;position:relative}.store-icon-tile img,.store-icon-tile-emoji{width:64px;height:64px}.store-icon-tile img{object-fit:contain}.store-icon-tile-emoji{place-items:center;font-size:2.5rem;line-height:1;display:grid}.store-icon-tile-label{font-size:.85rem}.store-icon-tile:hover{background:var(--sage-wash)}.store-icon-tile:focus-visible{outline:2px solid var(--sage);outline-offset:2px}.store-icon-tile.is-selected{border-color:var(--sage-deep);background:var(--sage-soft)}.store-icon-tile .avatar-tile-check{top:4px;bottom:auto;right:4px}.store-body{flex-direction:column;flex:1;min-width:0;display:flex}.store-name{font-weight:500}.store-desc,.store-tags{color:var(--ink-soft);font-size:.82rem}.store-cost{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--token-deep);flex-direction:column;align-items:flex-end;font-weight:700;display:flex}.store-actions{gap:2px;display:flex}.sheet.sheet-shop{gap:0;width:min(880px,100%);padding:0;overflow:hidden}.shop-top{gap:var(--gap-sm);padding:var(--gap) var(--gap) var(--gap-sm);flex-direction:column;flex:none;display:flex}.shop-head{justify-content:space-between;align-items:flex-start;gap:var(--gap);display:flex}.shop-title{font-size:1.45rem;line-height:1.15}.shop-close{background:var(--surface-sunk);width:44px;height:44px;color:var(--ink-soft);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;font-size:1.7rem;line-height:1;display:grid}.shop-close:hover{background:var(--line);color:var(--ink)}.shop-close:focus-visible{outline:2px solid var(--sage);outline-offset:2px}.shop-balance{align-items:center;gap:var(--gap);padding:var(--gap-sm) var(--gap);background:var(--sage-wash);border:1px solid var(--sage-soft);border-radius:var(--radius-lg);margin:0;display:flex}.shop-balance-coin{width:42px;height:auto}.shop-balance-text{font-family:var(--font-display);color:var(--sage-deep);flex-wrap:wrap;align-items:baseline;gap:.3em;font-size:1.15rem;display:flex}.shop-balance-number{font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:700;line-height:1}.shop-scroll{gap:var(--gap-lg);min-height:0;padding:var(--gap) var(--gap) var(--gap-lg);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.shop-section{gap:var(--gap);flex-direction:column;display:flex}.shop-section-head{justify-content:space-between;align-items:baseline;gap:var(--gap);flex-wrap:wrap;display:flex}.shop-section-title{font-family:var(--font-display);color:var(--sage-deep);margin:0;font-size:1.3rem}.shop-section-hint{color:var(--ink-soft);margin:0}.shop-grid{gap:var(--gap-sm);margin:0;padding:0;list-style:none;display:grid}.shop-grid>li{min-width:0}.shop-empty{margin:0}.shop-card{align-items:center;gap:var(--gap);width:100%;min-height:86px;padding:var(--gap-sm) var(--gap);background:var(--surface-raised);border:2px solid var(--line-soft);border-radius:var(--radius-lg);font:inherit;color:var(--ink);text-align:left;cursor:pointer;min-width:0;transition:border-color .15s,background .15s;display:flex;position:relative}.shop-card:hover:not(:disabled){border-color:var(--sage-mid)}.shop-card:focus-visible{outline:3px solid var(--sage);outline-offset:2px}.shop-card-on,.shop-card-on:hover{border-color:var(--sage-deep);background:var(--sage-wash)}.shop-card-later{background:var(--page);cursor:default;border-color:#0000}.shop-card-later .shop-card-icon img{filter:saturate(.7)}.shop-card-icon{flex:none;place-items:center;width:56px;height:56px;font-size:2.4rem;line-height:1;display:grid}.shop-card-body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.shop-card-name{font-family:var(--font-display);overflow-wrap:break-word;font-size:1.15rem;font-weight:600;line-height:1.2}.shop-card-why{color:var(--ink-soft);font-size:.95rem}.shop-card-short{color:var(--ink);font-weight:700}.shop-card-price{border-radius:var(--radius-pill);background:var(--token-soft);color:var(--ink);font-family:var(--font-display);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:6px;padding:6px 12px;font-size:1.3rem;font-weight:700;display:flex}.shop-card-later .shop-card-price{background:var(--surface-sunk);color:var(--ink-soft)}.shop-card-coin{width:20px;height:auto}.shop-card-check{background:var(--sage-deep);width:30px;height:30px;color:var(--sage-ink);box-shadow:var(--pastel-shadow-sm);border-radius:50%;place-items:center;font-size:.95rem;font-weight:700;display:grid;position:absolute;top:-8px;right:-6px}.shop-other{gap:var(--gap-sm);padding-top:var(--gap);border-top:1px solid var(--line-soft);flex-direction:column;display:flex}.shop-other-title{font-family:var(--font-ui);color:var(--ink-soft);margin:0;font-size:1rem;font-weight:600}.shop-other-fields{gap:var(--gap-sm);display:grid}.shop-short{color:var(--alert-deep);margin:0}.shop-overdraft{align-items:flex-start}.shop-checkout{align-items:center;gap:var(--gap);padding:var(--gap) var(--gap) calc(var(--gap) + env(safe-area-inset-bottom,0));background:var(--sage-wash);border-top:1px solid var(--sage-soft);flex-wrap:wrap;flex:none;display:flex}.shop-checkout-what{align-items:center;gap:var(--gap-sm);flex:11rem;min-width:0;display:flex}.shop-checkout-icon{flex:none;place-items:center;width:46px;height:46px;font-size:2rem;line-height:1;display:grid}.shop-checkout-lines{flex-direction:column;min-width:0;display:flex}.shop-checkout-name{font-family:var(--font-display);overflow-wrap:break-word;font-size:1.1rem;font-weight:600}.shop-checkout-cost{color:var(--ink-soft)}.shop-checkout-after{font-variant-numeric:tabular-nums}.shop-checkout-idle{color:var(--ink-soft);font-weight:500}.shop-spend{min-height:60px;padding:var(--gap-sm) var(--gap-lg);border-radius:var(--radius-pill);font-family:var(--font-display);gap:var(--gap-sm);flex:14rem;font-size:1.2rem;font-weight:700}.shop-spend:disabled,.shop-spend:disabled:hover{opacity:1;background:var(--surface-sunk);border-color:var(--line);color:var(--ink-soft)}.shop-spend-coin{width:22px;height:auto}@media (width>=720px){.shop-top{padding:var(--gap-lg) var(--gap-lg) var(--gap-sm)}.shop-scroll{padding:var(--gap) var(--gap-lg) var(--gap-lg)}.shop-grid,.shop-other-fields{gap:var(--gap);grid-template-columns:1fr 1fr}.shop-card-icon{width:64px;height:64px;font-size:2.8rem}.shop-checkout{padding:var(--gap) var(--gap-lg) calc(var(--gap) + env(safe-area-inset-bottom,0));flex-wrap:nowrap}.shop-spend{flex:0 auto}}@media (height<=700px){.sheet.sheet-shop{max-height:96vh}.shop-top{padding-top:var(--gap-sm)}.shop-scroll{gap:var(--gap);padding-top:var(--gap-sm)}.shop-card{min-height:72px}.shop-card-icon{width:48px;height:48px}}.display-row{align-items:stretch;gap:var(--gap-sm);flex-direction:column}.display-card-head{align-items:center;gap:var(--gap);display:flex}.display-row-simulating{border-color:var(--sage-mid);background:var(--sage-wash)}.display-row-online{box-shadow:inset 3px 0 0 var(--ok)}.display-row-offline{background:var(--surface-sunk);border-style:dashed;border-color:var(--ink-faint);box-shadow:inset 3px 0 0 var(--ink-faint)}.display-row-offline .display-name{color:var(--ink-soft)}.display-state-icon{width:22px;height:22px;color:var(--ink-faint);flex:none}.display-row-online .display-state-icon{color:var(--ok)}.display-row-simulating .display-state-icon{color:var(--sage-mid)}.display-sim{align-items:center;gap:var(--gap);flex-wrap:wrap;display:flex}.display-sim-what{flex-direction:column;flex:12rem;display:flex}.display-actions{justify-content:flex-end;display:flex}.display-lines{flex-direction:column;flex:1;min-width:0;display:flex}.display-name{font-weight:500}.display-rename{gap:var(--gap-sm);flex-direction:column;display:flex}.display-rename .input{width:100%}.display-rename-actions{gap:var(--gap-sm);display:flex}.display-hint{color:var(--alert-deep)}.dot{background:var(--ink-faint);border-radius:50%;flex:none;width:10px;height:10px}.dot-on{background:var(--ok)}.sheet-backdrop{z-index:40;background:#24312b66;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.sheet{gap:var(--gap);width:min(560px,100%);max-height:88vh;padding:var(--gap-lg) var(--gap) calc(var(--gap-lg) + env(safe-area-inset-bottom,0));background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lift);flex-direction:column;display:flex;overflow-y:auto}.sheet-narrow{border-radius:var(--radius-lg);max-width:420px;margin:auto}.sheet-head{justify-content:space-between;align-items:center;gap:var(--gap);display:flex}.sheet-title{font-family:var(--font-display);margin:0;font-size:1.2rem}.sheet-form,.sheet-more{gap:var(--gap);flex-direction:column;display:flex}.sheet-actions{justify-content:flex-end;gap:var(--gap-sm);flex-wrap:wrap;display:flex}.button-name{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:12rem;display:inline-block;overflow:hidden}@media (width>=640px){.sheet-backdrop{padding:var(--gap-lg);align-items:center}.sheet{border-radius:var(--radius-lg)}}@media (width>=900px){.app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:200px 1fr;padding-bottom:0;display:grid}.app-bar{grid-area:1/1/auto/-1}.tabbar{border-top:0;border-right:1px solid var(--line-soft);padding:var(--gap) var(--gap-sm);align-content:start;gap:var(--gap-xs);grid-area:2/1;grid-template-columns:1fr;position:static}.app-main{min-width:0;padding:var(--gap-lg);grid-area:2/2}body[data-page=coins] .app-main{padding:var(--gap)}.tab{justify-content:flex-start;gap:var(--gap-sm);min-height:44px;padding:0 var(--gap);border-radius:var(--radius);flex-direction:row;font-size:.95rem}.tab.active{background:var(--sage-soft)}}.display{--display-page:var(--pastel-page);--display-surface:var(--pastel-sky-soft);--display-ink:var(--pastel-ink);--display-ink-soft:var(--pastel-ink-soft);--display-line:var(--pastel-line);--display-accent:var(--pastel-ink);--display-accent-soft:var(--pastel-sky);--display-stage:var(--pastel-peach);--display-stage-soft:var(--pastel-peach);--display-rail-a:var(--pastel-sky);--display-rail-a-soft:var(--pastel-sky-soft);--display-rail-b:var(--pastel-butter);--display-rail-b-soft:var(--pastel-butter-soft);--display-banks:var(--pastel-peach-deep);--display-wheel-track:var(--pastel-peach-track);--token-bar-h:0px;height:100vh;padding:calc(var(--display-unit) * 1.3) calc(var(--display-unit) * 2) calc(var(--display-unit) * 1.7);gap:calc(var(--display-unit) * 1.4);background:var(--display-page);color:var(--display-ink);font-family:var(--font-display);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:relative;overflow:hidden}.display-booting,.display-pairing{grid-template-rows:1fr;place-items:center}.display-status{font-size:calc(var(--display-unit) * 2.4);color:var(--display-ink-soft)}.display-attendance{--display-page:#fbdede;--display-surface:#f9caca;--display-accent:#a51d1d;--display-accent-soft:#f4b3b3;--display-line:#e79a9a;--display-ink:#3a1a1a;--display-ink-soft:#7a5252;--display-stage:#f7c0c0;--display-stage-soft:#f7c0c0;--display-rail-a:#f0a4a4;--display-rail-a-soft:#f7c8c8;--display-rail-b:#f0a4a4;--display-rail-b-soft:#f7c8c8;--display-banks:#f4b2b2;--display-wheel-track:#e89191}.display-cleanup{--display-page:#f8e6d3;--display-surface:#f6d9bd;--display-accent:#9a4f2c;--display-accent-soft:#f0c69f;--display-line:#e3b083;--display-stage:#f5cfa8;--display-stage-soft:#f5cfa8;--display-rail-a:#eeb87f;--display-rail-a-soft:#f6d8b6;--display-rail-b:#eeb87f;--display-rail-b-soft:#f6d8b6;--display-banks:#f1c496;--display-wheel-track:#e4a768}.digit-slot{text-align:center;width:1ch;display:inline-block}.display-head{align-items:center;gap:calc(var(--display-unit) * 1.1);padding:0 calc(var(--display-unit) * .6);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);font-weight:600;display:grid}.head-brand{justify-content:flex-start;justify-self:stretch;align-items:center;gap:calc(var(--display-unit) * .9);min-width:0;padding-right:calc(var(--display-unit) * .8);display:flex}.head-mark{height:calc(var(--display-unit) * 4.3);flex:none;width:auto}.head-name{flex-direction:column;min-width:0;line-height:1;display:flex}.head-name-room{font-size:calc(var(--display-unit) * 1.95);color:var(--display-ink);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:700;line-height:1.3;overflow:hidden}.head-when{justify-self:center;align-items:center;gap:calc(var(--display-unit) * 1);font-size:calc(var(--display-unit) * 1.55);letter-spacing:.06em;white-space:nowrap;margin:0;display:flex}.head-weekday{color:var(--display-ink-soft);text-transform:uppercase;font-weight:700}.head-date{color:var(--display-ink);text-transform:uppercase;font-weight:700}.head-clock{text-align:right;font-size:calc(var(--display-unit) * 1.95);color:var(--display-ink);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:stretch;margin:0;font-weight:700}.head-sep{width:2px;height:calc(var(--display-unit) * 2.2);background:var(--display-line);border-radius:2px;flex:none}.display-body{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:var(--rail-rows,minmax(calc(var(--display-unit) * 12), 1fr) auto);gap:calc(var(--display-unit) * 1.4);min-height:0;display:grid}.stage{min-height:0;padding:calc(var(--display-unit) * 2);background:var(--display-stage);border-radius:calc(var(--display-unit) * 2.2);box-shadow:var(--pastel-shadow);grid-area:1/1/-1;place-items:center;display:grid;overflow:hidden}.stage-main,.stage-quiet{align-items:center;gap:calc(var(--display-unit) * 1);text-align:center;flex-direction:column;max-width:100%;min-height:0;max-height:100%;display:flex}.stage-eyebrow{font-size:calc(var(--display-unit) * 1.4);letter-spacing:.18em;text-transform:uppercase;color:var(--display-ink-soft);margin:0;font-weight:600}.stage-heading{justify-content:center;align-items:center;gap:calc(var(--display-unit) * .9);flex:none;min-width:0;max-width:100%;display:flex}.stage-icon{width:calc(var(--display-unit) * 8);height:calc(var(--display-unit) * 8);object-fit:contain;flex:none}.stage-title{font-size:calc(var(--display-unit) * 3.7);text-wrap:balance;min-width:0;margin:0;font-weight:700;line-height:1.06}.stage-icon+.stage-title{text-align:left}.stage-art{width:auto;max-width:100%;height:auto;max-height:min(calc(var(--display-unit) * 20), 42vh);object-fit:contain;flex:0 auto;min-height:0;display:block}.stage-quiet{justify-content:center;gap:calc(var(--display-unit) * 1.2);width:100%;height:100%;min-height:0}.stage-sub,.stage-next{font-size:calc(var(--display-unit) * 1.6);color:var(--display-ink-soft);margin:0}.cleanup-title{font-size:min(calc(var(--display-unit) * 6.5), 11vw);letter-spacing:.02em;text-transform:uppercase;color:var(--display-accent);margin:0;font-weight:700;line-height:1}.attendance-title{font-size:min(calc(var(--display-unit) * 8), 6vw);letter-spacing:.02em;color:var(--display-accent);margin:0;font-weight:700;line-height:1}.stage-attendance{gap:calc(var(--display-unit) * 2)}.wheel{place-items:center;display:grid;position:relative;container-type:size}.wheel-hero{--wheel-size:min(calc(var(--display-unit) * 24), calc(100vh - var(--token-bar-h,0px) - var(--display-unit) * 23.3));width:var(--wheel-size);height:var(--wheel-size)}.wheel-secondary{--wheel-size:min(calc(var(--display-unit) * 14), calc(100vh - var(--token-bar-h,0px) - var(--display-unit) * 16));width:var(--wheel-size);height:var(--wheel-size)}.wheel-svg{width:100%;height:100%;position:absolute;inset:0}.wheel-track{fill:none;stroke:var(--display-wheel-track);stroke-width:7px}.wheel-arc{fill:none;stroke:var(--display-accent);stroke-width:7px;stroke-linecap:round;transition:stroke-dasharray .9s linear,stroke .6s}.wheel-calm .wheel-arc{stroke:#6f8f7d}.wheel-warm .wheel-arc{stroke:#c9954a}.wheel-alert .wheel-arc{stroke:#c26a3f}.wheel-paused .wheel-arc{stroke:var(--display-ink-soft)}.wheel-face{text-align:center;position:relative}.wheel-countdown{font-size:calc(var(--wheel-size) * .21);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}@supports (container-type:size){.wheel-countdown{font-size:21cqh}.wheel-label{font-size:max(4.6cqh, calc(var(--display-unit) * .95))}}.wheel-label{margin-top:calc(var(--display-unit) * .4);font-size:max(calc(var(--wheel-size) * .046), calc(var(--display-unit) * .95));letter-spacing:.12em;text-transform:uppercase;color:var(--display-ink-soft)}.wheel-secondary .wheel-label{letter-spacing:.08em}.rail-card{gap:calc(var(--display-unit) * .55);padding:calc(var(--display-unit) * .8);border-radius:calc(var(--display-unit) * 2.2);box-shadow:var(--pastel-shadow);flex-direction:column;min-height:0;display:flex;overflow:hidden}.rail-head{align-items:center;gap:calc(var(--display-unit) * 1);flex:none;display:flex}.rail-icon{width:calc(var(--display-unit) * 2.2);height:calc(var(--display-unit) * 2.2);border-radius:calc(var(--display-unit) * .8);color:var(--display-ink);flex:none;place-items:center;display:grid}.rail-icon svg{width:62%;height:62%}.rail-body{gap:calc(var(--display-unit) * .45);padding:calc(var(--display-unit) * .55) calc(var(--display-unit) * 1);border-radius:calc(var(--display-unit) * 1.5);flex-direction:column;min-height:0;display:flex;overflow:hidden}.rail-quiet{justify-content:center;align-items:center;gap:calc(var(--display-unit) * 1.4);flex-direction:row;min-height:0;display:flex}.rail-quiet-art{height:calc(var(--display-unit) * 3.9);object-fit:contain;flex:0 auto;width:auto;min-width:0;max-width:34%}.events{background:var(--display-rail-a);--events-scale:1;--event-unit:calc(var(--display-unit) * var(--events-scale));grid-area:1/2}.events .events-list{gap:calc(var(--event-unit) * .45)}.events .rail-icon{background:var(--display-rail-a-soft)}.events .rail-body{background:var(--display-rail-a-soft);flex:auto}.events-heading{font-size:calc(var(--display-unit) * 1.55);letter-spacing:.1em;text-transform:uppercase;color:var(--display-ink);min-width:0;margin:0;font-weight:700;line-height:1.1}.events-empty{font-size:calc(var(--display-unit) * 1.9);color:var(--display-ink);min-width:0;margin:0;line-height:1.25}.event{align-items:flex-start;gap:calc(var(--event-unit) * .9);padding-bottom:calc(var(--event-unit) * .61);box-shadow:inset 0 calc(var(--event-unit) * -.11) 0 var(--display-rail-a);font-size:calc(var(--event-unit) * 1.4);flex:none;line-height:1.2;display:flex}.event:last-child{padding-bottom:calc(var(--event-unit) * .5);box-shadow:none}.event-mark{font-size:calc(var(--event-unit) * 1.5);flex:none}.event-icon{width:calc(var(--event-unit) * 2.4);height:calc(var(--event-unit) * 2.4);object-fit:contain;margin-top:calc(var(--event-unit) * -.2);flex:none}.event-body{align-items:baseline;column-gap:calc(var(--event-unit) * .8);flex-flow:wrap;flex:1;min-width:0;display:flex}.event-who{font-weight:700}.event-meta{gap:calc(var(--event-unit) * .8);font-size:calc(var(--event-unit) * 1.15);color:var(--display-ink-soft);flex-wrap:wrap;line-height:1.25;display:flex}.event-completed{opacity:.5}.event-state{font-size:calc(var(--event-unit) * 1.1);text-transform:uppercase;letter-spacing:.1em;color:var(--display-ink-soft);flex:none}.event-state-now{color:var(--display-accent);font-weight:700}.placement-list,.placement-rows{margin:0;padding:0;list-style:none}.placement-list{gap:var(--gap);flex-direction:column;display:flex}.placement-rows{gap:var(--gap-xs);flex-direction:column;display:flex}.weekday-heading{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 var(--gap-xs);font-size:.85rem;font-weight:600}.placement-row{align-items:center;gap:var(--gap-sm);min-height:44px;padding:var(--gap-sm);background:var(--surface-sunk);border-radius:var(--radius);display:flex}.placement-body{flex-direction:column;flex:1;min-width:0;display:flex}.placement-where{font-weight:500}.placement-group{align-items:center;gap:var(--gap-sm);min-height:44px;padding:var(--gap-sm);background:var(--surface-sunk);border-radius:var(--radius);display:flex}.placement-who{color:var(--ink-soft);font-weight:400}.placement-days{gap:var(--gap-xs);margin-top:var(--gap-xs);flex-wrap:wrap;display:flex}.placement-days .chip{min-height:32px;padding:2px var(--gap-sm);font-size:.8rem}.chip-quiet{color:var(--ink-soft);background:0 0;border-style:dashed}.placement-editor{gap:var(--gap);flex-direction:column;display:flex}.field-row{gap:var(--gap);flex-wrap:wrap;display:flex}.field-row .field{flex:8rem}.field-actions{justify-content:flex-end;gap:var(--gap-sm);display:flex}.placement-when{color:var(--ink-soft);font-size:.85rem}.placement-anchor{border:0;margin:0;padding:0}.field-pair{gap:var(--gap-sm);flex-wrap:wrap;display:flex}.field-pair .field{flex:130px}.whereabouts{background:var(--display-rail-b);--whereabouts-scale:1;--whereabouts-entry-unit:calc(var(--display-unit) * var(--whereabouts-scale));grid-area:2/2}.whereabouts .rail-icon{background:var(--display-rail-b-soft)}.whereabouts .rail-body{background:var(--display-rail-b-soft);flex:auto}.whereabouts-heading{font-size:calc(var(--display-unit) * 1.55);letter-spacing:.1em;text-transform:uppercase;color:var(--display-ink);min-width:0;margin:0;font-weight:700;line-height:1.1}.whereabouts-group{margin:calc(var(--display-unit) * .3) 0 0;font-size:calc(var(--display-unit) * 1.1);letter-spacing:.14em;text-transform:uppercase;color:var(--display-ink-soft);font-weight:700}.whereabouts-list{gap:calc(var(--whereabouts-entry-unit) * .25);flex-direction:column;flex:none;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.whereabouts-list-split{column-count:var(--out-columns,2);column-gap:calc(var(--whereabouts-entry-unit) * 1);display:block}.whereabouts-list-split .whereabouts-out{break-inside:avoid;margin-bottom:calc(var(--whereabouts-entry-unit) * .25)}.whereabouts-out{justify-content:space-between;align-items:baseline;gap:0 calc(var(--whereabouts-entry-unit) * .7);font-size:calc(var(--whereabouts-entry-unit) * 1.25);flex-wrap:wrap;flex:none;line-height:1.15;display:flex}.whereabouts-name{flex:none;font-weight:700}.whereabouts-where{color:var(--display-ink-soft);font-size:calc(var(--whereabouts-entry-unit) * 1.1);text-align:right;overflow-wrap:break-word;flex:none;max-width:100%;margin-left:auto}.whereabouts-back{white-space:nowrap}.whereabouts-all-in,.whereabouts-names,.whereabouts-more{font-size:calc(var(--display-unit) * 1.3);color:var(--display-ink-soft);margin:0}.whereabouts-all-in{font-size:calc(var(--display-unit) * 1.9);color:var(--display-ink);min-width:0;line-height:1.25}.whereabouts-names{color:var(--display-ink);line-height:1.25}.whereabouts-foot{justify-content:space-between;align-items:baseline;gap:calc(var(--display-unit) * 1);padding-top:calc(var(--display-unit) * .4);border-top:2px solid var(--display-rail-b);flex:none;min-width:0;margin:0;display:flex}.whereabouts-here{align-items:baseline;gap:calc(var(--display-unit) * .6);min-width:0;display:flex;overflow:hidden}.whereabouts-foot .whereabouts-group{flex:none;margin:0}.whereabouts-foot .whereabouts-names{overflow-wrap:break-word;min-width:0;margin:0}.whereabouts-more{flex:none;margin:0}.display-tokens{--token-bar-h:calc(var(--display-unit) * 5.3);--bank-card-max:calc(var(--display-unit) * 12)}.token-bar{align-items:stretch;gap:calc(var(--display-unit) * .9);min-width:0;display:flex}.token-bar-label{justify-content:center;align-items:center;gap:calc(var(--display-unit) * .6);padding:calc(var(--display-unit) * .5) calc(var(--display-unit) * .7);background:var(--display-banks);border-radius:calc(var(--display-unit) * 1.4);box-shadow:var(--pastel-shadow);flex:none;display:flex}.token-bar-coin{width:calc(var(--display-unit) * 2.2);flex:none;height:auto}.token-bar-heading{font-size:calc(var(--display-unit) * 1.15);letter-spacing:.1em;text-transform:uppercase;color:var(--display-ink);text-align:center;margin:0;font-weight:700;line-height:1.15}.token-bar-list{grid-template-columns:repeat(var(--bank-columns,10), minmax(0, var(--bank-card-max)));justify-content:center;gap:calc(var(--display-unit) * .5);flex:1;grid-auto-rows:1fr;min-width:0;margin:0;padding:0;list-style:none;display:grid}.token-bar-item{justify-content:center;align-items:center;column-gap:calc(var(--display-unit) * .35);padding:calc(var(--display-unit) * .3);border-radius:calc(var(--display-unit) * 1);box-shadow:var(--pastel-shadow-sm);grid-template-rows:auto auto;grid-template-columns:auto minmax(0,max-content);row-gap:0;min-width:0;display:grid}.bank-tone-0{background:var(--pastel-bank-1)}.bank-tone-1{background:var(--pastel-bank-2)}.bank-tone-2{background:var(--pastel-bank-3)}.bank-tone-3{background:var(--pastel-bank-4)}.bank-tone-4{background:var(--pastel-bank-5)}.bank-tone-5{background:var(--pastel-bank-6)}.token-bar-avatar{width:calc(var(--display-unit) * 2.1);height:calc(var(--display-unit) * 2.1);color:var(--display-ink);font-size:calc(var(--display-unit) * 1.1);background:#fff9;border-radius:50%;flex:none;grid-row:1/3;place-items:center;font-weight:600;line-height:1;display:grid}.token-bar-figure{align-items:center;gap:calc(var(--display-unit) * .25);grid-column:2;min-width:0;display:flex}.token-bar-figure-coin{width:calc(var(--display-unit) * 1.15);flex:none;height:auto}.token-bar-count{font-size:calc(var(--display-unit) * 1.7);color:var(--display-ink);font-variant-numeric:tabular-nums;flex:none;font-weight:700;line-height:1.1}.token-bar-name{max-width:100%;font-size:calc(var(--display-unit) * 1.1);color:var(--display-ink);text-overflow:ellipsis;white-space:nowrap;grid-column:2;line-height:1.2;overflow:hidden}.token-bar-more{font-size:calc(var(--display-unit) * 1.4);color:var(--display-ink-soft);flex:none;align-self:center;margin:0}.banner{left:calc(var(--display-unit) * 2.5);right:calc(var(--display-unit) * 2.5);bottom:calc(var(--display-unit) * 2.5 + var(--token-bar-h));padding:calc(var(--display-unit) * 1.2) calc(var(--display-unit) * 2);background:var(--display-accent);color:#fff;border-radius:calc(var(--display-unit) * 1.2);font-size:calc(var(--display-unit) * 2.6);text-align:center;font-weight:600;position:absolute}.critical{padding:calc(var(--display-unit) * 4);color:#fff;text-align:center;background:#a8422f;place-items:center;display:grid;position:absolute;inset:0}.critical-text{font-size:calc(var(--display-unit) * 5);margin:0;font-weight:700;line-height:1.1}.display-stale{right:calc(var(--display-unit) * 2.5);top:calc(var(--display-unit) * .6);font-size:calc(var(--display-unit) * 1.1);color:var(--display-ink-soft);margin:0;position:absolute}.display-simulated{left:calc(var(--display-unit) * 2.5);top:calc(var(--display-unit) * .6);padding:calc(var(--display-unit) * .15) calc(var(--display-unit) * .8);font-size:calc(var(--display-unit) * 1.1);color:var(--display-ink-soft);background:var(--display-surface);border:1px solid var(--display-line);border-radius:calc(var(--display-unit) * .6);margin:0;position:absolute}.display,.sound-locked{--sound-notice-h:calc(var(--display-unit) * 2.4)}.sound-notice-open .display{height:calc(100vh - var(--sound-notice-h));margin-top:var(--sound-notice-h)}.sound-locked{z-index:60;height:var(--sound-notice-h);padding:0 calc(var(--display-unit) * 2);text-align:center;font-size:calc(var(--display-unit) * 1.15);color:var(--ink-soft);background:var(--surface-sunk);border-bottom:1px solid var(--line);justify-content:center;align-items:center;margin:0;display:flex;position:fixed;top:0;left:0;right:0;overflow:hidden}.sound-locked b{color:var(--ink);font-weight:600}.pairing-card{text-align:center;padding:calc(var(--display-unit) * 4);background:var(--display-surface);border:1px solid var(--display-line);border-radius:calc(var(--display-unit) * 2)}.pairing-eyebrow{font-size:calc(var(--display-unit) * 1.4);letter-spacing:.2em;text-transform:uppercase;color:var(--display-ink-soft);margin:0}.pairing-title{margin:calc(var(--display-unit) * .6) 0 calc(var(--display-unit) * 2);font-size:calc(var(--display-unit) * 3.4)}.pairing-instruction{font-size:calc(var(--display-unit) * 1.9);color:var(--display-ink-soft);margin:0}.pairing-code{margin:calc(var(--display-unit) * 2) 0;font-size:calc(var(--display-unit) * 8);letter-spacing:.16em;color:var(--display-accent);font-weight:700}.pairing-footnote{font-size:calc(var(--display-unit) * 1.3);color:var(--display-ink-soft);margin:0}.jar{align-items:center;gap:calc(var(--gap-xs) + 2px);flex-direction:column;display:flex}.jar-svg{height:auto;display:block;overflow:visible}.jar-sm .jar-svg{width:78px}.jar-md .jar-svg{width:126px}.jar-lg .jar-svg{width:190px}.jar-xl .jar-svg{width:calc(var(--display-unit) * 22)}.jar-shadow{fill:var(--jar-shadow)}.jar-lip-fill{fill:var(--jar-glass);opacity:.42}.jar-mouth-fill{fill:var(--jar-glass-deep);opacity:.34}.jar-interior{fill:var(--jar-glass);opacity:.34}.jar-front{fill:var(--jar-glass);opacity:.26}.jar-body,.jar-rim,.jar-rim-back{fill:none;stroke:var(--jar-rim);stroke-width:3.4px;stroke-linecap:round;stroke-linejoin:round}.jar-rim-back{opacity:.5}.jar-rim-inner{stroke-width:1.9px}.jar-front-line{fill:none;stroke:var(--jar-glass-deep);stroke-width:1.8px;stroke-linecap:round;opacity:.7}.jar-front-line-foot{opacity:.45}.jar-shine{fill:none;stroke:var(--jar-shine);stroke-width:7px;stroke-linecap:round;opacity:.5}.jar-shine-thin{stroke-width:3px;opacity:.3}.jar-shine-low{stroke-width:3.6px;opacity:.32}.jar-pile-jostle{transform-box:fill-box;transform-origin:50%;animation:.18s ease-out coin-jostle}@keyframes coin-jostle{0%{transform:translate(0)rotate(0)}35%{transform:translate(.7px,-1.7px)rotate(1.8deg)}70%{transform:translate(-.3px,.4px)rotate(-.6deg)}to{transform:translate(0)rotate(0)}}.coin-flight-move{animation:coin-fall var(--coin-fall-ms,.833s) linear both}@keyframes coin-fall{0%{transform:translate(-6px, calc(var(--fall-rise) * -1));animation-timing-function:ease-out}12%{transform:translate(-5.6px, calc(var(--fall-rise) * -.93));animation-timing-function:cubic-bezier(.55,.06,.68,.19)}56%{transform:translate(-1.4px, calc(var(--fall-rise) * -.13));animation-timing-function:cubic-bezier(.6,.04,.98,.34)}62%{animation-timing-function:ease-out;transform:translate(0)}70%{animation-timing-function:ease-in;transform:translateY(-7px)}78%{animation-timing-function:ease-out;transform:translate(0)}86%{animation-timing-function:ease-in;transform:translateY(-2.4px)}94%,to{transform:translate(0)}}.coin-flight-spin{transform-box:fill-box;transform-origin:50%;animation:coin-spin var(--coin-fall-ms,.833s) linear both}@keyframes coin-spin{0%{transform:rotate(calc(var(--fall-spin) * -.04)) scale(.85);animation-timing-function:ease-out}12%{transform:rotate(calc(var(--fall-spin) * .03)) scale(1.06)}18%{transform:rotate(calc(var(--fall-spin) * .07)) scale(1)}32%{transform:rotate(calc(var(--fall-spin) * .33)) scale(.16, 1)}44%{transform:rotate(calc(var(--fall-spin) * .5)) scale(1)}56%{transform:rotate(calc(var(--fall-spin) * .78)) scale(1)}62%{transform:rotate(var(--fall-spin)) scale(1.07, .84)}70%{transform:rotate(var(--fall-spin)) scale(.97, 1.05)}78%{transform:rotate(var(--fall-spin)) scale(1.02, .96)}to{transform:rotate(var(--fall-spin)) scale(1)}}.coin-flight-lines{fill:none;stroke:var(--token);stroke-width:1.6px;stroke-linecap:round;opacity:0;animation:coin-lines var(--coin-fall-ms,.833s) linear both}@keyframes coin-lines{0%,9%{opacity:0}22%{opacity:.7}48%{opacity:.45}57%,to{opacity:0}}.coin-flight-still .coin-flight-move{animation:coin-fall-still var(--coin-fall-ms,.19s) ease-out both}.coin-flight-still .coin-flight-spin{animation:none}@keyframes coin-fall-still{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.coin-flight-still .coin-flight-move{animation-duration:var(--coin-fall-ms,.19s)!important}}.jar-spark{fill:var(--token);opacity:0;transform-box:fill-box;transform-origin:50%;animation:.26s ease-out both jar-spark;animation-delay:calc(var(--spark-order,0) * 30ms)}@keyframes jar-spark{0%{opacity:0;transform:scale(.3)rotate(-20deg)}40%{opacity:.95;transform:scale(1)rotate(0)}to{opacity:0;transform:scale(.9)rotate(14deg)}}.jar-count{align-items:baseline;gap:.45em;margin:0;display:flex}.jar-number{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--token-deep);font-size:1.7rem;font-weight:800;line-height:1}.jar-unit{letter-spacing:.15em;text-transform:uppercase;color:var(--jar-label);font-size:.76rem;font-weight:600}.jar-lg .jar-number{font-size:2.2rem}.jar-xl .jar-number{font-size:calc(var(--display-unit) * 5)}.jar-xl .jar-unit{font-size:calc(var(--display-unit) * 1.4)}.award{--award-scale:1;right:calc(var(--display-unit) * 2.5);bottom:calc(var(--display-unit) * 2.5 + var(--token-bar-h));z-index:10;transform:scale(var(--award-scale));animation:.16s ease-out award-in;position:absolute}.award-compact{--award-scale:.6;transform-origin:100% 100%;opacity:.95}@keyframes award-in{0%{transform:scale(var(--award-scale)) translateY(16px);opacity:0}to{transform:scale(var(--award-scale)) translateY(0);opacity:1}}.award-card{align-items:center;gap:calc(var(--display-unit) * 1.6);width:calc(var(--display-unit) * 34);padding:calc(var(--display-unit) * 2);background:var(--token-soft);border:2px solid var(--token);border-radius:calc(var(--display-unit) * 2.4);box-shadow:var(--shadow-lift);grid-template-columns:1fr 42%;display:grid}.award-headline{font-family:var(--font-display);font-size:calc(var(--display-unit) * 2.3);color:var(--token-deep);margin:0;font-weight:700;line-height:1.12}.award-jar{will-change:transform;flex-direction:column;align-items:center;display:flex;position:relative}.award .jar,.award .jar-md .jar-svg,.award .jar-sm .jar-svg{width:100%}.award .jar-number{font-size:calc(var(--display-unit) * 2.6)}.award .jar-unit{font-size:calc(var(--display-unit) * .95)}.jar-number-pop{animation:.21s ease-out jar-number-pop;display:inline-block}@keyframes jar-number-pop{0%{transform:scale(1)}35%{transform:scale(1.2)}to{transform:scale(1)}}.award-plus{right:calc(var(--display-unit) * -.4);bottom:calc(var(--display-unit) * 1.4);font-family:var(--font-display);font-weight:800;font-size:calc(var(--display-unit) * 1.8);color:var(--token-deep);pointer-events:none;animation:.48s ease-out both award-plus;position:absolute}@keyframes award-plus{0%{opacity:0;transform:translateY(6px)scale(.8)}22%{opacity:1;transform:translateY(-2px)scale(1)}to{opacity:0;transform:translateY(calc(var(--display-unit) * -2.8)) scale(1)}}.award-still{animation:.15s ease-out award-fade}@keyframes award-fade{0%{opacity:0}to{opacity:1}}.award-still .jar-pile-jostle,.award-still .jar-spark,.award-still .award-plus,.award-still .jar-number-pop{animation:none}.award-still .award-plus{opacity:1}.student-view{z-index:15;background:var(--display-page);place-items:center;display:grid;position:absolute;inset:0}.student-view-inner{align-items:center;gap:calc(var(--display-unit) * 1.4);flex-direction:column;display:flex}.student-view-avatar{font-size:calc(var(--display-unit) * 5)}.student-view-name{font-size:calc(var(--display-unit) * 5);margin:0;font-weight:700}@media (aspect-ratio<=1),(width<=900px){.display,.sound-locked{--display-unit:min(2.4vw, 1.6vh)}.display-body{grid-template-rows:minmax(0,1fr) auto auto;grid-template-columns:1fr}.stage{grid-area:1/1}.events{grid-area:2/1}.whereabouts{grid-area:3/1}}.avatar-image{background:0 0;padding:0;overflow:hidden}.avatar-image img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.student-hero-avatar.avatar-image,.student-view-avatar.avatar-image{border-radius:50%;width:1em;height:1em;display:block}.avatar-button{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;display:block}.avatar-button:focus-visible{outline:2px solid var(--sage);outline-offset:3px}.field-avatar{flex:none}.avatar-choose{align-items:center;gap:var(--gap-sm);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-soft);cursor:pointer;font:inherit;padding:4px;display:flex}.avatar-choose:hover{border-color:var(--sage-mid)}.avatar-choose:focus-visible{outline:2px solid var(--sage);outline-offset:2px}.avatar-choose-label{padding-right:var(--gap-sm);font-size:.9rem}.chip-avatar{vertical-align:-.3em;border-radius:50%;place-items:center;width:1.4em;height:1.4em;margin-right:.35em;display:inline-grid;overflow:hidden}.chip-avatar img{object-fit:cover;width:100%;height:100%}.sheet-avatars{width:100%;max-width:46rem}.avatar-picker-head{align-items:flex-end;gap:var(--gap);margin-bottom:var(--gap);flex-wrap:wrap;display:flex}.avatar-grid{gap:var(--gap-sm);grid-template-columns:repeat(auto-fill,minmax(88px,1fr));max-height:52vh;padding:4px;display:grid;overflow-y:auto}.avatar-tile{aspect-ratio:1;border-radius:var(--radius);cursor:pointer;background:0 0;border:2px solid #0000;place-items:center;padding:4px;display:grid;position:relative}.avatar-tile img{object-fit:contain;border-radius:50%;width:100%;height:100%}.avatar-tile:hover{background:var(--sage-wash)}.avatar-tile:focus-visible{outline:2px solid var(--sage);outline-offset:2px}.avatar-tile.is-selected{border-color:var(--sage-deep);background:var(--sage-soft)}.avatar-tile-check{background:var(--sage-deep);width:22px;height:22px;color:var(--sage-ink);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid;position:absolute;bottom:2px;right:2px}.avatar-tile-none{align-items:center;gap:var(--gap-sm);aspect-ratio:auto;border:1px solid var(--line);border-radius:var(--radius-pill);padding:6px 14px 6px 6px;display:flex}.avatar-none-mark{background:var(--sage-soft);width:42px;height:42px;color:var(--sage-deep);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.avatar-tile-label{color:var(--ink-soft);font-size:.9rem}.timetable{gap:var(--gap);flex-direction:column;display:flex}.timetable-head{display:none}.timetable-day{gap:var(--gap-sm);padding:var(--gap);background:var(--surface-sunk);border-radius:var(--radius);flex-direction:column;display:flex}.timetable-day-head{justify-content:space-between;align-items:baseline;gap:var(--gap-sm);flex-wrap:wrap;display:flex}.timetable-day-name{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.85rem;font-weight:600}.timetable-copy{min-height:36px;padding:var(--gap-xs) var(--gap-sm);font-size:.8rem}.timetable-cell{gap:var(--gap-xs);flex-direction:column;min-width:0;display:flex}.timetable-cell-label{color:var(--ink-soft);font-size:.85rem;font-weight:500}.timetable-period{color:var(--ink-soft);padding-inline:var(--gap-sm);font-size:.85rem;font-weight:600}.timetable-note{margin-top:var(--gap-lg)}@media (width>=900px){.timetable{gap:var(--gap-xs)}.timetable-head{align-items:end;gap:var(--gap-sm);padding-inline:var(--gap);padding-bottom:var(--gap-xs);display:grid}.timetable-day{align-items:center;gap:var(--gap-sm);padding-block:var(--gap-sm);display:grid}.timetable-day-head{align-items:flex-start;gap:var(--gap-xs);flex-direction:column;min-width:0}.timetable-cell-label{display:none}}@media (width<=480px){.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));max-height:46vh}}
