@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");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:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_eaa4bee4-module__dFVSAq__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_eaa4bee4-module__dFVSAq__variable{--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.3zhtymus0wdqb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.3nkuoiize4urq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.1da667lu-u79a.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1i05ju5aeyhye.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.1dgcou5jor5q_.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.31-2bzhq1gx_9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.3xauquyg2sixn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.2taws-qdxmzlf.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.0htwiiqufp3l9.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.28xcb7557rbh2.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.2ontrj8z1-o25.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.33iiebxkijmxa.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.2nzetymcmw3t7.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.0_f09-l1omku8.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.0fcfx2a-jndc5.woff2)format("woff2");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:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_e06d9437-module__v8ILfq__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_e06d9437-module__v8ILfq__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--slate:#1a2b3c;--slate-2:#26384a;--teal:#2dd4bf;--teal-ink:#0d9488;--off-white:#f8fafc;--coral:#fb7185;--success:#16a34a;--error:#dc2626;--bg:var(--off-white);--surface:#fff;--surface-2:#f1f5f9;--border:#e2e8f0;--border-strong:#cbd5e1;--text:var(--slate);--muted:#5b6b7b;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px #1018280a, 0 8px 24px #1018280f;--shadow-lg:0 12px 40px #1018281a;--maxw:1080px;--font-sans-stack:var(--font-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono-stack:var(--font-mono), ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 80% -10%, #2dd4bf1a, transparent 60%), radial-gradient(900px 500px at -10% 10%, #1a2b3c0f, transparent 55%), var(--bg);color:var(--text);font-family:var(--font-sans-stack);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.55}a{color:var(--teal-ink);text-decoration:none}a:hover{text-decoration:underline}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.site-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#ffffffb8;position:sticky;top:0}.site-header .container{justify-content:space-between;align-items:center;height:64px;display:flex}.brand{letter-spacing:-.01em;color:var(--slate);align-items:center;gap:10px;font-size:17px;font-weight:700;display:inline-flex}.brand:hover{text-decoration:none}.brand .brand-icon{width:22px;height:22px;color:var(--teal-ink);flex-shrink:0}.header-tag{color:var(--muted);font-size:13px;font-family:var(--font-mono-stack)}.hero{padding:72px 0 40px}.eyebrow{font-family:var(--font-mono-stack);text-transform:uppercase;letter-spacing:.14em;color:var(--teal-ink);font-size:12px;font-weight:600}.hero h1{letter-spacing:-.03em;max-width:18ch;margin:16px 0 0;font-size:clamp(34px,5vw,52px);line-height:1.05}.hero p.lead{color:var(--muted);max-width:60ch;margin:20px 0 0;font-size:18px}.rules{grid-template-columns:repeat(3,1fr);gap:16px;margin:36px 0 8px;display:grid}.rule{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.rule h3{align-items:center;gap:8px;margin:0 0 6px;font-size:15px;display:flex}.rule p{color:var(--muted);margin:0;font-size:14px}.rule .glyph{color:var(--teal-ink)}.section{padding:40px 0 24px}.section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.section-head h2{letter-spacing:-.02em;margin:0;font-size:24px}.section-head p{color:var(--muted);margin:0;font-size:14px}.grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;padding:22px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-3px)}.card.disabled{opacity:.72}.card.disabled:hover{box-shadow:var(--shadow);border-color:var(--border);transform:none}.card-top{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px;margin-bottom:12px;display:flex}.card h3{letter-spacing:-.01em;margin:0;font-size:18px}.card .tagline{color:var(--muted);min-height:40px;margin:0 0 16px;font-size:14px}.chips{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.chip{font-size:12px;font-family:var(--font-mono-stack);color:var(--slate-2);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px}.card .spacer{flex:1}.card-wide{flex-direction:row;grid-column:1/-1;align-items:center;gap:28px}.card-wide .card-body{flex:1;min-width:0}.card-wide .spacer{display:none}.card-wide .tagline{min-height:0}.card-wide .chips{margin-bottom:0}.card-wide .btn-block{white-space:nowrap;flex-shrink:0;width:auto}.badge{font-size:11px;font-weight:600;font-family:var(--font-mono-stack);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:4px 9px}.badge-easy{color:var(--teal-ink);background:#2dd4bf24}.badge-medium{color:#b45309;background:#f59e0b26}.badge-hard{color:var(--coral);background:#fb718526}.badge-warn{color:#92400e;background:#fbbf242e}.btn{font:inherit;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn-primary{background:var(--slate);color:#fff}.btn-primary:hover{background:var(--slate-2)}.btn-teal{background:var(--teal);color:#062c27}.btn-teal:hover{background:#26bda9}.btn-ghost{color:var(--slate);border-color:var(--border-strong);background:0 0}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{color:var(--error);background:0 0;border-color:#dc26264d}.btn-danger:hover{background:#dc26260f}.btn-block{width:100%}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.flow{flex-direction:column;align-items:center;min-height:100vh;padding:48px 24px 64px;display:flex}.flow-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:460px;box-shadow:var(--shadow-lg);padding:32px}.flow-card.wide{max-width:540px}.flow-head{margin-bottom:24px}.flow-head h1{letter-spacing:-.02em;margin:10px 0 6px;font-size:24px}.flow-head p{color:var(--muted);margin:0;font-size:14px}.steps{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.step-dot{background:var(--border);border-radius:999px;flex:1;min-width:24px;height:6px}.step-dot.done{background:var(--teal)}.step-dot.active{background:var(--slate)}.field{margin-bottom:16px}.label{color:var(--slate-2);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.input{width:100%;font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);background:#fff;padding:11px 13px;font-size:15px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #2dd4bf33}.input.code-input{font-family:var(--font-mono-stack);letter-spacing:.4em;text-align:center;font-size:24px}.hint{color:var(--muted);margin:6px 0 0;font-size:13px}.alert{border-radius:var(--radius-sm);border:1px solid #0000;margin-bottom:18px;padding:12px 14px;font-size:14px}.alert-error{color:#7f1d1d;background:#dc262614;border-color:#dc262640}.alert-info{color:var(--slate);background:#2dd4bf1a;border-color:#2dd4bf4d}.alert-warn{color:#78350f;background:#fbbf2424;border-color:#fbbf2466}.mono-box{font-family:var(--font-mono-stack);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);word-break:break-all;color:var(--slate);padding:14px;font-size:15px}.qr{border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;width:200px;height:200px;margin:0 auto 16px;display:block}.countdown{font-family:var(--font-mono-stack);letter-spacing:.04em;color:var(--slate);text-align:center;margin:8px 0 4px;font-size:44px;font-weight:600}.countdown.expired{color:var(--error)}.success-mark{width:56px;height:56px;color:var(--success);background:#16a34a1f;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:28px;display:flex}.flow-actions{flex-direction:column;gap:10px;margin-top:22px;display:flex}.flow-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:18px;display:flex}.flow-foot form{margin:0}.link-muted{color:var(--muted);font-size:13px}.site-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:64px;padding:32px 0;font-size:13px}.site-footer .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.inline-note{font-family:var(--font-mono-stack);color:var(--muted);font-size:12px}@media (max-width:860px){.rules,.grid{grid-template-columns:1fr}.card-wide{flex-direction:column;grid-column:auto;align-items:stretch;gap:0}.card-wide .spacer{display:block}.card-wide .chips{margin-bottom:18px}.card-wide .btn-block{width:100%}}.play{flex-direction:column;align-items:center;min-height:100vh;padding:32px 24px 64px;display:flex}.play-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:780px;box-shadow:var(--shadow-lg);padding:28px}.play-head{margin-bottom:16px}.play-head h1{letter-spacing:-.02em;margin:8px 0 6px;font-size:24px}.play-head p{color:var(--muted);margin:0;font-size:14px}.play-meta{font-family:var(--font-mono-stack);color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin:2px 0 14px;font-size:13px;display:flex}.play-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.panel{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);margin-top:16px;padding:16px}.panel.good{background:#16a34a14;border-color:#16a34a73}.panel.bad{background:#dc26260f;border-color:#dc26264d}.panel h2{margin:0 0 6px;font-size:18px}.big-num{font-family:var(--font-mono-stack);color:var(--slate);font-size:28px;font-weight:600}.shell-stage{border:1px solid var(--border);border-radius:var(--radius-sm);background:linear-gradient(#eef2f7,#dfe6ee);height:230px;position:relative;overflow:hidden}.shell-floor{background:var(--border-strong);height:2px;position:absolute;bottom:34px;left:0;right:0}.cup{pointer-events:none;width:96px;height:112px;transition:left .5s cubic-bezier(.5,0,.5,1),transform .28s;position:absolute;bottom:36px}.cup-target{cursor:pointer;z-index:3;background:0 0;border:0;width:96px;height:112px;padding:0;position:absolute;bottom:36px}.cup-target:disabled{cursor:default}.cup-target:focus-visible{outline:2px solid var(--slate);outline-offset:4px}.cup-body{border-left:48px solid #0000;border-right:48px solid #0000;border-bottom:112px solid var(--slate);filter:drop-shadow(0 6px 6px #0000002e);width:0;height:0}.cup.lifted{transform:translateY(-104px)}.ball{background:radial-gradient(circle at 35% 30%, #fecaca, var(--coral));border-radius:50%;width:40px;height:40px;transition:left .5s cubic-bezier(.5,0,.5,1);position:absolute;bottom:42px;box-shadow:0 3px 6px #00000040}@keyframes cup-hop{0%{transform:translateY(0)}45%{transform:translateY(-70px)}to{transform:translateY(0)}}.cup.hop-0,.cup.hop-1{z-index:2;animation:.5s ease-in-out cup-hop}.whack-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.hole{aspect-ratio:1;border:1px solid var(--border);cursor:pointer;background:radial-gradient(at 50% 88%,#cbd5e1 0 55%,#e6ebf1 56%);border-radius:14px;position:relative;overflow:hidden}.mole{color:#1a2b0f;height:76%;font-family:var(--font-mono-stack);background:radial-gradient(circle at 40% 32%,#bef264,#4d7c0f);border-radius:50% 50% 42% 42%;justify-content:center;align-items:center;font-size:15px;transition:bottom .11s ease-out;display:flex;position:absolute;bottom:-100%;left:14%;right:14%}.mole.up{bottom:8%}.reorder-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.reorder-item{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:grab;background:#fff;align-items:center;gap:12px;padding:12px 14px;display:flex}.reorder-item.dragging{opacity:.4}.reorder-item.over{border-color:var(--teal);box-shadow:0 0 0 2px #2dd4bf4d}.reorder-item .handle{color:var(--muted);font-size:18px}.reorder-item .time{font-family:var(--font-mono-stack);color:var(--slate);min-width:56px;font-weight:600}.reorder-item .mark{margin-left:auto;font-weight:700}.reorder-item .mark.ok{color:var(--success)}.reorder-item .mark.no{color:var(--error)}.clip-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.clip{min-width:0}.clip canvas{border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;height:180px;display:block}.choice-row{flex-wrap:wrap;gap:10px;margin:8px 0 0;display:flex}.choice{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;font:inherit;background:#fff;padding:8px 12px}.choice.sel{border-color:var(--teal);box-shadow:0 0 0 2px #2dd4bf4d}.gate{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);margin-bottom:16px;padding:16px}.gate h3{margin:0 0 8px;font-size:14px}.hold-btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);width:100%;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;background:#fff;padding:14px;font-weight:600;position:relative;overflow:hidden}.hold-fill{background:#2dd4bf59;width:0%;transition:width 50ms linear;position:absolute;top:0;bottom:0;left:0}.hold-label{position:relative}.slide-track{border:1px solid var(--border-strong);touch-action:none;background:#fff;border-radius:999px;height:46px;margin-top:8px;position:relative}.slide-gap{border:2px dashed var(--border-strong);pointer-events:none;border-radius:50%;width:44px;height:44px;position:absolute;top:1px;transform:translate(-50%)}.slide-handle{background:var(--slate);cursor:grab;touch-action:none;border-radius:50%;width:40px;height:40px;position:absolute;top:3px;left:0}.gate-ok{color:var(--success);font-weight:600}.gate-done{margin-top:8px;font-size:13px}.wheel-stage{width:260px;height:260px;margin:8px auto 4px;position:relative}.wheel-disc{border:4px solid var(--slate);width:240px;height:240px;box-shadow:var(--shadow);border-radius:50%;position:absolute;top:10px;left:10px}.wheel-pointer{border-left:12px solid #0000;border-right:12px solid #0000;border-top:22px solid var(--slate);z-index:3;filter:drop-shadow(0 1px 1px #0000004d);width:0;height:0;position:absolute;top:-2px;left:50%;transform:translate(-50%)}.wheel-hub{border:3px solid var(--slate);z-index:2;background:#fff;border-radius:50%;width:34px;height:34px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.wheel-legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;font-size:13px;display:flex}.wheel-key{align-items:center;gap:6px;display:inline-flex}.wheel-swatch{border:1px solid #00000026;border-radius:3px;width:12px;height:12px;display:inline-block}.jigsaw-stage{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);touch-action:none;-webkit-user-select:none;user-select:none;max-width:100%;margin:4px auto 0;position:relative;overflow:hidden}.jigsaw-board{border:2px solid var(--border-strong);border-radius:4px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);display:grid;position:absolute}.jigsaw-cell{border:1px dashed var(--border-strong)}.jigsaw-piece{cursor:grab;touch-action:none;background-repeat:no-repeat;border:1px solid #0f172a40;border-radius:4px;position:absolute;box-shadow:0 2px 6px #1018282e}.jigsaw-piece.placed{box-shadow:none;cursor:default;outline:2px solid var(--teal);outline-offset:-2px}.snake-board{background:var(--border);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;gap:1px;margin:4px auto 0;padding:2px;display:grid}.snake-cell{background:#eef2f7;border-radius:2px}.snake-cell.body{background:var(--teal)}.snake-cell.head{background:var(--teal-ink)}.snake-cell.apple{background:var(--coral);border-radius:50%}.maze-grid{gap:4px;width:300px;max-width:100%;margin:6px auto 0;display:grid}.maze-cell{aspect-ratio:1;border:1px solid var(--border);background:#fff;border-radius:4px;justify-content:center;align-items:center;display:flex;position:relative}.maze-cell.wall{background:var(--slate);border-color:var(--slate)}.maze-cell.exit{background:#16a34a1a;border-color:#16a34a73}.maze-marker{background:var(--teal-ink);border-radius:50%;position:absolute;inset:19%;box-shadow:0 1px 3px #0000004d}.maze-exit{color:var(--success);font-size:20px;line-height:1}.maze-start{color:var(--muted);font-size:20px;line-height:1}.maze-log{font-family:var(--font-mono-stack);color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:13px}.maze-log-word{color:var(--slate);font-weight:600}.popup-stage{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);min-height:340px;margin-top:6px;position:relative;overflow:hidden}.popup-base{flex-direction:column;min-height:340px;padding:22px;display:flex;position:relative}.popup-base-note{font-family:var(--font-mono-stack);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 12px;font-size:12px}.popup-reveal-wrap{margin-top:auto}.popup-scrim{z-index:5;background:#0f172a8c;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.popup-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--shadow-lg);padding:22px;position:relative}.popup-modal h2{margin:0 0 8px;font-size:18px}.popup-p{color:var(--muted);margin:0 0 12px;font-size:14px}.popup-warn{color:var(--coral);margin:0 0 10px;font-size:13px}.popup-row{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.popup-toggle{align-items:center;gap:8px;margin:8px 0;font-size:14px;display:flex}.popup-x{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1;position:absolute;top:8px;right:10px}.popup-x:disabled{opacity:.35;cursor:not-allowed}.popup-chat{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:224px;box-shadow:var(--shadow-lg);z-index:4;position:absolute;bottom:14px;right:14px}.popup-chat-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 8px 8px 12px;font-size:13px;font-weight:600;display:flex}.popup-chat-head .popup-x{font-size:20px;position:static}.popup-chat-body{color:var(--muted);margin:0;padding:12px;font-size:13px}.pong-board{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:crosshair;touch-action:none;background:#eef2f7;width:100%;max-width:100%;height:auto;margin:4px auto 0;display:block}.cards-board{grid-template-columns:repeat(4,1fr);gap:10px;max-width:460px;margin:4px auto 0;display:grid}.card-tile{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;font:inherit;color:#fff;background:var(--slate);box-shadow:inset 0 0 0 3px var(--slate-2), var(--shadow);border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;transition:background .15s,box-shadow .15s,transform .1s;display:flex;position:relative}.card-tile:hover:not(:disabled){transform:translateY(-2px)}.card-tile:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.card-tile.up,.card-tile.matched{color:var(--slate);box-shadow:inset 0 0 0 3px var(--border-strong), var(--shadow);cursor:default;background:#fff}.card-tile.matched{box-shadow:inset 0 0 0 3px var(--success), var(--shadow)}.card-tile svg{width:54%;height:54%}.card-index{font-family:var(--font-mono-stack);color:#fff9;font-size:22px;font-weight:700}.card-name{color:var(--muted);font-size:12px;font-weight:600;line-height:1}.card-tick{color:var(--success);font-size:14px;font-weight:800;position:absolute;top:6px;right:8px}.crossing-board{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#eef2f7;width:100%;max-width:100%;height:auto;margin:4px auto 0;display:block}.crossing-swatch{vertical-align:-1px;background:#dc2626;border-radius:50%;width:11px;height:11px;margin-right:5px;display:inline-block}.crossing-ask{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.nato-code{font-family:var(--font-mono-stack);letter-spacing:.16em;color:var(--slate);text-align:center;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);margin:2px 0;padding:14px 18px;font-size:clamp(34px,8vw,52px);font-weight:700}.nato-mic-dot{background:var(--border-strong);border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.nato-mic-dot.on{background:var(--error);box-shadow:0 0 0 4px #dc26262e}.nato-row{align-items:baseline;gap:8px;padding:2px 0;font-size:14px;display:flex}.nato-lab{color:var(--muted);flex-shrink:0;min-width:84px;font-size:13px}.nato-heard{color:var(--slate);word-break:break-word}.nato-assembled{font-family:var(--font-mono-stack);letter-spacing:.18em;color:var(--teal-ink);font-size:18px}.nato-mapping{font-family:var(--font-mono-stack);color:var(--muted);word-break:break-word;font-size:12px}.nato-verdict{color:#b45309;font-weight:600}.nato-code-final{font-family:var(--font-mono-stack);letter-spacing:.2em;color:var(--slate);margin:6px 0;font-size:28px;font-weight:700}.nato-heard-final{font-family:var(--font-mono-stack);color:var(--muted);word-break:break-word;margin:0 0 6px;font-size:13px}
