@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/lato-latin-ext-400-normal.cdc69f8b.woff2) format("woff2"),url(/_next/static/media/lato-latin-ext-400-normal.0d67e9e0.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/lato-latin-400-normal.b7ffde23.woff2) format("woff2"),url(/_next/static/media/lato-latin-400-normal.c97328b9.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/lato-latin-ext-700-normal.da4b7f58.woff2) format("woff2"),url(/_next/static/media/lato-latin-ext-700-normal.477e1881.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/lato-latin-700-normal.d5eb20bc.woff2) format("woff2"),url(/_next/static/media/lato-latin-700-normal.3fc09a61.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:900;src:url(/_next/static/media/lato-latin-ext-900-normal.3b982256.woff2) format("woff2"),url(/_next/static/media/lato-latin-ext-900-normal.6e0aa9ac.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Lato;font-style:normal;font-display:swap;font-weight:900;src:url(/_next/static/media/lato-latin-900-normal.d884a71c.woff2) format("woff2"),url(/_next/static/media/lato-latin-900-normal.9de2bcbd.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-cyrillic-ext-wght-normal.e1d64f95.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-cyrillic-wght-normal.76f5cf47.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-greek-ext-wght-normal.944d05b6.woff2) format("woff2-variations");unicode-range:u+1f??}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-greek-wght-normal.5738923d.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-hebrew-wght-normal.24788185.woff2) format("woff2-variations");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-math-wght-normal.01096e9c.woff2) format("woff2-variations");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-symbols-wght-normal.d266ec96.woff2) format("woff2-variations");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-vietnamese-wght-normal.168e817a.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-latin-ext-wght-normal.6f558c55.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Open Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_next/static/media/open-sans-latin-wght-normal.c2cacb7e.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--paper:#26040d;--white:#fff7f4;--ink:#fff7f4;--wine:#2b0610;--rose:#d75373;--blue:#9fb8d7;--muted:#d0b5c0;--card-muted:#76525e;--border:#e9ced4;--soft-blue:#eaf0f7;--shadow:0 12px 30px #10000620}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Open Sans Variable,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}a,button,input{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}a:focus-visible,button:focus-visible,dialog:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Lato,system-ui,sans-serif}h1{font-size:clamp(36px,4.6vw,56px);line-height:1.15;letter-spacing:-2px}h1,h2{font-weight:800}h2{color:var(--wine);font-size:29px;line-height:1.25;letter-spacing:-.9px}h3{font-size:20px;line-height:1.4;font-weight:800}.app-shell{max-width:1160px;margin:auto;padding:0 40px}.top-bar{justify-content:space-between;padding:30px 0 38px}.brand,.top-bar{display:flex;align-items:center;gap:12px}.brand{text-decoration:none;color:var(--wine);font-family:Lato,system-ui,sans-serif;font-size:19px;font-weight:800;letter-spacing:-.5px}.brand-caption{display:block;font-family:Open Sans Variable,sans-serif;font-weight:600;color:var(--muted);letter-spacing:1.7px;font-size:8px;margin-top:4px}.brand-mark{display:flex;gap:3px;align-items:center;height:35px}.brand-mark i{display:block;width:4px;border-radius:4px;background:var(--wine);height:18px;transform:rotate(15deg)}.brand-mark i:nth-child(2){height:30px}.brand-mark i:nth-child(3){height:35px;background:var(--blue)}.brand-mark i:nth-child(4){height:23px;background:var(--blue)}.pass-pill{padding:9px 15px;border:1px solid var(--border);border-radius:30px;color:var(--wine);font-size:12px;font-weight:700;white-space:nowrap}main{padding-bottom:128px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 30px}.eyebrow{color:var(--blue);font-size:11px;letter-spacing:1.2px;font-weight:800;line-height:1.6;margin-bottom:8px}.page-heading .eyebrow{margin-bottom:10px}.page-description{color:#6c6570;font-size:18px;line-height:1.6;margin-top:13px}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:46px;height:46px;color:var(--wine);border:1px solid #e9d9d0;border-radius:12px;background:var(--white)}.icon-button:hover{background:#f6eeeb}.refresh-button{width:52px;height:52px}.weekend-status{border:1px solid #cdddd7;border-radius:12px;background:var(--soft-blue);display:flex;justify-content:space-between;align-items:center;padding:15px 20px;color:var(--blue);font-size:14px;font-weight:700;gap:12px}.weekend-status>span:first-child{display:flex;align-items:center;gap:9px}.status-dot{width:7px;height:7px;background:var(--blue);border-radius:50%}.status-caption{color:#61666a}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:28px 0 48px}.stat-card{border:1px solid var(--border);background:var(--white);border-radius:15px;padding:23px;box-shadow:var(--shadow)}.stat-card>p{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.5px;margin-bottom:10px}.stat-card strong{font-family:Lato,sans-serif;font-size:29px;font-weight:800;letter-spacing:-.8px;display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stat-card strong span{color:var(--muted);font-family:Open Sans Variable,sans-serif;font-size:12px;font-weight:400;letter-spacing:0}.stat-card:last-child strong span{display:block;width:100%;font-size:11px}.verified svg{color:var(--blue)}.home-columns{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:32px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:23px}.section-heading .eyebrow{margin-bottom:3px}.subtle-label{font-size:10px;color:var(--muted)}.announcements{display:grid;gap:16px}.announcement{position:relative;border:1px solid var(--border);background:var(--white);border-radius:15px;padding:24px 27px;overflow:hidden}.announcement h3{color:var(--wine);font-size:19px;margin-bottom:9px}.announcement p{color:var(--muted);line-height:1.65;font-size:15px}.announcement-line{position:absolute;left:0;top:27px;height:22px;width:3px;border-radius:0 3px 3px 0;background:var(--wine)}.qr-shortcut{background:#f0e8e5;border:1px solid #e7d9d2;padding:28px;border-radius:17px;margin-top:9px}.qr-shortcut h2{font-size:26px;margin:10px 0 15px}.qr-shortcut p{color:#806b71;font-size:14px;line-height:1.7;margin-bottom:22px}.primary-button,.secondary-button{display:inline-flex;gap:11px;justify-content:center;align-items:center;border:0;border-radius:11px;padding:14px 20px;background:var(--wine);color:white;text-decoration:none;font-size:14px;font-weight:700;min-height:46px}.primary-button:hover{background:#6a263b}.secondary-button{border:1px solid var(--border);background:var(--white);color:var(--wine)}.secondary-button:hover{background:var(--paper)}.upcoming-section{margin-top:44px}.text-link{white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-size:13px;font-weight:700;text-decoration:none}.text-link:hover{text-decoration:underline}.class-list{display:grid;gap:15px}.class-card{display:flex;align-items:center;gap:18px;background:var(--white);border:1px solid var(--border);border-radius:16px;padding:25px;box-shadow:var(--shadow)}.class-content{flex:1 1;min-width:0}.class-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.class-card-top .eyebrow{margin:0}.class-title{display:block;text-align:left;background:none;color:var(--ink);border:0;padding:0;font-family:Lato,sans-serif;font-size:21px;line-height:1.4;font-weight:800;letter-spacing:-.5px}.class-title:hover{color:var(--wine);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.class-teachers{margin-top:8px;font-size:15px;font-weight:600}.class-meta{margin-top:15px;display:flex;flex-wrap:wrap;gap:9px 20px;color:var(--muted);font-size:13px}.class-meta span{display:flex;gap:6px;align-items:center}.class-meta svg{color:#9e8b8d}.badge{display:inline-flex;color:var(--blue);font-size:10px;padding:5px 9px;font-weight:700;border-radius:6px;white-space:nowrap;text-transform:capitalize}.bottom-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(1160px,100%);padding:12px 24px calc(12px + env(safe-area-inset-bottom));background:#faf8f6f5;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-top:1px solid #e0d6d1;z-index:10;gap:7px}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#79757e;padding:11px 2px;border-radius:11px;font-size:11px;text-decoration:none;min-height:65px}.nav-item:hover{background:#ece6e3}.nav-item.active{color:var(--blue);background:#e6efed}.notice{padding:16px 19px;border-radius:11px;border:1px solid #cdded8;color:var(--blue);font-size:13px;line-height:1.6;margin-bottom:22px}.warning{border-color:#efd1ab;color:#7d542b;background:#fff5e8}.preview-notice{display:flex;align-items:center;gap:10px}.preview-banner{font-size:11px;color:#8a695c;border-bottom:1px dashed #dacbc4;margin-bottom:20px;padding-bottom:10px}.sync-footnote{font-size:10px;color:#91888d;margin-top:30px;text-align:center}.small{font-size:12px;line-height:1.7}.muted{color:var(--muted)}.schedule-summary{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:25px;margin-bottom:25px;color:var(--blue);font-size:14px;font-weight:700}.schedule-summary .primary-button{padding:12px 16px}.day-section{margin-top:28px}.day-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.day-heading h2{font-size:24px}.day-heading span{color:var(--muted);font-size:12px}.registration-help{margin-top:26px;text-align:center}.registration-help a{display:inline-flex;align-items:center;gap:3px}.schedule-controls{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:30px}.day-tabs{display:flex;border:1px solid var(--border);border-radius:12px;padding:5px;background:var(--white);gap:4px}.day-tabs button{border:none;background:transparent;color:var(--muted);padding:10px 17px;border-radius:8px;font-size:13px;font-weight:600}.day-tabs .selected{background:var(--wine);color:white}.search-box{display:flex;align-items:center;gap:10px;padding:12px 15px;border:1px solid var(--border);border-radius:10px;background:var(--white);color:var(--muted)}.search-box input{width:205px;border:0;background:transparent;outline-offset:3px;font-size:13px;color:var(--ink)}.search-box:focus-within{border-color:var(--blue)}.slot-section{margin-bottom:34px}.slot-heading{display:flex;align-items:center;gap:14px;margin-bottom:17px;color:var(--wine);font-size:19px;font-weight:800}.slot-line{flex:1 1;height:1px;background:var(--border)}.slot-heading .small{font-weight:400;font-size:10px}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.catalog-grid .class-card{box-shadow:none;align-items:flex-start}.catalog-grid .class-title{font-size:19px}.empty-card{border:1px dashed #d6c8c1;border-radius:15px;padding:35px 24px;text-align:center;background:#fff9;color:var(--muted)}.empty-card>svg{color:var(--blue);margin-bottom:15px}.empty-card h3{color:var(--wine);margin-bottom:10px}.empty-card p{max-width:460px;margin:0 auto 22px;font-size:14px;line-height:1.65}.profile-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:25px}.card,.profile-card{border:1px solid var(--border);background:var(--white);border-radius:18px;padding:30px}.profile-identity{display:flex;align-items:center;gap:18px;padding-bottom:23px;border-bottom:1px solid var(--border)}.profile-identity h2{font-size:26px;margin-bottom:9px}.avatar{display:flex;align-items:center;justify-content:center;width:65px;height:65px;background:#f0e4e5;color:var(--wine);border-radius:50%;font-family:Lato,sans-serif;font-size:21px;font-weight:800;flex-shrink:0}.profile-details{margin:23px 0 26px}.profile-details>div{display:flex;justify-content:space-between;gap:24px;padding:13px 0;border-bottom:1px solid #f1ebe8;font-size:13px}.profile-details dt{color:var(--muted)}.profile-details dd{margin:0;text-align:right;font-weight:600;overflow-wrap:anywhere}.profile-qr{align-self:start;background:var(--soft-blue);border-color:#d3e2dc}.profile-qr h2{font-size:25px}.profile-qr p:not(.eyebrow){color:var(--muted);line-height:1.7;margin:18px 0;font-size:14px}.profile-qr p.small{font-size:11px;margin:22px 0 0}.logout-button{display:flex;align-items:center;gap:9px;margin-top:28px;color:var(--muted);background:transparent;border:0;min-height:44px;font-size:13px}.modal{padding:0;border:none;border-radius:22px;background:var(--white);color:var(--ink);max-width:540px;width:calc(100% - 36px);max-height:calc(100dvh - 60px);box-shadow:0 25px 100px #271a4145}.modal::backdrop{background:#26192188;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{padding:28px}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:23px}.modal-heading h2{font-size:25px;line-height:1.4}.modal-heading .icon-button{width:36px;height:36px}.detail-teachers{font-size:18px;font-weight:700;margin:17px 0}.detail-description{line-height:1.8;color:var(--muted);margin-bottom:22px}.room-detail{display:flex;align-items:center;gap:9px;font-size:14px;margin-bottom:25px}.modal .secondary-button{width:100%}.qr-display{text-align:center}.qr-display>svg{max-width:100%;height:auto;background:var(--white);border-radius:10px;border:1px solid var(--border)}.qr-display h3{color:var(--wine);margin-top:20px}.qr-display p{color:var(--muted);font-size:14px;line-height:1.6;margin:10px 0 18px}.access-card{text-align:center;max-width:650px;margin:55px auto;padding:35px 0}.access-card h1{font-size:43px}.access-card>p:not(.eyebrow){color:var(--muted);line-height:1.7;margin:20px auto;max-width:480px}.access-card .primary-button{margin:8px 0 15px}.round-icon{display:inline-flex;width:74px;height:74px;align-items:center;justify-content:center;border:1px solid #cbded7;border-radius:22px;background:var(--soft-blue);color:var(--blue);margin-bottom:24px}.skeleton{background:#e9e2de;border-radius:12px;animation:pulse 1.3s ease-in-out infinite alternate}.title-skeleton{height:60px;width:min(500px,80%);margin-bottom:25px}.card-skeleton{height:170px;width:100%}.loading-state p{color:var(--muted);font-size:13px;margin-top:18px}.skip-link{position:absolute;left:15px;top:-100px;z-index:100;padding:12px;background:var(--white)}.skip-link:focus{top:15px}.claim-shell{max-width:1240px;margin:auto;padding:0 55px;display:grid;grid-template-columns:1.2fr 1fr;column-gap:50px;min-height:100dvh}.claim-shell .top-bar{grid-column:1/-1;padding-bottom:0;align-self:start}.claim-main{padding:40px 0 65px;align-self:center}.claim-main h1{font-size:clamp(42px,4.5vw,60px);line-height:1.15;letter-spacing:-2px}.claim-main h1 em{font-style:normal;color:var(--wine)}.claim-main>p:not(.eyebrow){color:var(--muted);max-width:430px;font-size:16px;line-height:1.8;margin:22px 0}.claim-main .primary-button{margin:9px 0;padding:17px 23px}.claim-main .claim-help{display:flex;align-items:center;gap:8px;font-size:12px}.claim-main .small{font-size:12px!important}.claim-main .warning{color:#7d542b!important}.claim-art{align-self:center;padding-bottom:80px}.vinyl{width:100%;border-radius:50%;background:repeating-radial-gradient(circle at center,#241c24 0,#241c24 3px,#342b33 4px,#241c24 5px);box-shadow:0 20px 60px #501b2d25;transform:rotate(-12deg);border:9px solid #251d26}.vinyl,.vinyl-label{aspect-ratio:1;display:flex;justify-content:center;align-items:center}.vinyl-label{width:35%;border-radius:50%;background:var(--wine);color:#f8e4d1;font-family:Lato,sans-serif;font-size:21px;font-weight:800;flex-direction:column;line-height:1.2;border:2px solid #cf8e76;letter-spacing:2px}.vinyl-label span{font-size:28px}.vinyl-label i{width:9px;height:9px;border-radius:50%;background:var(--paper);margin-top:12px}.claim-art p{text-align:center;letter-spacing:2px;font-size:9px;color:var(--wine);margin-top:40px;font-weight:800}@keyframes pulse{to{opacity:.45}}@keyframes spin{to{transform:rotate(1turn)}}.spinning{animation:spin 1s linear infinite}@media (max-width:850px){.app-shell{padding:0 28px}.home-columns{grid-template-columns:1fr;gap:22px}.qr-shortcut{display:none}.profile-grid{grid-template-columns:1fr}.profile-qr{padding:24px}.profile-qr p{max-width:420px}.claim-shell{padding:0 30px;column-gap:30px}.claim-art{opacity:.8}.vinyl-label{font-size:13px}.vinyl-label span{font-size:18px}.claim-main h1{font-size:43px}.stats-grid{margin-bottom:36px}}@media (max-width:600px){.app-shell{padding:0 20px}.top-bar{padding:25px 0 30px}.brand{font-size:17px;gap:9px}.brand-caption{font-size:7px;letter-spacing:1.3px}.pass-pill{font-size:10px;padding:8px 10px}.page-heading{margin-bottom:25px;gap:12px}h1{font-size:36px;letter-spacing:-1.4px}h2{font-size:27px}.page-description{font-size:15px;margin-top:10px}.page-heading .eyebrow{font-size:9px;letter-spacing:1px}.refresh-button{width:43px;height:43px;border-radius:11px}.weekend-status{padding:13px;font-size:11px}.status-caption{font-size:10px}.stats-grid{gap:9px;margin:20px 0 32px}.stat-card{padding:17px 11px;border-radius:12px}.stat-card p{font-size:8px;letter-spacing:.3px;margin-bottom:9px}.stat-card strong{font-size:21px;gap:4px}.stat-card strong span{width:100%;font-size:10px}.stat-card .verified{font-size:13px;flex-wrap:nowrap;letter-spacing:-.7px;line-height:1.5}.verified svg{width:15px;height:15px}.stat-card:last-child strong span{font-size:8px;margin-top:3px}.section-heading{margin-bottom:18px}.section-heading .eyebrow{font-size:10px}.announcement{padding:22px;border-radius:14px}.announcement h3{font-size:18px}.announcement p{font-size:14px}.upcoming-section{margin-top:33px}.class-card{padding:20px;border-radius:15px;gap:12px}.class-title{font-size:19px}.class-teachers{font-size:14px}.class-meta{font-size:12px;gap:8px 16px}.class-card-top{align-items:flex-start;flex-wrap:wrap;gap:6px}.class-card-top .eyebrow{font-size:10px}.class-card.compact .badge{display:none}.bottom-nav{padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:3px}.nav-item{font-size:10px;padding:10px 2px;gap:6px;min-height:62px}.nav-item svg{width:21px}.text-link{font-size:12px}.schedule-summary{font-size:12px;padding-bottom:20px}.schedule-summary .primary-button{padding:12px;font-size:12px}.catalog-grid{grid-template-columns:1fr}.schedule-controls{flex-direction:column;align-items:stretch;gap:13px}.day-tabs button{flex:1 1}.search-box input{width:100%;min-width:0}.profile-card{padding:22px}.profile-identity{gap:13px}.profile-identity h2{font-size:23px}.avatar{width:54px;height:54px}.profile-details>div{font-size:12px;gap:14px}.profile-details dt{flex-shrink:0}.profile-details dd{max-width:60%}.access-card{margin:15px auto}.access-card h1{font-size:34px}.access-card>p{font-size:14px}.modal-content{padding:23px}.modal-heading h2{font-size:22px}.claim-shell{display:block;padding:0 25px}.claim-shell .top-bar{padding:25px 0}.claim-main{padding:20px 0 40px}.claim-main h1{font-size:45px}.claim-main>p:not(.eyebrow){font-size:15px}.claim-art{display:none}.preview-banner{font-size:10px}.notice{font-size:12px}.profile-qr h2{font-size:23px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;scroll-behavior:auto!important}}h1,h2,h3{font-weight:900}h2{color:var(--ink);letter-spacing:-.4px}.page-heading h1,h2{text-transform:uppercase}.page-heading h1{font-weight:900;letter-spacing:-1.2px}.page-description{color:#e8bdc8}.top-bar{padding:22px 0 30px;border-bottom:1px solid #663243;margin-bottom:30px}.brand{gap:20px;color:var(--ink)}.brand-logo{width:122px;height:auto}.brand-caption{color:var(--blue);font-size:9px;font-weight:900;letter-spacing:1.2px;line-height:1.7}.brand-caption,.pass-pill{font-family:Lato,sans-serif}.pass-pill{color:var(--white);border-color:#794557;border-radius:4px;text-transform:uppercase}.pass-date{display:block;margin-top:5px;font-size:9px;letter-spacing:.6px;color:var(--blue)}.weekend-status{background:#3b101e;border-color:#693045;color:var(--white);border-radius:6px}.status-dot{background:var(--rose)}.status-caption{color:#e8bdc8}.announcement,.card,.class-card,.profile-card,.stat-card{color:var(--wine);border-radius:8px}.class-card .eyebrow,.stat-card>p{color:var(--card-muted)}.stat-card strong{color:var(--wine)}.stat-card strong span{color:var(--card-muted)}.stat-card .verified svg{color:#8d3551}.class-title{color:var(--wine)}.class-teachers{color:#42202e}.announcement p,.class-meta{color:var(--card-muted)}.class-meta svg{color:#875767}.announcement-line{background:var(--rose)}.qr-shortcut{background:#3b0c19;border-color:#774154;border-radius:8px}.qr-shortcut h2{color:var(--white)}.qr-shortcut p{color:#e8bdc8}.primary-button{background:var(--rose);color:var(--wine);font-family:Lato,sans-serif;font-weight:900;border-radius:4px;text-transform:uppercase;letter-spacing:.3px}.primary-button:hover{background:#ed7894}.secondary-button{border-radius:4px;font-family:Lato,sans-serif;font-weight:900}.icon-button{border-radius:6px}.badge{color:#402038;background:var(--soft-blue);border-radius:4px}.bottom-nav{background:#1d040bf5;border-color:#663243;padding-top:10px}.nav-item{color:#e8bdc8;border-radius:6px;font-family:Lato,sans-serif;font-size:12px;font-weight:700}.nav-item:hover{background:#461327}.nav-item.active{color:var(--white);background:#963a59}.notice{color:#321d2f;border-color:#b2c6e0;background:var(--soft-blue);border-radius:6px}.notice.warning{border-color:#e6bd9c;color:#734520;background:#fff1dd}.sync-footnote{color:#d0b5c0}.day-heading span{color:#e8bdc8}.day-tabs{border-color:#8a4d62;border-radius:6px;padding:4px}.day-tabs button{color:var(--card-muted);border-radius:4px;font-family:Lato,sans-serif;font-weight:900}.day-tabs .selected{background:var(--rose);color:var(--wine)}.search-box{border-radius:6px;color:var(--card-muted)}.search-box input{color:var(--wine)}.slot-heading{color:var(--blue)}.slot-line{background:#663243}.empty-card{background:#3a101d;border-color:#885164;border-radius:8px;color:#e8bdc8}.empty-card h3{color:var(--white)}.profile-card h2,.profile-qr h2{color:var(--wine)}.profile-card .muted,.profile-details dt{color:var(--card-muted)}.profile-details dd{color:var(--wine)}.profile-qr{background:#f2e4e7;border-color:#ebcbd3}.profile-qr .eyebrow{color:#8d3551}.profile-qr p:not(.eyebrow){color:var(--card-muted)}.profile-identity{border-color:#e8c9d1}.avatar{background:#ead0d8}.profile-bookings{margin-top:38px}.profile-bookings .subtle-label{color:var(--blue)}.logout-button{color:#e8bdc8}.modal{border-radius:10px}.modal,.modal h2{color:var(--wine)}.modal .eyebrow{color:#8d3551}.detail-description,.qr-display p{color:var(--card-muted)}.modal .secondary-button{background:var(--wine);color:var(--white)}.modal .secondary-button:hover{background:#5a1d33}.access-card .round-icon,.claim-main .round-icon{background:#3c1221;border-color:#7e465c;color:var(--blue)}.access-card>p:not(.eyebrow),.loading-state p{color:#e8bdc8}.skeleton{background:#512437}.claim-main h1 em,.claim-main>p:not(.eyebrow){color:#e8bdc8}.claim-art-wordmark{width:100%;height:auto}.claim-art p{color:var(--blue)}.preview-banner{color:#e8bdc8;border-color:#784358}@media (max-width:600px){.top-bar{margin-bottom:24px;padding:18px 0 22px}.brand{gap:12px}.brand-logo{width:94px}.brand-caption{font-size:7px;letter-spacing:.8px}.pass-pill{font-size:10px}.pass-date{font-size:7px;letter-spacing:.3px}.page-heading h1{font-size:34px;line-height:1.1}.page-heading{align-items:flex-start}.refresh-button{margin-top:25px}.nav-item{font-size:11px}.stat-card .verified{font-size:13px}.profile-card{padding:22px}.profile-bookings .section-heading{align-items:center}.profile-bookings h2{font-size:24px}}.class-card{position:relative}.class-title:after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}.class-card>.icon-button{position:relative;z-index:2}.class-card:has(.class-title:focus-visible){outline:3px solid var(--blue);outline-offset:3px}.class-title:focus-visible{outline:none}.search-box input:focus,.search-box input:focus-visible{outline:none;box-shadow:none}.competition-section{margin:40px 0}.competition-intro{color:#e8bdc8;margin:-8px 0 20px;font-size:14px;line-height:1.7}.competition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.competition-card{background:var(--white);color:var(--wine);padding:24px;border:1px solid var(--border);border-radius:8px;min-width:0}.competition-card h3{font-size:19px;line-height:1.4}.competition-card p{font-size:13px;line-height:1.7;margin-top:10px;color:var(--card-muted)}.competition-card .eyebrow{color:var(--card-muted);margin:0 0 7px}.competition-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.competition-card>.badge{margin-top:10px}.competition-rounds{list-style:none;padding:0;margin:18px 0 0}.competition-rounds li{padding:12px 0;border-top:1px solid var(--border);font-size:14px}.competition-rounds p{margin-top:3px}.competition-condition{display:inline-block;color:#824055;font-size:12px;font-weight:700;margin-left:10px}.competition-card p.competition-required{color:#753049;font-weight:700}.competition-source{margin-top:20px;color:#e8bdc8;line-height:1.7}.competition-source a{color:var(--blue);text-decoration:underline}@media (max-width:640px){.competition-grid{grid-template-columns:minmax(0,1fr)}.competition-card{padding:20px}.competition-section .section-heading{align-items:flex-start}.competition-section h2{font-size:25px}}.claim-shell .top-bar,.top-bar{padding:12px 0 14px;margin-bottom:24px}.brand-logo{width:86px;transform:rotate(-8deg)}.brand{gap:16px}.brand-caption{font-size:7px}.announcement-description{white-space:pre-wrap;overflow-wrap:anywhere}.notification-settings{margin:32px 0;padding:24px}.notification-settings .eyebrow{color:var(--card-muted)}.notification-settings h2{color:var(--wine);font-size:24px}.notification-settings p:not(.eyebrow){color:var(--card-muted);margin:12px 0}.notification-settings .primary-button{margin-top:8px}.admin-shell{max-width:1160px;margin:auto;padding:0 40px 40px}.admin-label{color:var(--blue);font-size:10px;letter-spacing:1px;font-weight:700}.admin-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-card{background:var(--white);color:var(--wine);padding:24px;border-radius:8px;min-width:0}.admin-card h2{color:var(--wine);font-size:25px;margin-bottom:20px}.admin-card p{line-height:1.7;color:var(--card-muted);margin:12px 0}.admin-card label{display:block;font-size:14px;font-weight:700;margin:18px 0}.admin-card input,.admin-card textarea{display:block;width:100%;border:1px solid #b88899;border-radius:6px;padding:12px;background:#fffdfb;color:var(--wine);margin-top:8px;font:inherit;font-weight:400}.admin-card textarea{resize:vertical}.admin-card input:focus-visible,.admin-card textarea:focus-visible{outline:2px solid #875069;outline-offset:2px}.admin-login{max-width:480px}.admin-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.admin-session{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0}.admin-session p{font-size:12px;color:var(--muted)}.admin-history{margin-top:36px}.admin-history>h2{margin-bottom:18px}.admin-shell .notice:not(.warning){background:#fff7f4;color:var(--wine)}@media (max-width:640px){.admin-shell{padding:0 20px 30px}.admin-columns{grid-template-columns:minmax(0,1fr)}.admin-session{align-items:flex-start;flex-direction:column}.brand-logo{width:76px}.top-bar{padding:12px 0 14px;margin-bottom:22px}}