@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ffc7b595a48b6846-s.3q9gh2jvntrwt.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:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/276a8f4fe816cb6b-s.p.2v2sz4qlut9s1.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/82b67ad56d243b47-s.09bkcrcuv-0po.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:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/33ee198db9637ef4-s.23qr8woi9ij9e.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:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fbb7028efdf70529-s.1_0gbi-gsbqmd.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:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/82450a180bcad83c-s.p.0p-wng2nn8o-p.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:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ffc7b595a48b6846-s.3q9gh2jvntrwt.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:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/276a8f4fe816cb6b-s.p.2v2sz4qlut9s1.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/82b67ad56d243b47-s.09bkcrcuv-0po.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:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/33ee198db9637ef4-s.23qr8woi9ij9e.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:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fbb7028efdf70529-s.1_0gbi-gsbqmd.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:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/82450a180bcad83c-s.p.0p-wng2nn8o-p.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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ffc7b595a48b6846-s.3q9gh2jvntrwt.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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/276a8f4fe816cb6b-s.p.2v2sz4qlut9s1.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/82b67ad56d243b47-s.09bkcrcuv-0po.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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/33ee198db9637ef4-s.23qr8woi9ij9e.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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fbb7028efdf70529-s.1_0gbi-gsbqmd.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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/82450a180bcad83c-s.p.0p-wng2nn8o-p.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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ffc7b595a48b6846-s.3q9gh2jvntrwt.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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/276a8f4fe816cb6b-s.p.2v2sz4qlut9s1.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/82b67ad56d243b47-s.09bkcrcuv-0po.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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/33ee198db9637ef4-s.23qr8woi9ij9e.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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fbb7028efdf70529-s.1_0gbi-gsbqmd.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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/82450a180bcad83c-s.p.0p-wng2nn8o-p.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:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/ffc7b595a48b6846-s.3q9gh2jvntrwt.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:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/276a8f4fe816cb6b-s.p.2v2sz4qlut9s1.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/82b67ad56d243b47-s.09bkcrcuv-0po.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:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/33ee198db9637ef4-s.23qr8woi9ij9e.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:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/fbb7028efdf70529-s.1_0gbi-gsbqmd.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:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/82450a180bcad83c-s.p.0p-wng2nn8o-p.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:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.Lr5IjW_className{font-family:Manrope,Manrope Fallback;font-style:normal}.Lr5IjW_variable{--font-sans:"Manrope", "Manrope Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c64053b510252f55-s.1kd-r_s9smv5m.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/733da6bd8dac84c8-s.p.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/784318cea1dfcfa4-s.0-oo9_1x_xmvg.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e114457660b62ed-s.36fqqi66-3tjb.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9fecbd3e5ea9bccb-s.3_z45zcoc-xoz.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9a321a2c78eff0b5-s.p.1bkzbscqrt8rl.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c64053b510252f55-s.1kd-r_s9smv5m.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/733da6bd8dac84c8-s.p.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/784318cea1dfcfa4-s.0-oo9_1x_xmvg.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e114457660b62ed-s.36fqqi66-3tjb.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9fecbd3e5ea9bccb-s.3_z45zcoc-xoz.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9a321a2c78eff0b5-s.p.1bkzbscqrt8rl.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.DFQ_9q_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.DFQ_9q_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--paper:#f4f5f4;--paper-2:#e9ebe8;--card:#fff;--ink:#111311;--ink-2:#3b3f3c;--muted:#6c716d;--line:#e2e5e1;--line-2:#cdd1cc;--accent:#83b81a;--accent-2:#74a612;--accent-soft:#eef6df;--accent-ink:#3e6a00;--on-accent:#0d1405;--brass:#2c302d;--brass-2:#5d635e;--brass-soft:#eceeeb;--ok:#2f7d32;--ok-soft:#e4f3e2;--warn:#c76b00;--warn-soft:#fff2de;--danger:#d13a2f;--danger-soft:#fde8e6;--r-lg:14px;--r-md:10px;--r-sm:8px;--shadow-1:0 1px 2px #1113110a, 0 6px 20px -12px #11131124;--shadow-2:0 2px 6px #1113110d, 0 20px 50px -24px #11131138;--sans:var(--font-sans), "Manrope", "Segoe UI", system-ui, sans-serif;--display:var(--font-sans), "Manrope", "Segoe UI", system-ui, sans-serif;--mono:var(--font-mono), "JetBrains Mono", ui-monospace, Menlo, monospace;--container:1180px;--topbar:64px;--tabbar:0px;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--topbar) + 12px)}body{font-family:var(--sans);color:var(--ink);background:var(--paper);min-height:100dvh;padding-bottom:var(--tabbar);margin:0;font-size:15px;line-height:1.55}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.025em;color:var(--ink);text-wrap:balance;margin:0;font-weight:800;line-height:1.15}h1{font-size:clamp(26px,3.4vw,36px)}h2{font-size:clamp(19px,2.2vw,24px)}h3{font-size:16px;font-family:var(--sans);letter-spacing:0}h4{font-size:15px;font-family:var(--sans);letter-spacing:0;font-weight:600}p{margin:0}p+p{margin-top:.6em}a{color:inherit;text-decoration:none}img,svg,video{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:var(--accent-soft)}small{font-size:12.5px}ul,ol{margin:0;padding-left:1.2em}li+li{margin-top:.35em}details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}hr{border:0;border-top:1px solid var(--line);margin:0}pre,code{font-family:var(--mono);font-size:13px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--accent);color:var(--on-accent);border-radius:8px;padding:8px 12px;position:absolute;top:-48px;left:12px}.skip:focus{top:12px}.container{width:min(100% - 32px, var(--container));margin-inline:auto}.page{padding:28px 0 56px}.narrow{width:min(100% - 32px,820px);margin-inline:auto}main{min-height:calc(100dvh - var(--topbar))}.main-immersive{background:#0e1116}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{gap:12px;display:grid}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.ok-text{color:var(--ok)}.warn-text{color:var(--warn)}.danger-text{color:var(--danger)}.preserve{white-space:pre-wrap}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:11.5px;font-weight:600;display:inline-flex}.eyebrow.muted{color:var(--muted)}.lead{color:var(--ink-2);max-width:60ch;font-size:17px}.topbar{z-index:40;height:var(--topbar);-webkit-backdrop-filter:saturate(140%)blur(14px);background:#ffffffeb;border-bottom:1px solid #11131114;position:sticky;top:0}.topbar-dark{color:#e9edf2;background:#0e1116cc;border-bottom-color:#ffffff14}.topbar-dark .topnav a{color:#b8c2cf}.topbar-dark .topnav a.active{color:var(--on-accent)}.topbar-dark .brand-name{color:#fff}.topbar-inner{width:min(100% - 32px, var(--container));grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;height:100%;margin-inline:auto;display:grid}.brand{align-items:center;gap:10px;display:inline-flex}.brand-mark{flex:none;display:inline-flex}.brand-name{font-family:var(--display);letter-spacing:-.035em;color:var(--ink);white-space:nowrap;font-size:19px;font-weight:800}.brand-name b{color:var(--accent);font-weight:800}.topnav{justify-self:center;gap:2px;padding:4px;display:flex}.topnav a{color:var(--ink-2);transition:background .2s var(--ease), color .2s var(--ease);white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:7px 13px;font-size:13.5px;font-weight:600;display:inline-flex}.topnav a:hover{color:var(--ink);background:#1113110d}.topnav a.active{background:var(--accent);color:var(--on-accent)}.tabbar{display:none}@media (max-width:860px){:root{--topbar:56px;--tabbar:calc(64px + env(safe-area-inset-bottom))}.topbar-inner{grid-template-columns:1fr auto}.topnav{display:none}.tabbar{z-index:45;height:var(--tabbar);padding:6px 6px calc(6px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);background:#fffffff7;grid-template-columns:repeat(5,1fr);align-items:end;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{height:52px;color:var(--muted);letter-spacing:.01em;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:500;display:flex}.tabbar a.active{color:var(--accent-ink)}.tabbar a.tab-camera{position:relative}.tabbar a.tab-camera svg{background:var(--accent);width:48px;height:48px;color:var(--on-accent);border-radius:14px;margin-top:-24px;padding:12px;box-shadow:0 8px 24px -8px #74a612b3}.tabbar a.tab-camera.active svg{background:var(--ink)}.main-immersive+.tabbar{background:#0e1116e6;border-top-color:#ffffff14}.main-immersive+.tabbar a{color:#8d99a7}.main-immersive+.tabbar a.active{color:#fff}}.btn{min-height:42px;transition:transform .15s var(--ease), background .2s, border-color .2s, box-shadow .2s;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:700;line-height:1;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--accent);color:var(--on-accent);box-shadow:0 8px 20px -12px #74a612e6}.btn.primary:hover:not(:disabled){background:var(--accent-2)}.btn.accent{background:var(--ink);color:#fff}.btn.accent:hover:not(:disabled){background:#2b2f2c}.btn.light{background:var(--accent);color:var(--on-accent);box-shadow:0 10px 24px -12px #0009}.btn.light:hover:not(:disabled){background:var(--accent-2)}.btn.secondary{background:var(--card);color:var(--ink);border-color:var(--line-2)}.btn.secondary:hover:not(:disabled){border-color:var(--ink-2)}.btn.ghost{color:var(--ink-2);background:0 0}.btn.ghost:hover:not(:disabled){color:var(--ink);background:#1113110d}.btn.sm{border-radius:8px;min-height:34px;padding:0 13px;font-size:13px}.btn.lg{border-radius:10px;min-height:50px;padding:0 24px;font-size:15px}.btn.full{width:100%}.icon-btn{border:1px solid var(--line);background:var(--card);width:38px;height:38px;color:var(--ink-2);border-radius:999px;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.icon-btn:hover:not(:disabled){border-color:var(--ink-2);color:var(--ink)}.text-link{color:var(--accent-ink);background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:700;display:inline-flex}.text-link:hover{text-underline-offset:3px;text-decoration:underline}input[type=text],input[type=search],input[type=number],input[type=password],input[type=email],input:not([type]),textarea,select{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);width:100%;padding:10px 12px;font-size:15px;transition:border-color .2s,box-shadow .2s}textarea{resize:vertical;min-height:96px;line-height:1.5}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #83b81a47}input::placeholder,textarea::placeholder{color:#a3acb6}.field{color:var(--ink-2);gap:6px;font-size:13.5px;font-weight:600;display:grid}.field>small{color:var(--muted);font-weight:400}.search{border:1px solid var(--line-2);background:var(--card);color:var(--muted);border-radius:12px;align-items:center;gap:10px;padding:0 14px;display:flex}.search input{box-shadow:none;background:0 0;border:0;padding:11px 0}.search input:focus{box-shadow:none}.check{color:var(--ink-2);cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:2px 0 0}.switch{cursor:pointer;align-items:center;gap:10px;font-size:14px;font-weight:500;display:inline-flex;position:relative}.switch input{appearance:none;background:var(--line-2);border-radius:999px;flex:none;width:42px;height:24px;margin:0;transition:background .2s;position:relative}.switch input:after{content:"";width:18px;height:18px;transition:transform .2s var(--ease);background:#fff;border-radius:999px;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch input:checked{background:var(--ok)}.switch input:checked:after{transform:translate(18px)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.card.pad{padding:22px}.card.soft{background:var(--paper-2);box-shadow:none;border-color:#0000}.card.dark{background:var(--ink);color:#fff;border-color:#0000}.card.dark h2,.card.dark h3{color:#fff}.card.dark .muted{color:#a9b6c6}.pill{background:var(--paper-2);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.brass{background:var(--brass-soft);color:var(--ink-2)}.pill.accent{background:var(--accent-soft);color:var(--accent-ink)}.pill.dark{background:var(--ink);color:#fff}.notice{border-radius:var(--r-md);background:var(--paper-2);color:var(--ink-2);padding:12px 14px;font-size:14px}.notice.warn{background:var(--warn-soft);color:#7a4a10}.notice.danger{background:var(--danger-soft);color:var(--danger)}.notice.ok{background:var(--ok-soft);color:#1f5a41}.notice strong{color:inherit;margin-bottom:3px;display:block}.meter{background:var(--paper-2);border-radius:999px;height:6px;overflow:hidden}.meter>i{border-radius:inherit;background:var(--accent);width:0;height:100%;transition:width .6s var(--ease);display:block}.meter.accent>i{background:var(--accent)}.meter.ok>i{background:var(--ok)}.meter-label{color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:12.5px;display:flex}.meter-label strong{color:var(--ink);font-variant-numeric:tabular-nums}.segmented{background:#1113110d;border-radius:14px;gap:2px;padding:4px;display:inline-flex}.segmented button{color:var(--ink-2);background:0 0;border:0;border-radius:10px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .2s,color .2s,box-shadow .2s}.segmented button[aria-selected=true]{background:var(--card);color:var(--ink);box-shadow:var(--shadow-1)}.segmented button small{color:var(--muted);margin-left:6px;font-weight:500}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head h1{margin:0}.page-head p{color:var(--ink-2);max-width:56ch;margin-top:6px}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:var(--r-lg);justify-items:center;gap:8px;padding:40px 20px;display:grid}.empty h3{color:var(--ink)}.toast{left:50%;bottom:calc(var(--tabbar) + 18px);z-index:60;background:var(--ink);color:#fff;box-shadow:var(--shadow-2);animation:rise .35s var(--ease);border-radius:12px;align-items:center;gap:10px;padding:10px 14px 10px 16px;font-size:14px;font-weight:500;display:inline-flex;position:fixed;transform:translate(-50%)}.toast[hidden]{display:none}.toast button{color:#cbd3dc;background:0 0;border:0;padding:0 2px;font-size:18px;line-height:1}.modal-backdrop{z-index:70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade .2s var(--ease);background:#11131173;place-items:end center;padding:0;display:grid;position:fixed;inset:0}.modal{background:var(--card);width:100%;max-width:560px;max-height:92dvh;padding:18px 20px calc(22px + env(safe-area-inset-bottom));animation:sheet .3s var(--ease);border-radius:18px 18px 0 0;outline:none;overflow:auto}.modal.wide{max-width:980px}.modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.modal-head h2{font-size:17px}@media (min-width:720px){.modal-backdrop{place-items:center;padding:24px}.modal{animation:pop .25s var(--ease);border-radius:18px;padding:22px 24px}}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.reveal{animation:reveal .55s var(--ease) both}.reveal.d1{animation-delay:60ms}.reveal.d2{animation-delay:.12s}.reveal.d3{animation-delay:.18s}.reveal.d4{animation-delay:.24s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.kits h1{margin-bottom:22px}.kit-grid{gap:16px;display:grid}.kit-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);max-width:820px;box-shadow:var(--shadow-1);transition:box-shadow .25s, transform .25s var(--ease);grid-template-columns:1.1fr 1fr;display:grid;overflow:hidden}.kit-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.kit-card img{object-fit:cover;width:100%;height:100%;min-height:240px}.kit-card-body{align-content:center;justify-items:start;gap:10px;padding:28px;display:grid}.kit-card-body h2{font-size:clamp(22px,2.8vw,30px)}.kit-card-body .btn{margin-top:8px}@media (max-width:720px){.kit-card{grid-template-columns:1fr}.kit-card img{aspect-ratio:16/10;min-height:0}.kit-card-body{padding:20px}}.kit-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.kit-head h1{font-size:clamp(28px,3.8vw,40px)}.kit-switch{margin:0 0 18px;display:flex}.topics{gap:14px;display:grid}.topic{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden}.topic-head{justify-content:space-between;align-items:center;gap:14px;padding:16px 20px 8px;display:flex}.topic-head h2{font-size:16px}.work-list{gap:2px;margin:0;padding:0 8px 8px;list-style:none;display:grid}.work-list li+li{margin:0}.work-row{border-radius:var(--r-md);align-items:center;gap:14px;padding:10px 12px;transition:background .2s;display:flex}.work-row strong{flex:1;min-width:0;font-size:15px;font-weight:500}.work-row small{white-space:nowrap}.work-row:hover{background:var(--paper)}.work-row:hover .work-arrow{color:var(--accent-ink);transform:translate(3px)}.work-num{background:var(--paper-2);width:38px;height:38px;font-family:var(--mono);color:var(--ink-2);border-radius:12px;flex:none;place-items:center;font-size:14px;font-weight:500;display:grid}.work-row.done .work-num,.work-num.done{background:var(--ok-soft);color:var(--ok)}.work-arrow{color:var(--line-2);transition:transform .2s var(--ease), color .2s;flex:none}.parts-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.part{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);align-content:start;justify-items:start;gap:8px;padding:16px;display:grid}.part-top{justify-content:space-between;align-items:center;width:100%;display:flex}.part-num{font-family:var(--mono);color:var(--muted);letter-spacing:.04em;font-size:12px}.part h3{font-family:var(--sans);font-size:15px;font-weight:600}@media (max-width:860px){.kit-head .row{width:100%}.kit-head .btn{white-space:normal;text-align:center;flex:1;min-height:46px}.work-num{width:34px;height:34px}.topic-head{padding:14px 16px 6px}}.lesson{padding:18px 0 70px}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:13.5px;font-weight:500;display:inline-flex}.back-link:hover{color:var(--ink)}.lesson-title{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.lesson-title h1{margin-top:6px;font-size:clamp(24px,3.2vw,34px)}.lesson-grid{grid-template-columns:220px minmax(0,1fr) 340px;align-items:start;gap:22px;display:grid}.lesson-nav{top:calc(var(--topbar) + 16px);gap:12px;display:grid;position:sticky}.lesson-nav nav{gap:2px;display:grid}.lesson-nav button{border-radius:var(--r-sm);text-align:left;color:var(--ink-2);background:0 0;border:0;align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:500;transition:background .2s,color .2s;display:flex}.lesson-nav button:hover{background:#1113110d}.lesson-nav button span{background:var(--paper-2);width:24px;height:24px;font-family:var(--mono);border-radius:8px;flex:none;place-items:center;font-size:12px;display:grid}.lesson-nav button.active{background:var(--accent);color:var(--on-accent)}.lesson-nav button.active span{color:var(--on-accent);background:#ffffff59}.lesson-nav button.passed span{background:var(--accent-soft);color:var(--accent-ink)}.lesson-source{color:var(--muted);padding:0 10px;font-size:12.5px}.lesson-source:hover{color:var(--ink)}.lesson-main{gap:16px;display:grid}.lesson-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);scroll-margin-top:calc(var(--topbar) + 16px);gap:18px;padding:clamp(18px,3vw,30px);display:grid}.lesson-card h3{font-size:16px;font-weight:600}.lesson-stage{gap:4px;display:grid}.lesson-photo{border-radius:var(--r-md);background:var(--paper-2);margin:0;overflow:hidden}.lesson-photo img,.schematic-wrap{aspect-ratio:16/10;object-fit:cover;width:100%}.schematic{width:100%;height:100%}.lesson-photo figcaption{color:var(--muted);padding:8px 12px;font-size:12.5px}.lesson-photo-extra{border-radius:var(--r-md);margin-top:10px}.tags{flex-wrap:wrap;gap:6px;display:flex}.theory{gap:14px;display:grid}.theory section{border-left:2px solid var(--line-2);gap:4px;padding-left:14px;display:grid}.theory p{color:var(--ink-2)}.formula{border-radius:var(--r-md);background:var(--ink);color:#fff;gap:6px;padding:18px 20px;display:grid}.formula .eyebrow{color:#a9b6c6}.formula strong{font-family:var(--mono);font-size:21px;font-weight:500}.formula .muted{color:#a9b6c6}.prep-list{gap:6px;display:grid}.prep-item{border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;transition:border-color .2s,background .2s;display:grid}.prep-item:has(input:checked){background:var(--ok-soft);border-color:#0000}.prep-item input{width:18px;height:18px;accent-color:var(--ok);margin:0}.prep-item span{display:grid}.prep-item small{color:var(--muted)}.prep-item strong{font-family:var(--mono);color:var(--ink-2)}.safety{border-radius:var(--r-md);background:var(--warn-soft);color:#6a3a0e;gap:8px;padding:16px 18px;display:grid}.safety h3{color:#6a3a0e}.steps{counter-reset:step;gap:10px;padding:0;list-style:none;display:grid}.steps li{grid-template-columns:30px 1fr;gap:12px;margin:0;display:grid}.steps li span{background:var(--paper-2);width:30px;height:30px;font-family:var(--mono);color:var(--ink-2);border-radius:10px;place-items:center;font-size:13px;display:grid}.steps li p{color:var(--ink-2);padding-top:4px}.check.confirm{border:1px solid var(--line-2);border-radius:var(--r-md);padding:12px 14px}.check.confirm:has(input:checked){background:var(--ok-soft);border-color:#0000}.procedure{border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line);gap:14px;padding:18px;display:grid}.procedure-text{font-size:17px;line-height:1.5}.photo-details summary,.expected summary{font-size:14px}.expected p{border-radius:var(--r-md);background:var(--paper-2);color:var(--ink-2);margin-top:10px;padding:12px 14px}.quiz{border-bottom:1px solid var(--line);gap:10px;padding-bottom:18px;display:grid}.quiz:last-of-type{border-bottom:0}.quiz h3 span{color:var(--muted);font-family:var(--mono);font-weight:500}.quiz fieldset{border:0;gap:6px;margin:0;padding:0;display:grid}.quiz-option{border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;transition:border-color .2s,background .2s;display:flex}.quiz-option.selected{border-color:var(--accent);background:var(--accent-soft)}.quiz-option input{accent-color:var(--accent);margin:0}.numeric{color:var(--ink-2);align-items:center;gap:10px;font-size:13.5px;font-weight:600;display:flex}.numeric input{max-width:160px;font-family:var(--mono)}.finish{text-align:center;justify-items:center;gap:12px;padding:10px 0;display:grid}.finish-icon{background:var(--paper-2);width:64px;height:64px;color:var(--muted);border-radius:999px;place-items:center;display:grid}.finish-icon.done{background:var(--ok-soft);color:var(--ok)}.finish-score{color:var(--muted);align-items:baseline;gap:10px;font-size:14px;display:flex}.finish-score strong{font-family:var(--display);color:var(--ink);font-size:22px}.finish .btn.full{max-width:360px}.lesson-ai{top:calc(var(--topbar) + 16px);max-height:calc(100dvh - var(--topbar) - 32px);display:flex;position:sticky}.fab{display:none}.table-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-md);overflow-x:auto}.measure-table{border-collapse:collapse;width:100%;font-size:14px}.measure-table th{text-align:left;color:var(--ink-2);background:var(--paper-2);white-space:nowrap;padding:10px;font-size:12.5px;font-weight:600}.measure-table th small{color:var(--muted);font-weight:500;display:block}.measure-table td{border-top:1px solid var(--line);padding:6px}.measure-table tbody th{border-top:1px solid var(--line);font-family:var(--mono);color:var(--muted);background:0 0}.measure-table input{min-width:92px;font-family:var(--mono);padding:8px 10px}.measure-table input[aria-invalid=true]{border-color:var(--danger)}.calc-row{border-radius:var(--r-md);background:var(--paper-2);flex-wrap:wrap;gap:8px 18px;padding:10px 14px;font-size:14px;display:flex}.calc-row b{color:var(--ink-2)}.chart{gap:8px;display:grid}.chart svg{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);width:100%;height:auto}.model{border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line);gap:12px;padding:18px;display:grid}.model svg{background:var(--card);border-radius:var(--r-sm);width:100%;height:auto}.model-controls{gap:10px;display:grid}.model-controls label{color:var(--ink-2);gap:6px;font-size:13.5px;display:grid}.model-controls input[type=range]{accent-color:var(--accent);width:100%}@media (max-width:1100px){.lesson-grid{grid-template-columns:200px minmax(0,1fr)}.lesson-ai{display:none}.fab{right:16px;bottom:calc(var(--tabbar) + 16px);z-index:30;box-shadow:var(--shadow-2);display:inline-flex;position:fixed}}@media (max-width:860px){.lesson{padding-top:10px}.lesson-grid{grid-template-columns:1fr;gap:14px}.lesson-nav{position:static}.lesson-nav nav{scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.lesson-nav nav::-webkit-scrollbar{display:none}.lesson-nav button{border:1px solid var(--line);background:var(--card);flex:none;padding:7px 12px 7px 7px;font-size:13px}.lesson-nav button.active{border-color:var(--accent)}.lesson-source{display:none}.lesson-title-actions{justify-content:space-between;width:100%}}.assistant{width:100%;min-height:420px;max-height:inherit;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);flex-direction:column;display:flex;overflow:hidden}.assistant.tall{min-height:min(560px, calc(100dvh - var(--topbar) - 200px))}.assistant-head{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:14px 16px;display:grid}.assistant-head strong{font-size:14px;display:block}.assistant-head small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.assistant-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent-ink);border-radius:10px;place-items:center;display:grid}.dot{background:var(--line-2);border-radius:999px;width:9px;height:9px}.dot.on{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.assistant-scroll{background:linear-gradient(var(--paper) 0%, var(--card) 60px);flex:1;align-content:start;gap:10px;min-height:160px;padding:14px 16px;display:grid;overflow-y:auto}.assistant-hello p{color:var(--ink-2);border-radius:var(--r-md);background:var(--paper-2);padding:12px 14px;font-size:14px}.msg{border-radius:16px;max-width:92%;padding:10px 13px;font-size:14px;line-height:1.5}.msg p{white-space:pre-wrap}.msg small{color:var(--muted);margin-top:6px;font-size:11.5px;display:block}.msg.user{background:var(--ink);color:#fff;border-bottom-right-radius:6px;justify-self:end}.msg.assistant{background:var(--paper-2);border-bottom-left-radius:6px;justify-self:start}.msg.typing{gap:4px;padding:12px 14px;display:flex}.msg.typing span{background:var(--muted);border-radius:999px;width:6px;height:6px;animation:1.2s infinite blink}.msg.typing span:nth-child(2){animation-delay:.2s}.msg.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.3}40%{opacity:1}}.assistant-quick{flex-wrap:wrap;gap:6px;display:flex}.assistant-quick button{border:1px solid var(--line);background:var(--card);color:var(--ink-2);border-radius:10px;padding:6px 11px;font-size:12.5px;font-weight:500;transition:border-color .2s,background .2s}.assistant-quick button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink)}.assistant-foot{gap:10px;padding:12px 16px 14px;display:grid}.assistant-form{grid-template-columns:1fr auto;align-items:end;gap:8px;display:grid}.assistant-form textarea{resize:none;border-radius:12px;min-height:44px;max-height:140px;padding:11px 14px}.send{background:var(--accent);width:44px;height:44px;color:var(--on-accent);border:0;border-radius:10px;place-items:center;transition:background .2s;display:grid}.send:hover:not(:disabled){background:var(--accent-2)}.assistant-pick{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;display:flex}.assistant-pick select{flex:1;width:auto;min-width:220px}@media (max-width:860px){.assistant.tall{min-height:520px}}.lab-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:22px;display:grid}.lab-inventory{gap:14px;padding:16px;display:grid}.lab-add{gap:8px;display:grid;position:relative}.suggest{z-index:5;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);gap:2px;margin:0;padding:6px;list-style:none;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0}.suggest li{margin:0}.suggest button{text-align:left;border-radius:var(--r-sm);background:0 0;border:0;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:14px;display:grid}.suggest button:hover{background:var(--paper)}.suggest button span{font-family:var(--mono);color:var(--muted);font-size:12px}.stock{gap:2px;margin:0;padding:0;list-style:none;display:grid}.stock li{margin:0}.stock-row{border-radius:var(--r-md);grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 6px 8px 10px;display:grid}.stock-row:hover{background:var(--paper)}.stock-name{min-width:0;font-size:14px;font-weight:600}.qty{border:1px solid var(--line-2);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.qty button{width:32px;height:32px;color:var(--ink-2);background:0 0;border:0;place-items:center;display:grid}.qty button:hover{background:var(--paper-2)}.qty input{text-align:center;width:40px;font-family:var(--mono);appearance:textfield;background:0 0;border:0;padding:4px 0}.qty input::-webkit-outer-spin-button{-webkit-appearance:none}.qty input::-webkit-inner-spin-button{-webkit-appearance:none}.qty input:focus{box-shadow:none}.icon-btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.icon-btn.ghost:hover{color:var(--danger);background:var(--danger-soft)}.empty.compact{padding:28px 16px}.lab-works{gap:12px;display:grid}.lab-works .section-title{margin:0}.lab-works .section-title span{font-family:var(--sans);margin-left:8px;font-size:14px;font-weight:400}.ready-list{gap:8px;display:grid}.ready{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:0 14px}.ready.ok{border-color:#bfe0cf}.ready summary{grid-template-columns:34px 1fr auto 16px;align-items:center;gap:12px;padding:12px 0;display:grid}.ready summary>b{min-width:0;font-size:14.5px;font-weight:600}.ready-num{font-family:var(--mono);color:var(--muted);font-size:13px}.chev{color:var(--muted);transition:transform .2s var(--ease)}.ready[open] .chev{transform:rotate(180deg)}.need-list{gap:4px;margin:0;padding:4px 0 10px;font-size:13.5px;list-style:none;display:grid}.need-list li{border-top:1px dashed var(--line);justify-content:space-between;gap:10px;margin:0;padding:4px 0;display:flex}.need-list b{font-family:var(--mono);font-weight:500}.ready>.text-link,.ready>p{margin-bottom:12px}@media (max-width:860px){.lab-grid{grid-template-columns:1fr}.page-head .row{width:100%}.page-head .row .btn{flex:1}.ready summary{grid-template-columns:28px 1fr auto 16px;gap:8px}}.cam{color:#e9edf2;min-height:calc(100dvh - var(--topbar));padding:20px 0 40px}.cam .eyebrow,.cam .muted{color:#8d99a7}.cam-layout{width:min(100% - 32px, var(--container));grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;margin-inline:auto;display:grid}.cam-video{aspect-ratio:16/10;background:#161b22;border:1px solid #ffffff14;border-radius:20px;position:relative;overflow:hidden;box-shadow:0 30px 80px -30px #000c}.cam-video video{object-fit:cover;width:100%;height:100%;display:none}.cam-video.on video{display:block}.cam-empty{text-align:center;color:#c8d0d9;background:radial-gradient(600px 300px at 50% 30%,#ffffff0f,#0000 70%);place-content:center;justify-items:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.cam-empty h1{color:#fff;font-size:clamp(24px,3.2vw,34px)}.cam-empty p{max-width:42ch}.cam-empty small{color:#8d99a7;max-width:48ch}.cam-topline{justify-content:space-between;align-items:center;display:flex;position:absolute;top:14px;left:14px;right:14px}.live{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.1em;text-transform:uppercase;color:#cbd3dc;background:#00000073;border-radius:999px;align-items:center;gap:7px;padding:6px 11px;font-size:11.5px;font-weight:600;display:inline-flex}.live i{background:#8d99a7;border-radius:999px;width:8px;height:8px}.live.on i{background:#e5484d;animation:1.6s infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #e5484d99}60%{box-shadow:0 0 0 7px #e5484d00}}.cam-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#00000073;border:1px solid #ffffff24;border-radius:999px;place-items:center;width:38px;height:38px;display:grid}.cam-btn:hover:not(:disabled){background:#ffffff24}.viewfinder{pointer-events:none;opacity:.55;background:linear-gradient(#fff,#fff) 0 0/28px 2px no-repeat,linear-gradient(#fff,#fff) 0 0/2px 28px no-repeat,linear-gradient(#fff,#fff) 100% 0/28px 2px no-repeat,linear-gradient(#fff,#fff) 100% 0/2px 28px no-repeat,linear-gradient(#fff,#fff) 0 100%/28px 2px no-repeat,linear-gradient(#fff,#fff) 0 100%/2px 28px no-repeat,linear-gradient(#fff,#fff) 100% 100%/28px 2px no-repeat,linear-gradient(#fff,#fff) 100% 100%/2px 28px no-repeat;border-radius:18px;position:absolute;inset:18% 22%}.cam-label{-webkit-backdrop-filter:blur(14px);background:#0e1116b8;border:1px solid #ffffff1a;border-radius:14px;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:14px 16px;transition:border-color .3s,background .3s;display:grid;position:absolute;bottom:14px;left:14px;right:14px}.cam-label.found{background:#161b22d9;border-color:#ffffff73}.cam-label-text{gap:2px;min-width:0;display:grid}.cam-label-text strong{font-family:var(--display);color:#fff;font-size:clamp(17px,2.2vw,24px);font-weight:600;line-height:1.15;transition:opacity .2s}.cam-label-text small{color:#a9b6c6}.cam-ring{width:30px;height:30px;display:block}.cam-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.cam-ring circle{fill:none;stroke:#ffffff1f;stroke-width:3px}.cam-ring .arc{stroke:#fff;stroke-linecap:round;stroke-dasharray:94.2;stroke-dashoffset:94.2px;animation:linear forwards ring;animation-duration:inherit}@keyframes ring{to{stroke-dashoffset:0}}.cam-alternatives{flex-wrap:wrap;gap:8px;display:flex;position:absolute;bottom:100px;left:14px;right:14px}.cam-alternatives button{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e1116b3;border:1px solid #ffffff2e;border-radius:10px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;display:inline-flex}.cam-alternatives button:hover{border-color:#fff}.cam-error{margin-top:12px}.cam-side{gap:12px;display:grid}.cam-panel{border-radius:var(--r-lg);background:#ffffff0a;border:1px solid #ffffff14;gap:8px;padding:16px;display:grid}.cam-panel summary{cursor:pointer}.cam-panel select{color:#fff;background:#161b22;border-color:#ffffff24}.seen{gap:4px;margin:0;padding:0;list-style:none;display:grid}.seen li{border-top:1px solid #ffffff0f;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:0;padding:6px 0;font-size:14px;display:grid}.seen li:first-child{border-top:0}.seen span{font-family:var(--mono);color:#8d99a7;font-size:12px}.cam-mini{color:#fff;background:0 0;border:1px solid #ffffff29;border-radius:999px;place-items:center;width:30px;height:30px;display:grid}.cam-mini:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.cam-link{color:#fff;align-items:center;gap:6px;padding:4px 2px;font-size:14px;font-weight:600;display:inline-flex}@media (max-width:960px){.cam{padding:12px 0 28px}.cam-layout{grid-template-columns:1fr;gap:14px}.cam-video{aspect-ratio:3/4;border-radius:20px}.cam-label{grid-template-columns:1fr auto;padding:12px 14px}.cam-label .btn{min-height:40px;padding:0 14px}.cam-label-text strong{font-size:18px}.cam-ring{display:none}.viewfinder{inset:22% 14%}.cam-alternatives{bottom:96px}}.journal{gap:18px;display:grid}.journal .page-head{margin-bottom:0}.section-title{margin-bottom:12px;font-size:17px}.stat{align-content:start;gap:8px;display:grid}.stat>span{color:var(--muted);font-size:13px}.stat strong{font-family:var(--display);font-size:28px;font-weight:600;line-height:1}.stat strong small{color:var(--muted);margin-left:2px;font-size:16px}.continue{transition:transform .2s var(--ease), box-shadow .2s;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;display:flex}.continue:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.continue small{letter-spacing:.12em;text-transform:uppercase;color:#a9b6c6;font-size:11px;font-weight:600}.continue h2{margin-top:4px;font-size:17px}.records{gap:6px;margin:0;padding:0;list-style:none;display:grid}.records li{margin:0}.record{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);grid-template-columns:40px 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.record-body{gap:2px;min-width:0;display:grid}.record-body b{font-weight:600}.record-body a:hover b{text-underline-offset:3px;text-decoration:underline}.record-body small{color:var(--muted)}.data{padding:16px 18px}.data summary{cursor:pointer}.data-body{gap:12px;padding-top:14px;display:grid}.file-btn{position:relative;overflow:hidden}.file-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}@media (max-width:860px){.record{grid-template-columns:36px 1fr}.record .btn{grid-column:2;justify-self:start}}.report{gap:16px;display:grid}.report-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.report-actions .back-link{margin:0}.paper{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);gap:10px;max-width:900px;padding:clamp(22px,4vw,48px);display:grid}.paper h1{margin:4px 0 8px;font-size:clamp(22px,3vw,30px)}.paper h2{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:16px;font-size:13px;font-weight:600}.paper-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:12px;display:flex}.paper-brand{font-family:var(--display);letter-spacing:-.03em;font-size:16px;font-weight:800}.paper-brand b{color:var(--accent)}.paper-meta{border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0;padding:12px 0;display:grid}.paper-meta dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11.5px}.paper-meta dd{margin:2px 0 0;font-size:14px}.paper-cols{columns:2;column-gap:24px}.paper-table{border-collapse:collapse;width:100%;font-size:14px}.paper-table th,.paper-table td{border-bottom:1px solid var(--line);text-align:left;padding:8px 10px}.paper-table th{color:var(--ink-2);background:var(--paper-2);font-size:12.5px;font-weight:600}.paper-calc{border-radius:var(--r-sm);background:var(--paper);flex-wrap:wrap;gap:6px 16px;padding:8px 12px;font-size:14px;display:flex}.paper-q{border-bottom:1px dashed var(--line);gap:2px;padding:8px 0;font-size:14px;display:grid}.paper-foot{border-top:1px solid var(--line);color:var(--muted);margin-top:18px;padding-top:12px;font-size:12px}@media print{:root{--topbar:0px;--tabbar:0px}body{background:#fff;padding:0;font-size:12pt}.topbar,.tabbar,.report-actions,.fab,.toast{display:none!important}.container,.paper{width:100%;max-width:none;margin:0}.paper{box-shadow:none;border:0;padding:0}.page{padding:0}a{color:inherit}}.account{justify-content:flex-end;justify-self:end;align-items:center;min-width:40px;display:flex;position:relative}.avatar{background:var(--ink);color:#fff;border:0;border-radius:999px;place-items:center;width:38px;height:38px;font-size:15px;font-weight:800;display:grid}.avatar:hover{background:#2b2f2c}.avatar.static{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-ink);font-size:14px}.topbar-dark .avatar{color:var(--ink);background:#fff}.account-menu{z-index:50;background:var(--card);min-width:230px;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);animation:pop .18s var(--ease);gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.account-who{border-bottom:1px solid var(--line);gap:2px;margin-bottom:4px;padding:8px 10px 10px;display:grid}.account-who small{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.account-menu a,.account-menu button{border-radius:var(--r-sm);text-align:left;width:100%;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:600;display:flex}.account-menu a:hover,.account-menu button:hover{background:var(--paper)}.auth-page{place-items:start center;display:grid}.auth-card{gap:14px;width:min(100%,420px);margin-top:4vh;padding:clamp(22px,4vw,32px);display:grid}.auth-card h1{margin-bottom:4px;font-size:28px}.auth-switch{text-align:center}.admin{gap:22px;display:grid}.admin .page-head{margin-bottom:0}.admin-photos{gap:28px;display:grid}.slots{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.slot{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);align-content:start;gap:10px;padding:12px;transition:opacity .2s;display:grid}.slot.busy{opacity:.6;pointer-events:none}.slot-img{aspect-ratio:4/3;border-radius:var(--r-md);background:var(--paper-2);position:relative;overflow:hidden}.slot-img img{object-fit:cover;width:100%;height:100%}.slot-img .pill{position:absolute;top:8px;left:8px}.slot-empty{color:var(--muted);place-items:center;display:grid;position:absolute;inset:0}.slot-body{gap:2px;display:grid}.slot-body b{font-size:14px}.slot-gallery{border-top:1px dashed var(--line);flex-wrap:wrap;gap:6px;padding-top:10px;display:flex}.thumb{border-radius:var(--r-sm);background:var(--paper-2);width:56px;height:56px;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb button{color:#fff;background:#111311bf;border:0;border-radius:999px;place-items:center;width:20px;height:20px;padding:0;display:grid;position:absolute;top:3px;right:3px}.thumb.add{border:1px dashed var(--line-2);color:var(--muted);cursor:pointer;background:0 0;align-content:center;place-items:center;gap:2px;font-size:10.5px;font-weight:700;display:grid}.thumb.add:hover{border-color:var(--accent);color:var(--accent-ink)}.thumb.add input{opacity:0;cursor:pointer;position:absolute;inset:0}.user-row{grid-template-columns:36px 1fr auto}.part-img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg) var(--r-lg) 0 0;width:calc(100% + 32px);margin:-16px -16px 4px}@media (max-width:860px){.user-row{grid-template-columns:36px 1fr}.user-row>.row{flex-wrap:wrap;grid-column:2}.account-menu{top:calc(var(--topbar) + 6px);position:fixed;right:12px}}.admin-kits{gap:16px;display:grid}.kit-new{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:16px;display:flex}.kit-new .field{flex:260px}.kit-row{grid-template-columns:52px minmax(0,1fr) auto}.kit-thumb{border-radius:var(--r-sm);background:var(--paper-2);width:52px;height:52px;color:var(--muted);place-items:center;display:grid;overflow:hidden}.kit-thumb img{object-fit:cover;width:100%;height:100%}.kit-row-actions{justify-content:flex-end}.btn.icon{width:34px;padding:0}.btn:disabled{opacity:.45;cursor:not-allowed}.kit-editor{gap:14px;display:grid}.editor-bar{top:calc(var(--topbar) + 8px);z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-1);background:#ffffffeb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex;position:sticky}.editor-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);gap:14px;padding:18px;display:grid}.editor-card .section-title{margin:0}.editor-card .section-title small{margin-left:4px;font-size:14px;font-weight:500}.editor-main{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:16px;display:grid}.editor-fields{gap:12px;display:grid}.field-row{flex-wrap:wrap;gap:12px;display:flex}.field-row .field{flex:0 160px}.field-row .field.grow{flex:240px}.field textarea.tall{min-height:150px}.photo-pick{justify-items:start;gap:6px;display:grid;position:relative}.photo-pick.busy{opacity:.6;pointer-events:none}.photo-pick-img{aspect-ratio:4/3;border-radius:var(--r-md);background:var(--paper-2);border:1px dashed var(--line-2);cursor:pointer;width:100%;transition:border-color .2s;display:block;position:relative;overflow:hidden}.photo-pick-img:hover{border-color:var(--accent)}.photo-pick-img img{object-fit:cover;width:100%;height:100%}.photo-pick-img .slot-empty{text-align:center;align-content:center;place-items:center;gap:6px;padding:8px;display:grid}.photo-pick-img .slot-empty small{font-size:12px;font-weight:600}.photo-pick-img input{opacity:0;cursor:pointer;position:absolute;inset:0}.photo-pick.small .photo-pick-img{aspect-ratio:auto;border-radius:var(--r-sm);width:46px;height:46px}.photo-pick-x{background:var(--ink);color:#fff;border:0;border-radius:999px;place-items:center;width:20px;height:20px;padding:0;display:grid;position:absolute;top:-6px;right:-6px}.part-rows{gap:8px;display:grid}.part-row{grid-template-columns:46px minmax(140px,1.2fr) 76px minmax(140px,2fr) 34px;align-items:center;gap:8px;display:grid}.add-btn{justify-self:start}.work-editors{gap:8px;display:grid}.work-editor{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}.work-editor.open{border-color:var(--line-2);box-shadow:var(--shadow-1)}.work-editor>header{align-items:center;gap:8px;padding:6px 8px 6px 6px;display:flex}.work-editor-toggle{text-align:left;min-width:0;color:var(--ink);background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:4px;display:flex}.work-editor-toggle strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.work-editor-toggle small{white-space:nowrap}.work-editor-body{border-top:1px solid var(--line);gap:14px;padding:14px 14px 16px;display:grid}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-2);background:var(--card);color:var(--ink-2);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.thumb.add.busy{opacity:.6;pointer-events:none}.editor-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}@media (max-width:860px){.editor-main{grid-template-columns:1fr}.part-row{grid-template-columns:46px minmax(0,1fr) 70px 34px}.part-row>input:nth-of-type(3){grid-column:2/4}.kit-row{grid-template-columns:44px minmax(0,1fr)}.kit-row .kit-thumb{width:44px;height:44px}.kit-row-actions{grid-column:1/-1;justify-content:flex-start}.work-editor-toggle small{display:none}.editor-card{padding:14px}}.kit-card-empty{background:linear-gradient(135deg, var(--accent-soft), var(--paper-2));min-height:240px;color:var(--accent-ink);place-items:center;display:grid}.kit-desc{max-width:640px;margin-top:6px}.custom-lesson{grid-template-columns:220px minmax(0,760px)}.custom-noimg{aspect-ratio:16/7;border-radius:var(--r-md);background:var(--paper-2);color:var(--muted);place-items:center;display:grid}.custom-steps li{align-items:flex-start}.custom-steps .check p{margin:0}.custom-steps li.done p{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2)}@media (max-width:720px){.kit-card-empty{aspect-ratio:16/10;min-height:0}}@media (max-width:860px){.custom-lesson{grid-template-columns:1fr}}
