:root{--bg:#071410;--bg-elevated:#0d221c;--bg-soft:#113028;--ink:#e8f5e9;--muted:#9bb5a8;--line:#9fe8702e;--accent:#9fe870;--accent-strong:#c8ff8a;--accent-dim:#9fe8701f;--warn:#ffb454;--danger:#ff7a7a;--radius:1.25rem;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Manrope", system-ui, sans-serif;--shadow:0 24px 60px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 80% -10%, #9fe87024, transparent 55%), radial-gradient(900px 500px at -10% 20%, #38bdf814, transparent 50%), linear-gradient(180deg, #06110e 0%, var(--bg) 40%, #081814 100%);background-attachment:fixed;margin:0;font-size:1.05rem;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}h1,h2,h3,.brand{font-family:var(--font-display);letter-spacing:-.03em;line-height:1.15}#root{min-height:100vh}.shell{width:min(1120px,100% - 2rem);margin-inline:auto}.site-header{z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#071410b8;border-bottom:1px solid #0000;transition:border-color .3s,background .3s;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--line);background:#071410e6}.site-header .shell{justify-content:space-between;align-items:center;gap:1rem;min-height:4.25rem;display:flex}.brand{align-items:baseline;gap:.35rem;font-size:1.35rem;font-weight:700;display:inline-flex}.brand span{color:var(--accent)}.nav{color:var(--muted);gap:1.35rem;font-size:.95rem;display:none}.nav a:hover{color:var(--ink)}.header-actions{align-items:center;gap:.75rem;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:2.85rem;padding:.7rem 1.25rem;font-weight:600;transition:transform .2s,background .2s,border-color .2s,color .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--accent);color:#08140f}.btn-primary:hover{background:var(--accent-strong)}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn-ghost:hover{border-color:var(--accent);background:var(--accent-dim)}.hero{--hero-h:min(92vh, 820px);--hero-pad-y:8rem;isolation:isolate;min-height:var(--hero-h);align-items:center;padding:4.5rem 0 3.5rem;display:flex;position:relative;overflow:hidden}.hero:before{content:"";filter:blur(8px);pointer-events:none;z-index:0;background:radial-gradient(circle at 30% 40%,#9fe87038,#0000 42%),conic-gradient(from 210deg,#9fe87014,#0000 40%,#38bdf814,#0000 75%);height:70%;animation:14s ease-in-out infinite alternate drift;position:absolute;inset:8% -10% auto 35%}.hero-grid{z-index:1;align-items:center;gap:2.5rem;display:grid;position:relative}.hero-copy{z-index:1;min-width:0;position:relative}.hero-visual{height:calc(var(--hero-h) - var(--hero-pad-y));justify-self:center;width:auto;max-width:min(100%,36rem);margin-inline:auto;position:relative}.hero-visual-glow{filter:blur(36px);pointer-events:none;z-index:0;background:radial-gradient(circle at 45% 40%,#9fe8706b,#9fe8701f 42%,#0000 70%);border-radius:50%;position:absolute;inset:-6%}.hero-visual img{z-index:1;object-fit:contain;filter:drop-shadow(0 0 14px #9fe87073)drop-shadow(0 0 32px #9fe87038)drop-shadow(0 22px 36px #0006);width:auto;max-width:100%;height:100%;display:block;position:relative}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;display:inline-flex}.hero h1{max-width:12ch;margin:.85rem 0 1rem;font-size:clamp(2.6rem,7vw,4.6rem)}.hero-lead{max-width:38rem;color:var(--muted);margin:0 0 1.75rem;font-size:1.12rem}.hero-cta{flex-wrap:wrap;gap:.85rem;margin-bottom:2.5rem;display:flex}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;max-width:28rem;display:grid}.stat{border:1px solid var(--line);border-radius:var(--radius);background:#0d221ca6;padding:1rem 1.1rem;animation:.7s both rise}.stat:nth-child(2){animation-delay:80ms}.stat:nth-child(3){animation-delay:.16s}.stat strong{font-family:var(--font-display);color:var(--accent);font-size:1.65rem;display:block}.stat span{color:var(--muted);font-size:.88rem}.section{padding:4.5rem 0;scroll-margin-top:5.5rem}#about,#locations,#courses,#enroll,#contacts{scroll-margin-top:5.5rem}.section-head{max-width:40rem;margin-bottom:2rem}.section-kicker{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.6rem;font-size:.92rem;font-weight:600}.section-head h2{margin:0 0 .75rem;font-size:clamp(1.9rem,4vw,2.8rem)}.section-head p{color:var(--muted);margin:0}.about-copy{max-width:48rem;color:var(--muted);gap:1rem;margin-bottom:2rem;display:grid}.feature-grid{gap:1rem;display:grid}.feature{border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(160deg,#113028e6,#0d221c8c);padding:1.35rem 1.4rem}.feature-index{font-family:var(--font-display);color:var(--accent);margin-bottom:.55rem;font-size:.95rem}.feature h3{margin:0 0 .45rem;font-size:1.2rem}.feature p{color:var(--muted);margin:0}.location-grid{gap:1rem;display:grid}.location-card{text-align:left;border-radius:var(--radius);border:1px solid var(--line);width:100%;color:inherit;cursor:pointer;background:#0d221c8c;padding:1.4rem;transition:border-color .2s,transform .2s,background .2s}.location-card:hover,.location-card.is-active{background:#9fe87014;border-color:#9fe8708c;transform:translateY(-2px)}.location-card h3{margin:0 0 .35rem;font-size:1.25rem}.location-card .title{color:var(--accent);margin-bottom:.35rem;font-weight:600}.location-card .meta,.location-card .desc{color:var(--muted);font-size:.95rem}.location-card .desc{margin-top:.65rem}.course-grid{gap:1rem;display:grid}.course-card{border-radius:var(--radius);border:1px solid var(--line);background:#0d221c8c;gap:.85rem;padding:1.4rem;transition:transform .2s,border-color .2s;display:grid}.course-card:hover{border-color:#9fe87073;transform:translateY(-2px)}.course-icon{background:var(--accent-dim);width:2.75rem;height:2.75rem;color:var(--accent);border-radius:.9rem;place-items:center;font-size:1.2rem;display:grid}.course-card .age{color:var(--accent);font-size:.88rem;font-weight:600}.course-card h3{margin:0;font-size:1.25rem}.course-card p{color:var(--muted);margin:0}.course-card .more{color:var(--accent);font-weight:600}.lead-panel,.contacts-panel{border-radius:calc(var(--radius) + .25rem);border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(145deg,#9fe87014,#0000 40%),#0d221cbf;gap:1.5rem;padding:1.6rem;display:grid}.contacts-panel>.section-head{gap:.85rem;display:grid}.map-frame{border-radius:var(--radius);border:1px solid var(--line);aspect-ratio:4/3;background:#071410d9;min-height:220px;margin-top:.35rem;overflow:hidden}.map-frame iframe{filter:grayscale(.15)contrast(1.05);border:0;width:100%;height:100%;display:block}.map-frame--empty{color:var(--muted);text-align:center;place-items:center;padding:1.5rem;display:grid}.map-frame--empty p{max-width:18rem;margin:0}.form-grid{gap:.95rem;display:grid}.field{gap:.4rem;display:grid}.field label{color:var(--muted);font-size:.9rem}.field input,.field select,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#071410d9;border-radius:.9rem;padding:.85rem 1rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:2px solid #9fe87059}.form-status{margin:0;font-size:.95rem}.form-status.ok{color:var(--accent)}.form-status.err{color:var(--danger)}.contact-list{gap:1.1rem;display:grid}.contact-item strong{margin-bottom:.2rem;display:block}.contact-item p,.contact-item a{color:var(--muted);margin:0}.contact-item a:hover{color:var(--accent)}.contact-item--selectable{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.9rem;padding:.85rem 1rem;transition:border-color .2s,background .2s}.contact-item--selectable:hover,.contact-item--selectable.is-active{background:#9fe87014;border-color:#9fe87073}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding:2.5rem 0 3rem}.site-footer .shell{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;display:flex}.richtext{--richtext-image-style-spacing:1.5em;overflow:auto}.richtext:after{content:"";clear:both;display:table}.richtext :is(p,ul,ol){color:var(--muted)}.richtext :is(h2,h3,h4){color:var(--ink)}.richtext a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.richtext a:hover{color:var(--accent-strong)}.richtext .image{clear:both;text-align:center;min-width:50px;margin:.9em auto;display:table}.richtext .image img{border-radius:1rem;min-width:100%;max-width:100%;height:auto;margin:0 auto;display:block}.richtext img.image_resized,.richtext .image.image_resized img{height:auto}.richtext .image.image_resized{box-sizing:border-box;max-width:100%;display:block}.richtext .image.image_resized img{width:100%;min-width:0}.richtext .image.image-style-align-left,.richtext .image.image-style-align-right{clear:none}.richtext .image.image-style-align-left{float:left;margin-right:var(--richtext-image-style-spacing)}.richtext .image.image-style-align-right,.richtext .image.image-style-side{float:right;margin-left:var(--richtext-image-style-spacing)}.richtext .image.image-style-side{max-width:50%}.richtext .image.image-style-align-center,.richtext .image-style-align-center{margin-left:auto;margin-right:auto}.richtext .image.image-style-block-align-left{max-width:calc(100% - var(--richtext-image-style-spacing));margin-left:0;margin-right:auto}.richtext .image.image-style-block-align-right{max-width:calc(100% - var(--richtext-image-style-spacing));margin-left:auto;margin-right:0}.richtext .image>figcaption{caption-side:bottom;color:var(--muted);padding:.5em .25em;font-size:.85em;display:table-caption}.richtext .image-inline{align-items:flex-start;max-width:100%;display:inline-flex}.richtext .image-inline img{border-radius:.5rem;max-width:100%;height:auto}.richtext table{border-collapse:collapse;width:100%;margin:1rem 0}.richtext td,.richtext th{border:1px solid var(--line);padding:.55rem .7rem}.page{padding:2.5rem 0 4rem}.not-found{align-items:center;min-height:min(70vh,40rem);padding:4rem 0 5rem;display:grid}.not-found__inner{max-width:36rem}.not-found h1{margin:.35rem 0 .85rem;font-size:clamp(2rem,5vw,3rem)}.not-found__text{color:var(--muted);max-width:32rem;margin:0 0 1.75rem}.not-found__actions{flex-wrap:wrap;gap:.75rem;display:flex}.back-link{color:var(--muted);margin-bottom:1.25rem;display:inline-flex}.back-link:hover{color:var(--accent)}.empty,.loading,.error-box{border-radius:var(--radius);border:1px solid var(--line);color:var(--muted);padding:1.25rem}.error-box{color:var(--danger)}@keyframes drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(-4%,3%)scale(1.05)}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (width<=899px){.hero-visual{display:none}.hero:after{content:"";opacity:1;filter:drop-shadow(0 0 14px #9fe87073)drop-shadow(0 0 32px #9fe87038)drop-shadow(0 22px 36px #0006);pointer-events:none;z-index:0;background:url(/robot-rs.svg) 100% 0/contain no-repeat;width:min(75vw,320px);height:min(55vh,360px);position:absolute;inset:0 0 auto auto}}@media (width>=720px){.nav{display:flex}.feature-grid,.location-grid,.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lead-panel,.contacts-panel{grid-template-columns:1.1fr .9fr;align-items:start}}@media (width>=900px){.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero:after{content:none}.hero-visual{height:calc(var(--hero-h) - var(--hero-pad-y));justify-self:end;width:auto;max-width:min(100%,36rem);margin-inline:0;display:block}}@media (width>=960px){.feature-grid,.course-grid,.location-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.portal-page{min-height:60vh;padding:2.5rem 0 4rem}.portal-shell{max-width:52rem}.portal-title{margin:.35rem 0 1.5rem;font-size:clamp(1.75rem,4vw,2.4rem)}.portal-greeting{margin:.15rem 0 .35rem;font-size:1.5rem}.portal-muted{color:var(--muted);margin:0}.portal-hero-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.portal-section{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in oklab, var(--bg-elevated) 88%, transparent);margin-bottom:2rem;padding:1.25rem 1.35rem}.portal-section h3{margin:0 0 .85rem;font-size:1.15rem}.portal-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.portal-list a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.portal-card{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in oklab, var(--bg-elevated) 88%, transparent);padding:1.5rem}.portal-anon h2{margin-top:0}.portal-anon .btn{margin-top:1rem;display:inline-flex}.portal-login-form{gap:.95rem;margin-top:1.25rem;display:grid}.portal-login-form .btn{margin-top:0}.portal-login-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.portal-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.portal-table{border-collapse:collapse;width:100%;font-size:.92rem}.portal-table th,.portal-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.55rem .65rem}.portal-table th{color:var(--muted);white-space:nowrap;font-weight:600}.portal-modal-overlay{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#040c0ab8;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.portal-modal{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-elevated);width:min(100%,26rem);box-shadow:var(--shadow);padding:1.5rem 1.4rem 1.35rem}.portal-modal h2{margin:0 0 .75rem;font-size:1.25rem}.portal-modal p{color:var(--muted);margin:0 0 .75rem;font-size:.95rem}.portal-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.65rem;margin-top:1.15rem;display:flex}.portal-student+.portal-student{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1.25rem}.portal-student-name{margin:0;font-size:1.2rem}.portal-groups{flex-direction:column;gap:.85rem;margin-top:.95rem;display:flex}.portal-subsection{--group:var(--accent);border:1px solid color-mix(in oklab, var(--group) 38%, transparent);background:color-mix(in oklab, var(--group) 9%, var(--bg-elevated));border-radius:.95rem;margin:0;padding:.85rem 1rem 1rem}.portal-subsection--planned{--group:var(--accent)}.portal-subsection--homework{--group:var(--warn)}.portal-subsection--history{--group:#7ec8ff}.portal-subsection h5{border-bottom:1px solid color-mix(in oklab, var(--group) 32%, transparent);font-family:var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--group);align-items:center;gap:.5rem;margin:0 0 .7rem;padding-bottom:.55rem;font-size:.8rem;font-weight:700;display:flex}.portal-subsection h5:before{content:"";background:var(--group);width:.55rem;height:.55rem;box-shadow:0 0 0 3px color-mix(in oklab, var(--group) 24%, transparent);border-radius:999px;flex:none}.portal-lesson-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem .75rem;display:flex}.portal-join{color:var(--accent);text-underline-offset:2px;font-weight:700;text-decoration:underline}.portal-history-item{border-bottom:1px solid var(--line);padding-bottom:.75rem}.portal-history-item:last-child{border-bottom:0;padding-bottom:0}.portal-richtext{margin-top:.3rem;font-size:.95rem}.portal-richtext :is(p,ul,ol){margin:.3rem 0}.portal-richtext :is(p,ul,ol):first-child{margin-top:0}.portal-richtext :is(p,ul,ol):last-child{margin-bottom:0}.portal-more{margin-top:.85rem}.portal-more:disabled{opacity:.65;cursor:progress}.portal-error{color:var(--danger);margin:.45rem 0 0;font-size:.92rem}
