@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Kanit:wght@300;400;500;600;700&display=swap');
:root{--navy:#071a2d;--ink:#12263b;--muted:#6d7c8b;--line:#dfe6eb;--paper:#f5f7f8;--white:#fff;--mint:#b4f1d4;--mint-deep:#207a62;--coral:#ff795f;--yellow:#ffd76a;--shadow:0 18px 50px #0b21330d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Kanit,system-ui,sans-serif;font-weight:400}button,input,select{font:inherit}button{cursor:pointer;border:0}.app-shell{max-width:1440px;margin:auto;padding:0 5vw}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand-lockup,.top-actions,.hero-stat-row,.mode-tabs,.lab-header,.lab-actions,.panel-label,.metric-row,.concept-card,.teacher-header,.teacher-actions,.results-title{display:flex;align-items:center}.brand-lockup{gap:12px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--coral);color:#fff;border-radius:12px;font-size:25px;font-weight:700}.eyebrow{font-family:'DM Mono',monospace;letter-spacing:.09em;font-size:10px;margin:0;color:var(--muted)}.accent{color:var(--coral)}h1,h2,h3,p{margin-top:0}h1{font-size:19px;margin:2px 0 0;font-weight:600}.top-actions{gap:18px}.live-dot{font-size:12px;color:var(--mint-deep)}.icon-button{width:28px;height:28px;border:1px solid #bdc8d1;background:transparent;color:var(--muted);border-radius:50%}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;min-height:318px;align-items:center}.hero-copy{padding:45px 0 28px}.hero-copy h2{font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.045em;margin:12px 0 20px;color:var(--navy)}.hero-copy h2 em{font-style:normal;color:var(--coral)}.hero-description{max-width:500px;color:var(--muted);font-size:16px;line-height:1.7}.hero-stat-row{gap:32px;margin-top:30px}.hero-stat-row div{display:flex;flex-direction:column}.hero-stat-row strong{font-family:'DM Mono',monospace;font-size:24px}.hero-stat-row span{font-size:11px;color:var(--muted)}.orbit-card{height:260px;position:relative;overflow:hidden;background:var(--navy);border-radius:28px}.orbit-ring{position:absolute;border:1px solid #8aa2b04a;border-radius:50%;transform:rotate(-30deg)}.ring-one{width:400px;height:170px;top:53px;left:calc(50% - 200px)}.ring-two{width:290px;height:110px;top:80px;left:calc(50% - 145px);transform:rotate(28deg)}.orbit-dot{position:absolute;width:10px;height:10px;border-radius:50%}.dot-a{background:var(--coral);top:48px;left:25%}.dot-b{background:var(--mint);bottom:44px;right:25%}.dot-c{background:var(--yellow);top:42px;right:27%}.orbit-center{position:absolute;inset:0;margin:auto;width:128px;height:128px;border-radius:50%;background:#17334b;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--mint)}.orbit-center span{font:12px 'DM Mono'}.orbit-center strong{font-size:46px;line-height:1;color:#fff}.orbit-center small{font-size:10px;color:#92a8b8}.mode-tabs{gap:26px;border-bottom:1px solid var(--line)}.mode-tab{background:none;color:var(--muted);padding:17px 0 13px;border-bottom:2px solid transparent;font-weight:500}.mode-tab span{font-size:11px;margin-left:8px;font-weight:300}.mode-tab.active{color:var(--navy);border-color:var(--coral)}.view{padding:30px 0 50px}.student-layout{display:grid;grid-template-columns:245px 1fr;gap:42px}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.section-heading h3,.lab-header h3{font-size:22px;margin:5px 0 0}.progress-badge{font:11px 'DM Mono';background:#fff;padding:7px 9px;border-radius:7px}.mission-list{display:grid;gap:8px}.mission-item{display:flex;align-items:center;gap:12px;padding:13px 11px;background:transparent;border:1px solid transparent;border-radius:12px;text-align:left;color:var(--ink)}.mission-item.active{background:#fff;border-color:var(--line);box-shadow:var(--shadow)}.mission-number{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#e7edf1;color:var(--muted);font:12px 'DM Mono'}.mission-item.active .mission-number{background:var(--coral);color:#fff}.mission-item.done .mission-number{background:var(--mint-deep);color:#fff}.mission-item strong{font-size:13px;display:block}.mission-item small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.tip-card{display:flex;gap:10px;padding:17px 12px;margin-top:24px;border-top:1px solid var(--line)}.tip-icon{color:var(--coral);font-size:20px}.tip-card strong{font-size:12px}.tip-card p{font-size:11px;color:var(--muted);line-height:1.55;margin:3px 0}.lab-header{justify-content:space-between;gap:20px;margin-bottom:20px}.lab-header h3{font-size:30px}.lab-header p:last-child{color:var(--muted);font-size:13px;margin:5px 0 0}.lab-actions{gap:9px;align-self:flex-end}.primary-button,.secondary-button{border-radius:9px;padding:11px 15px;font-size:12px}.primary-button{background:var(--navy);color:#fff}.primary-button span,.secondary-button span{font-size:18px;vertical-align:-1px;margin-left:5px}.secondary-button{background:#fff;color:var(--ink);border:1px solid var(--line)}.experiment-card{display:grid;grid-template-columns:1fr 260px;gap:20px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:17px;box-shadow:var(--shadow)}.canvas-wrap{min-width:0;background:#f6f9fa;border-radius:11px;padding:15px}.motion-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;aspect-ratio:9/6;touch-action:none;user-select:none}.grid-cell{position:relative;border:1px solid #d8e1e6;background:#fff;border-radius:5px;min-width:0}.grid-cell::after{content:'';position:absolute;inset:50%;width:4px;height:4px;transform:translate(-50%,-50%);border-radius:50%;background:#cad5dc}.grid-cell.path{background:#d9f8e8;border-color:#8bddbc}.grid-cell.start{background:var(--coral);border-color:var(--coral);box-shadow:0 0 0 4px #ff795f24}.grid-cell.end{background:var(--mint-deep);border-color:var(--mint-deep);box-shadow:0 0 0 4px #207a6224}.grid-cell.start::after,.grid-cell.end::after{background:#fff;width:7px;height:7px}.grid-cell .cell-label{position:absolute;color:#fff;font-size:8px;font-weight:500;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%)}.grid-legend{display:flex;gap:13px;margin-top:12px;color:var(--muted);font-size:10px}.grid-legend span{display:flex;align-items:center;gap:4px}.grid-legend i{display:inline-block;width:7px;height:7px;border-radius:50%}.legend-start{background:var(--coral)}.legend-end{background:var(--mint-deep)}.legend-path{background:#8bddbc}.metrics-panel{padding:5px 5px 0}.panel-label{justify-content:space-between;font:10px 'DM Mono';color:var(--muted);padding-bottom:15px;border-bottom:1px solid var(--line)}.recording{font-size:9px}.recording i{display:inline-block;background:var(--coral);width:6px;height:6px;border-radius:50%}.metric-primary{display:flex;gap:12px;align-items:center;padding:25px 0 22px;border-bottom:1px solid var(--line)}.metric-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#fff0ed;color:var(--coral);font-size:24px}.metric-primary small,.metric-row small{display:block;color:var(--muted);font-size:11px}.metric-primary strong{font:24px 'DM Mono';color:var(--navy)}.metric-primary b{font:11px Kanit;color:var(--muted);font-weight:400}.metric-row{gap:12px;padding:18px 0}.metric-row>div{flex:1}.metric-row strong{font-size:14px;display:block;margin-top:4px}.vector-note{font-size:11px;line-height:1.55;color:var(--muted);background:#f7fafb;padding:11px;border-radius:8px}.prediction-card{margin-top:20px;background:var(--navy);color:#fff;border-radius:17px;padding:23px}.prediction-heading{display:flex;gap:13px;align-items:center;margin-bottom:20px}.number-bubble{width:33px;height:33px;border:1px solid #7090a5;border-radius:50%;display:grid;place-items:center;color:var(--mint);font:11px 'DM Mono'}.prediction-heading h3{font-size:18px;margin:4px 0 0}.prediction-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.prediction-form label{font-size:11px;color:#afc0cb}.input-with-unit{display:flex;align-items:center;border-bottom:1px solid #527088;margin-top:7px}.input-with-unit input,.prediction-form select{width:100%;color:#fff;background:transparent;border:0;outline:0;padding:8px 0;font-size:14px}.input-with-unit span{font-size:10px;color:#7e98aa}.prediction-form select option{color:var(--ink)}.feedback{margin-top:16px;padding:12px;border-radius:8px;font-size:12px;background:#183852}.feedback.good{background:#194c43;color:var(--mint)}.feedback.warn{background:#594522;color:#ffe4a2}.concept-card{gap:13px;margin-top:14px;background:#fff;border:1px solid var(--line);padding:16px 18px;border-radius:12px}.concept-symbol{display:grid;place-items:center;border:1px solid var(--coral);color:var(--coral);border-radius:50%;width:22px;height:22px;font:12px Georgia}.concept-card strong{font-size:12px}.concept-card p{font-size:11px;color:var(--muted);margin:3px 0 0}.text-button{margin-left:auto;background:transparent;color:var(--coral);font-size:11px;white-space:nowrap}.teacher-header{justify-content:space-between;gap:20px}.teacher-header h2{font-size:35px;margin:7px 0}.teacher-header p:last-child{color:var(--muted);font-size:13px}.teacher-actions{gap:10px}.teacher-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0}.teacher-stats div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px}.teacher-stats small{display:block;color:var(--muted);font-size:11px}.teacher-stats strong{font:28px 'DM Mono';display:block;margin-top:8px}.results-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px}.results-title{justify-content:space-between}.results-title h3{font-size:18px}.results-title span{font-size:11px;color:var(--muted)}.table-wrap{overflow:auto}.results-card table{width:100%;border-collapse:collapse;min-width:620px;font-size:12px}.results-card th{text-align:left;color:var(--muted);font-weight:400;font-size:10px;padding:11px 8px;border-bottom:1px solid var(--line)}.results-card td{padding:13px 8px;border-bottom:1px solid #edf1f3}.status-pass{color:var(--mint-deep)}.status-pending{color:#b47a13}.empty-state{text-align:center;color:var(--muted);padding:40px!important}footer{display:flex;justify-content:space-between;padding:22px 0;color:#9aa7b0;font-size:10px;border-top:1px solid var(--line)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--navy);color:#fff;padding:12px 17px;border-radius:9px;font-size:12px;transition:.25s;z-index:5}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:850px){.app-shell{padding:0 18px}.hero-grid{grid-template-columns:1fr;min-height:0}.hero-copy{padding:35px 0 15px}.orbit-card{height:170px;margin:15px 0 28px}.ring-one{width:290px;height:130px;left:calc(50% - 145px);top:20px}.ring-two{width:220px;height:90px;left:calc(50% - 110px);top:40px}.orbit-center{width:100px;height:100px}.orbit-center strong{font-size:36px}.student-layout{grid-template-columns:1fr;gap:24px}.mission-list{display:flex;overflow:auto;padding-bottom:3px}.mission-item{min-width:150px}.tip-card{display:none}.experiment-card{grid-template-columns:1fr}.metrics-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.panel-label,.metric-primary,.vector-note{grid-column:1/-1}.metric-primary{padding:18px 0}.prediction-form{grid-template-columns:1fr}.lab-header{align-items:flex-start;flex-direction:column}.lab-actions{align-self:stretch}.lab-actions button{flex:1}.teacher-header{align-items:flex-start;flex-direction:column}.teacher-actions{width:100%}.teacher-actions button{flex:1}.hero-stat-row{margin-top:22px}.mode-tab{font-size:13px}.mode-tab span{display:none}}@media(max-width:430px){.hero-copy h2{font-size:50px}.topbar{height:72px}.live-dot{display:none}.canvas-wrap{padding:9px}.grid-legend{gap:7px;font-size:9px}.prediction-card{padding:18px}.concept-card{align-items:flex-start}.concept-card .text-button{display:none}footer{gap:10px;flex-direction:column}}
