:root{color:#13242c;background:#f3efe6;font-family:Avenir Next,Gill Sans,Trebuchet MS,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #13242c;--muted: #637178;--paper: #fffaf0;--line: rgba(19, 36, 44, .12);--blue: #1f68ff;--green: #12805c;--amber: #b66a00;--red: #ca3a2d;--cyan: #007d8a}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 9% 12%,rgba(31,104,255,.18),transparent 28%),radial-gradient(circle at 84% 18%,rgba(18,128,92,.15),transparent 25%),linear-gradient(135deg,#f6eddb,#eef7f4 48%,#f8f1e5)}button{border:0;border-radius:999px;padding:.75rem 1.05rem;color:var(--paper);background:var(--ink);font:inherit;font-weight:700;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}button:hover{transform:translateY(-2px);box-shadow:0 12px 26px #13242c2e;background:#24424e}button:disabled{cursor:not-allowed;color:#13242c73;background:#13242c17}button:disabled:hover{transform:none;box-shadow:none}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:36px 0 56px}.hero-section{position:relative;min-height:560px}.hero-section:before{content:"";position:absolute;inset:32px -18px auto auto;width:180px;height:180px;border:1px solid rgba(19,36,44,.16);border-radius:999px;transform:rotate(12deg);pointer-events:none}.hero-copy,.section-block{border:1px solid var(--line);background:#fffaf0c7;box-shadow:0 30px 80px #13242c1c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.hero-copy{position:relative;overflow:hidden;padding:clamp(32px,7vw,78px);border-radius:42px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.8fr);gap:clamp(28px,6vw,72px);min-height:560px;align-items:center;background:radial-gradient(circle at 82% 12%,rgba(31,104,255,.15),transparent 28%),radial-gradient(circle at 95% 88%,rgba(18,128,92,.14),transparent 26%),linear-gradient(135deg,#fffaf0eb,#ebf6f4d6)}.hero-copy:before{content:"";position:absolute;right:-140px;top:-160px;width:520px;height:520px;border-radius:999px;border:72px solid rgba(31,104,255,.09);pointer-events:none}.hero-copy:after{content:"";position:absolute;inset:auto 9% 42px auto;width:260px;height:1px;background:linear-gradient(90deg,transparent,rgba(19,36,44,.35),transparent);pointer-events:none}.hero-content,.hero-showcase{position:relative;z-index:1}.eyebrow{margin:0 0 12px;color:var(--blue);font-size:.78rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{max-width:780px;margin-bottom:22px;font-size:clamp(3.4rem,9vw,7.5rem);line-height:.9;letter-spacing:-.08em}h2{margin-bottom:12px;font-size:clamp(2rem,4vw,3.25rem);line-height:1;letter-spacing:-.055em}h3{margin-bottom:10px;font-size:1.45rem;line-height:1.15;letter-spacing:-.035em}.hero-text{max-width:720px;color:#344a53;font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.85}.hero-actions,.tag-row{display:flex;flex-wrap:wrap;gap:10px}.status-pill,.tag-row span,.module-status{border:1px solid rgba(19,36,44,.12);border-radius:999px;padding:.42rem .75rem;background:#ffffff7a;color:var(--muted);font-size:.86rem;font-weight:800}.status-live{color:#0f5f47;background:#12805c1f}.hero-showcase{display:grid;gap:18px}.signal-card{position:relative;overflow:hidden;border:1px solid rgba(19,36,44,.12);border-radius:34px;padding:22px;background:linear-gradient(145deg,#fffc,#ddeef9a8),linear-gradient(90deg,rgba(31,104,255,.14) 1px,transparent 1px) 0 0 / 26px 26px,linear-gradient(0deg,rgba(31,104,255,.09) 1px,transparent 1px) 0 0 / 26px 26px;box-shadow:inset 0 1px #ffffffb8,0 24px 54px #13242c1f}.signal-card:before{content:"";position:absolute;right:-34px;top:-34px;width:120px;height:120px;border-radius:32px;background:#12805c1f;transform:rotate(18deg)}.signal-header,.signal-readout,.platform-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.signal-header span{color:var(--muted);font-size:.9rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.signal-header strong{border-radius:999px;padding:.35rem .6rem;color:#0f5f47;background:#12805c1f;font-size:.76rem;letter-spacing:.08em}.signal-grid{position:relative;height:220px;margin:18px 0;border-radius:26px;background:linear-gradient(90deg,rgba(31,104,255,.12) 1px,transparent 1px) 0 0 / 28px 28px,linear-gradient(0deg,rgba(31,104,255,.1) 1px,transparent 1px) 0 0 / 28px 28px,linear-gradient(135deg,#fff3,#1f68ff0f)}.signal-line{position:absolute;inset:54px 18px 42px;border-bottom:6px solid var(--blue);border-radius:50%;transform:skewY(-8deg);filter:drop-shadow(0 10px 16px rgba(31,104,255,.22))}.signal-dot{position:absolute;width:14px;height:14px;border:3px solid #fff;border-radius:999px;background:var(--blue);box-shadow:0 10px 22px #1f68ff47}.dot-a{left:22%;top:43%}.dot-b{left:52%;top:30%}.dot-c{right:18%;top:49%}.signal-readout span,.platform-row span{border:1px solid rgba(19,36,44,.12);border-radius:999px;padding:.55rem .8rem;background:#ffffff85;color:#314751;font-weight:900}.platform-row{justify-content:center;flex-wrap:wrap}.section-block{margin-top:26px;padding:clamp(24px,4vw,42px);border-radius:36px}.section-heading{max-width:720px;margin-bottom:24px}.section-heading p:not(.eyebrow){color:var(--muted);line-height:1.75}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-card,.experiment-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:28px;padding:24px;background:#ffffff8c;min-height:300px}.module-card{display:flex;flex-direction:column;isolation:isolate}.module-card:before,.module-card:after{content:"";position:absolute;pointer-events:none;z-index:-1}.module-card:before{inset:0;opacity:.8;background:var(--module-pattern)}.module-card:after{right:-38px;bottom:-38px;width:112px;height:112px;border-radius:32px;background:var(--card-color, var(--blue));opacity:.12;transform:rotate(18deg)}.module-card p,.experiment-card p{color:var(--muted);line-height:1.72}.card-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.module-icon{display:grid;place-items:center;width:54px;height:54px;border:1px solid color-mix(in srgb,var(--card-color, var(--blue)) 32%,transparent);border-radius:20px;color:var(--card-color, var(--blue));background:linear-gradient(135deg,#ffffffb3,#ffffff2e),color-mix(in srgb,var(--card-color, var(--blue)) 10%,transparent);box-shadow:inset 0 1px #ffffffa6,0 12px 24px color-mix(in srgb,var(--card-color, var(--blue)) 15%,transparent);font-size:1.55rem;font-weight:900}.module-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:16px}.module-tags span{border:1px solid color-mix(in srgb,var(--card-color, var(--blue)) 18%,transparent);border-radius:999px;padding:.36rem .62rem;color:color-mix(in srgb,var(--card-color, var(--blue)) 76%,var(--ink));background:var(--card-color, var(--blue));background:color-mix(in srgb,var(--card-color, var(--blue)) 9%,transparent);font-size:.78rem;font-weight:900}.module-card button,.experiment-card button{position:relative;z-index:1;margin-top:18px;align-self:center;min-width:148px}.module-card-blue{--card-color: var(--blue);--module-pattern: linear-gradient(90deg, color-mix(in srgb, var(--blue) 16%, transparent) 1px, transparent 1px) 0 0 / 22px 22px, linear-gradient(0deg, color-mix(in srgb, var(--blue) 10%, transparent) 1px, transparent 1px) 0 0 / 22px 22px, radial-gradient(circle at 82% 16%, color-mix(in srgb, var(--blue) 20%, transparent), transparent 34%)}.module-card-green{--card-color: var(--green);--module-pattern: radial-gradient(circle at 78% 22%, transparent 0 26px, color-mix(in srgb, var(--green) 22%, transparent) 27px 29px, transparent 30px 54px, color-mix(in srgb, var(--green) 14%, transparent) 55px 57px, transparent 58px), radial-gradient(circle at 18% 86%, color-mix(in srgb, var(--green) 16%, transparent), transparent 30%)}.module-card-amber{--card-color: var(--amber);--module-pattern: linear-gradient(135deg, transparent 0 18px, color-mix(in srgb, var(--amber) 16%, transparent) 19px 21px, transparent 22px 42px), radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--amber) 16%, transparent), transparent 34%);--module-pattern-size: 42px 42px}.module-card-red{--card-color: var(--red);--module-pattern: linear-gradient(90deg, color-mix(in srgb, var(--red) 14%, transparent) 0 10px, transparent 10px 18px) 0 100% / 72px 38px, radial-gradient(circle at 78% 18%, color-mix(in srgb, var(--red) 14%, transparent), transparent 28%)}.module-card-ink{--card-color: var(--ink);--module-pattern: repeating-linear-gradient(0deg, color-mix(in srgb, var(--ink) 8%, transparent) 0 1px, transparent 1px 12px), linear-gradient(120deg, color-mix(in srgb, var(--ink) 11%, transparent), transparent 42%)}.module-card-cyan{--card-color: var(--cyan);--module-pattern: linear-gradient(90deg, transparent 0 18px, color-mix(in srgb, var(--cyan) 17%, transparent) 18px 20px, transparent 20px 42px), linear-gradient(0deg, transparent 0 18px, color-mix(in srgb, var(--cyan) 12%, transparent) 18px 20px, transparent 20px 42px), radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--cyan) 16%, transparent), transparent 28%)}.contact-section{background:radial-gradient(circle at 90% 10%,rgba(18,128,92,.12),transparent 28%),#fffaf0cc}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:16px}.contact-card{min-width:0;border:1px solid var(--line);border-radius:28px;padding:24px;background:#ffffff94}.contact-card h3,.contact-card p{max-width:100%;overflow-wrap:anywhere;word-break:break-word}.contact-card h3{font-size:clamp(1.35rem,5.8vw,3.2rem);line-height:1.08}.contact-label{display:inline-flex;margin-bottom:16px;border-radius:999px;padding:.4rem .66rem;color:var(--blue);background:#1f68ff17;font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.contact-card p{color:var(--muted);line-height:1.72}.contact-button{display:inline-flex;margin-top:12px;border-radius:999px;padding:.75rem 1.05rem;color:var(--paper);background:var(--ink);font-weight:900;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.contact-button:hover{transform:translateY(-2px);box-shadow:0 12px 26px #13242c2e;background:#24424e}.dis-shell{animation:page-rise .36s ease both}.dis-header{display:grid;gap:18px}.back-button{justify-self:start;border:1px solid rgba(19,36,44,.12);color:var(--ink);background:#ffffffa3}.back-button:hover{color:var(--paper);background:var(--ink)}.dis-hero{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:42px;padding:clamp(32px,6vw,70px);background:radial-gradient(circle at 80% 20%,rgba(31,104,255,.16),transparent 30%),linear-gradient(135deg,#fffaf0eb,#e2f2f8e0);box-shadow:0 30px 80px #13242c1c}.dis-hero:before{content:"";position:absolute;right:-120px;bottom:-160px;width:420px;height:420px;border-radius:999px;border:58px solid rgba(31,104,255,.08)}.dis-hero>*{position:relative;z-index:1}.sensor-category-hero{background:radial-gradient(circle at 82% 22%,rgba(31,104,255,.14),transparent 28%),linear-gradient(135deg,#fffaf0f0,#e6f3fadb)}.simulation-hero{background:radial-gradient(circle at 82% 22%,rgba(18,128,92,.14),transparent 28%),linear-gradient(135deg,#fffaf0f0,#e6f7f1e0)}.experiment-group-hero{background:radial-gradient(circle at 82% 22%,rgba(182,106,0,.15),transparent 28%),linear-gradient(135deg,#fffaf0f0,#f8efe1e6)}.dis-section{background:radial-gradient(circle at 92% 8%,rgba(31,104,255,.1),transparent 24%),#fffaf0c7}.simulation-section{background:radial-gradient(circle at 90% 10%,rgba(18,128,92,.1),transparent 24%),#fffaf0c7}.simulation-stage-grid,.textbook-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.simulation-stage-card{display:flex;flex-direction:column;gap:14px;min-height:420px;border:1px solid var(--line);border-radius:30px;padding:24px;background:radial-gradient(circle at 88% 18%,rgba(18,128,92,.08),transparent 22%),linear-gradient(135deg,rgba(18,128,92,.06),transparent 42%),#fff9}.textbook-card{display:flex;flex-direction:column;min-height:320px;border:1px solid var(--line);border-radius:30px;padding:24px;background:radial-gradient(circle at 86% 16%,rgba(182,106,0,.08),transparent 20%),linear-gradient(135deg,rgba(182,106,0,.06),transparent 42%),#ffffff9e}.textbook-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.textbook-card p{color:var(--muted);line-height:1.72}.textbook-card button{align-self:center;margin-top:auto;min-width:148px}.experiment-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.experiment-entry-card{display:flex;flex-direction:column;min-height:260px;border:1px solid var(--line);border-radius:28px;padding:24px;background:linear-gradient(135deg,rgba(18,128,92,.08),transparent 42%),#ffffff9e}.experiment-entry-card p{color:var(--muted);line-height:1.72}.experiment-entry-card button{align-self:center;margin-top:auto;min-width:148px}.experiment-entry-empty{min-height:220px}.simulation-stage-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.simulation-stage-card p,.simulation-subject-card span{color:var(--muted);line-height:1.72}.simulation-subject-list{display:grid;gap:12px;margin-top:auto}.simulation-subject-card{display:grid;gap:6px;border:1px solid rgba(19,36,44,.09);border-radius:22px;padding:16px 18px;background:#ffffffad}.simulation-subject-button{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.simulation-subject-button:hover{transform:translateY(-3px);border-color:#12805c3d;background:#ffffffe0;box-shadow:0 14px 28px #12805c1f}.simulation-subject-disabled{opacity:.84}.simulation-subject-card strong{color:var(--ink);font-size:1.06rem}.simulation-subject-card em{margin-top:6px;color:var(--green);font-size:.84rem;font-style:normal;font-weight:800}.simulation-topic-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.simulation-topic-card,.simulation-experiment-card{display:flex;flex-direction:column;min-height:310px;border:1px solid var(--line);border-radius:30px;padding:24px;background:radial-gradient(circle at 88% 18%,rgba(18,128,92,.08),transparent 22%),linear-gradient(135deg,rgba(18,128,92,.06),transparent 42%),#ffffff9e}.simulation-topic-card{text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.simulation-topic-card:hover{transform:translateY(-4px);border-color:#12805c3d;background:radial-gradient(circle at 88% 18%,rgba(18,128,92,.12),transparent 24%),linear-gradient(135deg,rgba(18,128,92,.08),transparent 48%),#ffffffc2;box-shadow:0 18px 34px #12805c1f}.simulation-topic-disabled{cursor:default;opacity:.84}.simulation-topic-card p,.simulation-experiment-card p{color:var(--muted);line-height:1.72}.simulation-topic-card .module-tags,.simulation-experiment-card .module-tags{margin-top:18px}.simulation-topic-action{margin-top:auto;align-self:center;color:var(--green);font-size:.95rem;font-weight:800}.simulation-experiment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.simulation-experiment-card button{align-self:center;margin-top:auto;min-width:148px}.simulation-frame-shell{border:1px solid var(--line);border-radius:34px;padding:20px;background:radial-gradient(circle at 85% 14%,rgba(18,128,92,.09),transparent 20%),linear-gradient(135deg,rgba(18,128,92,.05),transparent 44%),#ffffffad;box-shadow:inset 0 1px #ffffffb8}.simulation-experiment-shell{width:min(1480px,calc(100% - 12px));padding:4px 0 12px}.simulation-experiment-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 14px;margin-bottom:4px}.simulation-experiment-meta{min-width:0}.simulation-experiment-meta h1{margin:0 0 4px;font-size:clamp(2.1rem,4vw,3.5rem);line-height:.96;letter-spacing:-.05em}.simulation-experiment-meta p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.45;max-width:880px}.simulation-frame-panel{margin-top:0;padding:6px}.simulation-frame-shell-compact{padding:4px;border-radius:22px}.simulation-frame{display:block;width:100%;height:clamp(700px,calc(100vh - 70px),1040px);min-height:0;border:0;border-radius:26px;background:#ffffffeb}.category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.category-card,.stage-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:28px;padding:22px;background:#ffffff94}.category-card{display:flex;flex-direction:column;min-height:252px;color:var(--ink);text-align:left;box-shadow:inset 0 1px #ffffffb8;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.category-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--category-color, var(--blue)) 42%,transparent);background:#ffffffb3;box-shadow:0 18px 34px #13242c1f}.category-card:after{content:"";position:absolute;right:-32px;bottom:-34px;width:104px;height:104px;border-radius:30px;background:var(--category-color, var(--blue));opacity:.1;transform:rotate(18deg)}.category-card:before{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:var(--category-color, var(--blue));opacity:.82}.category-mark{display:grid;place-items:center;width:50px;height:50px;margin-bottom:18px;border:1px solid color-mix(in srgb,var(--category-color, var(--blue)) 32%,transparent);border-radius:18px;color:var(--category-color, var(--blue));background:color-mix(in srgb,var(--category-color, var(--blue)) 10%,transparent);font-size:1.35rem;font-weight:900}.category-card p,.stage-card p,.stage-card li{color:var(--muted);line-height:1.68}.category-summary{position:relative;z-index:1;display:inline-flex;align-self:flex-start;margin-top:8px;border-radius:999px;padding:.42rem .66rem;color:color-mix(in srgb,var(--category-color, var(--blue)) 70%,var(--ink));background:color-mix(in srgb,var(--category-color, var(--blue)) 10%,transparent);font-size:.78rem;font-weight:900}.category-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.category-tags span{border:1px solid rgba(19,36,44,.1);border-radius:999px;padding:.34rem .58rem;background:#ffffff85;color:#344a53;font-size:.76rem;font-weight:900}.category-action{position:relative;z-index:1;display:inline-flex;align-self:center;justify-content:center;margin-top:auto;border-radius:999px;padding:.58rem .78rem;min-width:148px;color:var(--paper);background:var(--category-color, var(--blue));font-size:.8rem;font-weight:900}.category-mechanics{--category-color: var(--blue)}.category-electricity{--category-color: var(--amber)}.category-thermal{--category-color: var(--red)}.category-magnetism{--category-color: var(--green)}.category-kinematics{--category-color: var(--cyan)}.experiment-stage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:16px}.subsection-heading{display:flex;align-items:center;gap:12px;margin:4px 0 16px}.subsection-heading:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(19,36,44,.18),transparent)}.subsection-heading span{border:1px solid rgba(19,36,44,.1);border-radius:999px;padding:.46rem .72rem;color:var(--blue);background:#1f68ff14;font-size:.82rem;font-weight:900}.stage-card{display:flex;flex-direction:column;min-height:360px;background:linear-gradient(135deg,rgba(31,104,255,.08),transparent 46%),#fff9}.stage-card ul{display:grid;gap:10px;margin:18px 0 0;padding-left:1.15rem}.stage-card button{align-self:center;margin-top:auto;min-width:148px}.sensor-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.sensor-card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:330px;border:1px solid var(--line);border-radius:30px;padding:24px;background:linear-gradient(135deg,rgba(31,104,255,.08),transparent 48%),#fff9}.sensor-card:after{content:"";position:absolute;right:-42px;bottom:-42px;width:132px;height:132px;border-radius:38px;background:#1f68ff1a;transform:rotate(18deg)}.sensor-symbol{display:grid;place-items:center;width:54px;height:54px;margin-bottom:18px;border:1px solid rgba(31,104,255,.24);border-radius:20px;color:var(--blue);background:#1f68ff14;font-size:1.45rem;font-weight:900}.sensor-card p{color:var(--muted);line-height:1.72}.sensor-card button{align-self:center;margin-top:auto;min-width:148px}.workbench-hero{background:radial-gradient(circle at 82% 20%,rgba(31,104,255,.16),transparent 30%),linear-gradient(135deg,#fffaf0f0,#e1f2fae6)}.workbench-panel{background:radial-gradient(circle at 88% 12%,rgba(18,128,92,.12),transparent 28%),#fffaf0c7}.connection-grid,.workbench-grid,.readout-grid{display:grid;gap:16px}.connection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.connection-card{display:flex;flex-direction:column;min-height:230px;border:1px solid var(--line);border-radius:28px;padding:24px;background:#ffffff94}.connection-card p,.chart-hint{color:var(--muted);line-height:1.72}.connection-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}.secondary-button{color:var(--ink);background:#13242c17}.secondary-button:hover{color:var(--paper);background:#24424e}.connection-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;border:1px solid rgba(19,36,44,.12);border-radius:22px;padding:16px;background:#ffffff8f}.desktop-bluetooth-chooser{display:grid;gap:14px;margin-top:18px;border:1px solid rgba(31,104,255,.16);border-radius:24px;padding:18px;background:linear-gradient(135deg,rgba(31,104,255,.08),transparent 54%),#ffffffc2}.desktop-bluetooth-chooser-header{display:grid;gap:4px}.desktop-bluetooth-chooser-header strong{color:var(--ink);font-size:1.02rem}.desktop-bluetooth-chooser-header span,.desktop-bluetooth-device span{color:var(--muted)}.desktop-bluetooth-device-list{display:grid;gap:10px;max-height:280px;overflow:auto}.desktop-bluetooth-device{display:grid;gap:4px;justify-items:start;border:1px solid rgba(19,36,44,.1);border-radius:18px;padding:14px 16px;background:#ffffffb8;text-align:left}.desktop-bluetooth-device strong{color:var(--ink);font-size:.96rem}.connection-status strong{color:var(--ink)}.connection-status span{color:var(--muted);font-weight:800}.connection-status button{margin-left:auto}.android-ble-debug-panel{display:grid;gap:12px;margin-top:18px;border:1px solid rgba(31,104,255,.16);border-radius:24px;padding:18px;background:linear-gradient(135deg,rgba(31,104,255,.08),transparent 54%),#ffffffc2}.android-ble-debug-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}.android-ble-debug-header h3{margin-bottom:0}.android-ble-debug-header span,.android-ble-debug-intro,.android-ble-debug-time{color:var(--muted)}.android-ble-debug-intro{margin-bottom:0;line-height:1.68}.android-ble-debug-list{display:grid;gap:10px;max-height:260px;overflow:auto}.android-ble-debug-item,.android-ble-debug-empty{border:1px solid rgba(19,36,44,.1);border-radius:18px;padding:12px 14px;background:#ffffffb3}.android-ble-debug-item{display:grid;gap:4px}.android-ble-debug-time{font-size:.84rem;font-weight:800}.android-ble-debug-message{color:var(--ink);font-size:.95rem;line-height:1.55}.android-ble-debug-empty{color:var(--muted);font-weight:800;line-height:1.6}.status-connected{border-color:#12805c47;background:#12805c14}.status-error{border-color:#ca3a2d47;background:#ca3a2d14}.workbench-grid{grid-template-columns:1fr;margin-top:26px}.compact-heading{margin-bottom:18px}.readout-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.readout-grid-vertical{grid-template-columns:1fr}.readout-card{border:1px solid rgba(31,104,255,.14);border-radius:28px;padding:clamp(28px,4vw,46px);text-align:center;background:linear-gradient(135deg,rgba(31,104,255,.08),transparent 52%),#ffffff9e}.readout-card span,.readout-card em{color:var(--muted);font-weight:900;font-style:normal}.readout-card span{display:block;margin-bottom:16px;font-size:clamp(1.35rem,2.8vw,2.1rem)}.readout-value-line{display:flex;align-items:baseline;justify-content:center;gap:clamp(16px,3vw,30px);white-space:nowrap}.readout-card strong{color:var(--blue);font-size:clamp(7.2rem,19.2vw,16.8rem);line-height:.95;letter-spacing:-.08em}.readout-card em{font-size:clamp(2.9rem,7.2vw,6rem)}.record-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}.precision-control{display:grid;grid-template-columns:auto minmax(180px,360px) auto;align-items:center;justify-content:center;gap:14px;margin-top:20px;color:var(--muted);font-weight:900}.precision-control label{color:var(--ink)}.precision-control input{accent-color:var(--blue)}.precision-control span{font-size:.95rem}.manual-entry-panel{background:radial-gradient(circle at 88% 18%,rgba(18,128,92,.08),transparent 24%),#fffaf0c7}.manual-entry-overlay{position:fixed;inset:0;z-index:36;display:flex;align-items:center;justify-content:flex-end;padding:24px;pointer-events:none}.manual-entry-floating-shell{width:min(100%,480px);pointer-events:auto}.manual-entry-panel-floating{margin:0;border:1px solid rgba(19,36,44,.12);box-shadow:0 28px 72px #13242c38;padding:28px;background:radial-gradient(circle at 88% 18%,rgba(18,128,92,.1),transparent 24%),#fffaf0f5}.manual-entry-form{display:grid;gap:18px}.manual-entry-toolbar{display:flex;justify-content:flex-end;margin:-4px 0 14px}.manual-entry-context{margin-bottom:16px}.manual-entry-snapshot{display:grid;gap:6px;border:1px solid rgba(31,104,255,.14);border-radius:18px;padding:14px 16px;background:#1f68ff12}.manual-entry-snapshot strong{color:var(--ink);font-size:1rem}.manual-entry-snapshot span{color:var(--blue);font-size:1.18rem;font-weight:900}.manual-entry-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:16px}.manual-entry-field{display:grid;gap:8px}.manual-entry-field span{color:var(--ink);font-weight:900}.manual-entry-field input{width:100%;border:1px solid rgba(19,36,44,.14);border-radius:16px;padding:14px 16px;color:var(--ink);background:#ffffffb8;font:inherit}.manual-entry-field em{color:var(--muted);font-size:.92rem;font-style:normal}.chart-shell{position:relative}.chart-toolbar{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:16px}.chart-toolbar button{min-width:104px;padding:.62rem .72rem;border-color:#13242c14;background:#13242c14;color:var(--muted);font-size:clamp(.9rem,2.3vw,1rem)}.chart-toolbar button.active{background:var(--ink);color:#fffdf4;box-shadow:0 18px 34px #13242c29}.chart-toolbar-compact{justify-content:flex-end;margin-bottom:12px}.chart-toolbar-compact button{min-width:98px}.simple-chart{display:block;width:100%;height:auto;border:1px solid rgba(19,36,44,.1);border-radius:28px;background:#ffffff94;touch-action:none;-webkit-user-select:none;user-select:none}.chart-selecting .simple-chart{cursor:crosshair}.chart-inspecting .simple-chart{cursor:pointer}.chart-grid-line{stroke:#1f68ff1a;stroke-width:1}.chart-active-point line{stroke:#1f68ff6b;stroke-width:2;stroke-dasharray:6 5}.chart-active-point circle{fill:#fffdf8;stroke:var(--blue);stroke-width:4}.chart-active-point rect{fill:#13242ceb;filter:drop-shadow(0 12px 18px rgba(19,36,44,.18))}.chart-active-point text{fill:#fffdf8;font-size:12px;font-weight:900}.chart-axis-label,.chart-tick-label{fill:var(--muted);font-family:inherit;font-weight:900;letter-spacing:.02em}.chart-axis-label{font-size:18px}.chart-tick-label{font-size:14px}.chart-y-tick-label{font-size:13px}@media(max-width:620px){.precision-control{grid-template-columns:1fr;text-align:center}.chart-axis-label{font-size:16px}.chart-tick-label{font-size:12px}.chart-toolbar{gap:6px}.chart-toolbar button{min-width:82px;padding:.52rem .5rem;font-size:.82rem}}.chart-reset-button{position:absolute;right:18px;top:18px;min-width:120px}.chart-selection-tip{position:absolute;left:50%;bottom:18px;transform:translate(-50%);border:1px solid rgba(31,104,255,.22);border-radius:999px;padding:10px 16px;background:#ffffffe0;color:var(--blue);font-size:.95rem;font-weight:900;box-shadow:0 14px 30px #1f68ff1f;pointer-events:none;text-align:center;white-space:nowrap}.analysis-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}.analysis-result{display:grid;gap:6px;margin-top:16px;border:1px solid rgba(31,104,255,.16);border-radius:22px;padding:18px;background:#1f68ff14}.analysis-result strong{color:var(--ink);font-size:1.2rem}.analysis-result span{color:var(--muted);font-weight:800;line-height:1.7}.data-table-shell{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{border:1px solid rgba(19,36,44,.12);padding:12px 14px;text-align:center}.data-table th{color:var(--ink);background:#1f68ff14}.data-table tbody tr:nth-child(2n){background:#ffffff7a}.floating-stop-container{position:fixed;right:max(24px,calc(env(safe-area-inset-right) + 24px));bottom:max(24px,calc(env(safe-area-inset-bottom) + 24px));z-index:40;pointer-events:none}.floating-stop-toggle{pointer-events:auto;width:74px;height:74px;padding:0;border:0;border-radius:999px;color:#fffdf4;box-shadow:0 18px 34px #13242c38;font-size:1.3rem;font-weight:900;letter-spacing:.08em}.floating-stop-toggle.is-idle{background:linear-gradient(135deg,#12805c,#0b5f43);box-shadow:0 18px 34px #12805c47}.floating-stop-toggle.is-idle:hover{background:linear-gradient(135deg,#159067,#0f6f4f)}.floating-stop-toggle.is-recording{background:linear-gradient(135deg,#ca3a2d,#a8271c);box-shadow:0 18px 34px #a8271c47}.floating-stop-toggle.is-recording:hover{background:linear-gradient(135deg,#d14536,#b72e22)}@keyframes page-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:920px){.hero-copy,.contact-grid{grid-template-columns:1fr}.hero-section{min-height:0}.module-grid,.category-grid,.simulation-stage-grid,.simulation-topic-grid,.textbook-card-grid,.experiment-entry-grid,.simulation-experiment-grid,.sensor-card-grid,.connection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workbench-grid,.connection-grid{grid-template-columns:1fr}}@media(max-width:620px){.app-shell{width:min(100% - 20px,1180px);padding-top:18px}.hero-copy,.section-block{border-radius:28px}.hero-copy{min-height:0}.module-grid,.category-grid,.simulation-stage-grid,.simulation-topic-grid,.textbook-card-grid,.experiment-entry-grid,.simulation-experiment-grid,.sensor-card-grid,.connection-grid,.workbench-grid{grid-template-columns:1fr}.dis-hero{border-radius:28px}.floating-stop-container{right:max(14px,calc(env(safe-area-inset-right) + 14px));bottom:max(14px,calc(env(safe-area-inset-bottom) + 14px))}.floating-stop-toggle{width:66px;height:66px;font-size:1.16rem}.contact-card{padding:20px}.contact-card h3{font-size:clamp(1.18rem,8.2vw,2.4rem)}.manual-entry-overlay{padding:14px}.manual-entry-floating-shell{width:min(100%,420px)}.simulation-experiment-toolbar{grid-template-columns:1fr;align-items:start}.simulation-experiment-shell{width:min(100% - 20px,1480px);padding-top:18px}.simulation-frame-shell{padding:12px;border-radius:26px}.simulation-frame{height:min(74vh,800px);border-radius:20px}}
