:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}#root{min-height:100svh}body,p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.landing-page{color:#25231e;background:#f6f3ec;overflow:hidden}.landing-nav,.landing-hero,.steps,.feature-section,.landing-closing,footer{box-sizing:border-box}.landing-nav{justify-content:space-between;align-items:center;max-width:1180px;margin:auto;padding:25px 34px;display:flex}.brand{color:#202720;letter-spacing:-.8px;font-size:19px;font-weight:800;text-decoration:none}.brand span{color:#ec5b2e}.landing-nav nav{align-items:center;gap:24px;display:flex}.landing-nav nav a{color:#504c43;font-size:14px;font-weight:650;text-decoration:none}.landing-nav .nav-cta{color:#fff;background:#202d27;border-radius:999px;padding:11px 15px}.landing-hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:70px;max-width:1180px;margin:0 auto;padding:78px 34px 110px;display:grid}.eyebrow,.section-kicker{color:#e7582a;letter-spacing:1.5px;font-size:12px;font-weight:800}.landing-hero h1{letter-spacing:-5px;margin:17px 0 22px;font-size:clamp(50px,6.2vw,84px);line-height:.98}.landing-hero h1 em{color:#ef5c2d;font-style:normal}.hero-lede{color:#625d52;max-width:590px;font-size:18px;line-height:1.8}.hero-actions{gap:12px;margin-top:34px;display:flex}.button{border-radius:4px;align-items:center;gap:19px;padding:15px 21px;font-size:15px;font-weight:750;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex}.button:hover{transform:translateY(-2px);box-shadow:0 12px 24px #332d211c}.primary{color:#fff;background:#e9582c}.secondary{color:#2d322d;border:1px solid #c9c2b6}.hero-note{color:#817b70;margin-top:17px;font-size:12px}.market-card{color:#f6f3ec;background:#25332b;border-radius:14px;padding:25px;transform:rotate(2.2deg);box-shadow:16px 18px #ded8cd}.market-card-head{color:#d9e5d6;letter-spacing:1.1px;align-items:center;gap:8px;font-size:10px;font-weight:800;display:flex}.live-dot{background:#f06137;border-radius:50%;width:8px;height:8px}.round{color:#abbcac;margin-left:auto}.market-value{grid-template-columns:1fr auto;align-items:end;margin:30px 0 11px;display:grid}.market-value span{color:#b8c9b8;font-size:12px}.market-value strong{letter-spacing:-1px;font-size:32px}.market-value b,.market-row b{color:#ef7951;font-size:12px}.market-chart{border-bottom:1px solid #59705f;height:130px}.market-chart svg{width:100%;height:100%;overflow:visible}.market-chart path{fill:none;stroke:#f16439;stroke-width:3px}.market-chart .area{fill:#f1643924;stroke:none}.market-row{color:#cfdbce;border-bottom:1px solid #435848;grid-template-columns:1fr auto auto;gap:18px;padding:14px 0;font-size:13px;display:grid}.market-row strong{color:#fff}.news-pill{color:#243128;background:#e8db8b;border-radius:4px;margin-top:18px;padding:11px;font-size:12px;font-weight:700}.steps{background:#fffdfa;grid-template-columns:.85fr 1.7fr;gap:70px;padding:90px max(34px,50% - 556px);display:grid}.steps h2,.feature-intro h2,.landing-closing h2{color:#29261f;letter-spacing:-2.6px;margin:12px 0 0;font-size:clamp(34px,4vw,52px);line-height:1.12}.steps ol{grid-template-columns:repeat(3,1fr);gap:32px;margin:0;padding:0;list-style:none;display:grid}.steps li{border-top:2px solid #dd5b34;padding-top:17px}.steps li span{color:#dd5b34;font-size:12px;font-weight:800}.steps h3,.feature-grid h3{color:#302c25;margin:20px 0 9px;font-size:17px}.steps li p,.feature-grid p{color:#756e62;font-size:14px;line-height:1.7}.feature-section{background:#e5eee4;padding:110px max(34px,50% - 556px)}.feature-intro{max-width:760px}.feature-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px;display:grid}.feature-grid article{background:#f8f7f1;border-radius:6px;min-height:200px;padding:29px}.feature-grid article>span{color:#e75a30;font-size:29px;font-weight:700}.landing-closing{color:#fff9ed;text-align:center;background:#27342c;padding:120px 32px}.landing-closing p{color:#e8bf85;letter-spacing:.7px;font-size:13px;font-weight:700}.landing-closing h2{color:#fff9ed;margin:18px 0 36px}.light{color:#263229;background:#f6f1df}footer{color:#777065;background:#f6f3ec;justify-content:space-between;padding:26px max(34px,50% - 556px);font-size:12px;display:flex}footer a{color:#4b564b;text-decoration:none}@media (width<=760px){.landing-nav{padding:20px}.landing-nav nav a:not(.nav-cta){display:none}.landing-hero{grid-template-columns:1fr;gap:56px;padding:55px 24px 80px}.landing-hero h1{letter-spacing:-3px}.hero-lede{font-size:16px}.market-card{margin-inline:6px}.steps{grid-template-columns:1fr;gap:40px;padding:65px 24px}.steps ol,.feature-grid{grid-template-columns:1fr;gap:22px}.feature-section{padding:70px 24px}.landing-closing{padding:80px 24px}footer{gap:15px;padding:22px 24px}}.portal-page,.student-page,.teacher-page{color:#1f1f1f;background:#f1f3f4;min-height:100svh;font-family:Roboto,Noto Sans JP,system-ui,sans-serif}.portal-page{grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);display:grid}.portal-auth{background:#fff;align-content:center;gap:18px;max-width:520px;padding:64px max(32px,10vw);display:grid}.portal-brand{color:#1a73e8;letter-spacing:-.3px;font-weight:700;text-decoration:none}.portal-brand span{color:inherit}.portal-eyebrow{color:#5f6368;letter-spacing:.16em;margin:20px 0 0;font-size:11px;font-weight:800}.portal-auth h1,.student-card h1,.teacher-hero h1{color:#202124;letter-spacing:-1.8px;margin:0;font-size:clamp(34px,4.2vw,54px);line-height:1.14}.portal-auth>p:not(.portal-eyebrow):not(.form-notice):not(.portal-help){color:#5f6368;line-height:1.8}.portal-auth label,.student-card label,.field-grid label,.market-meta label{color:#3c4043;gap:8px;font-size:13px;font-weight:700;display:grid}.portal-auth input,.student-card input,.field-grid select,.market-meta select{box-sizing:border-box;color:#202124;width:100%;font:inherit;background:#fff;border:1px solid #dadce0;border-radius:10px;outline:none;padding:13px 15px}.portal-auth input:focus,.student-card input:focus,.field-grid select:focus,.market-meta select:focus{border:2px solid #1a73e8;padding:12px 14px}.portal-button{color:#fff;font:inherit;cursor:pointer;background:#1a73e8;border:0;border-radius:999px;justify-content:center;align-items:center;gap:16px;padding:14px 20px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 1px 2px #0003}.portal-button:hover{background:#1967d2}.portal-button:disabled{cursor:wait;opacity:.55}.form-notice{color:#041e49;background:#d3e3fd;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.6}.portal-help{color:#5f6368;font-size:12px;line-height:1.6}.portal-aside{color:#fff;background:linear-gradient(145deg,#0842a0,#1a73e8);align-content:center;gap:28px;padding:64px;display:grid}.portal-aside p{letter-spacing:.18em;opacity:.78;font-size:11px;font-weight:700}.portal-aside strong{letter-spacing:-1.5px;font-size:clamp(28px,3.2vw,45px);line-height:1.25}.portal-aside ul{gap:14px;padding:0;list-style:none;display:grid}.portal-aside li{align-items:center;gap:10px;font-size:14px;display:flex}.portal-aside li:before{content:"✓";color:#0842a0;background:#d3e3fd;border-radius:50%;place-items:center;width:22px;height:22px;font-weight:900;display:grid}.teacher-header{box-sizing:border-box;background:#fff;border-bottom:1px solid #e8eaed;justify-content:space-between;align-items:center;height:64px;padding:0 max(24px,50% - 640px);display:flex}.teacher-header>div{align-items:center;gap:18px;display:flex}.teacher-header a:not(.portal-brand){color:#1a73e8;font-size:13px;font-weight:700;text-decoration:none}.teacher-avatar{color:#fff;background:#1a73e8;border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;font-weight:800;display:grid}.teacher-hero{box-sizing:border-box;justify-content:space-between;align-items:end;gap:40px;max-width:1280px;margin:auto;padding:54px 32px 42px;display:flex}.teacher-hero h1 em{color:#1a73e8;font-style:normal}.teacher-hero h1+p{color:#5f6368;max-width:520px;margin-top:14px;line-height:1.7}.teacher-stats{background:#fff;border:1px solid #e8eaed;border-radius:16px;grid-template-columns:repeat(3,minmax(120px,1fr));display:grid;overflow:hidden;box-shadow:0 1px 3px #0000001c}.teacher-stats div{border-left:1px solid #e8eaed;min-width:130px;padding:18px 20px}.teacher-stats div:first-child{border-left:0}.teacher-stats span{color:#5f6368;font-size:11px;font-weight:700;display:block}.teacher-stats strong{color:#202124;margin-top:5px;font-size:27px;display:block}.teacher-stats small{font-size:12px}.teacher-workspace{box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:24px;max-width:1280px;margin:auto;padding:0 32px 64px;display:grid}.create-market-card,.active-market-card{background:#fff;border:1px solid #e8eaed;border-radius:18px;padding:28px;box-shadow:0 1px 3px #0000001c}.card-heading,.active-head{justify-content:space-between;align-items:start;gap:20px;display:flex}.card-heading h2,.active-head h2{color:#202124;margin:6px 0 0;font-size:23px}.card-heading a,.host-link,.inline-link{color:#1a73e8;font-size:13px;font-weight:700;text-decoration:none}.field-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin:28px 0 20px;display:grid}.empty-panel{background:#f8f9fa;border-radius:12px;margin:8px 0 22px;padding:20px}.empty-panel strong{color:#202124}.empty-panel p,.empty-copy{color:#5f6368;margin:7px 0 12px;font-size:13px;line-height:1.65}.active-market-card{align-content:start;gap:22px;display:grid}.join-code{background:#d3e3fd;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:18px;display:grid}.join-code span{color:#041e49;font-size:12px;font-weight:700}.join-code strong{color:#041e49;letter-spacing:.12em;font-size:28px}.join-code button,.request-list button{color:#1a73e8;font:inherit;cursor:pointer;background:#fff;border:1px solid #a8c7fa;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:700}.market-meta{color:#5f6368;justify-content:space-between;align-items:center;gap:20px;font-size:13px;display:flex}.market-meta b{color:#202124}.market-meta label{flex:1;max-width:250px}.request-list h3{margin:0;font-size:14px}.request-list h3 span{color:#fff;background:#1a73e8;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;display:inline-grid}.request-list ul{gap:10px;padding:0;list-style:none;display:grid}.request-list li{background:#f8f9fa;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:13px;display:flex}.request-list strong,.request-list small{display:block}.request-list small{color:#5f6368;margin-top:3px;font-size:11px}.student-page{background:radial-gradient(circle at top,#d3e3fd,#f8f9fa 44%);grid-template-rows:auto 1fr auto;min-height:100svh;display:grid}.student-page header{box-sizing:border-box;justify-content:space-between;width:100%;max-width:960px;margin:auto;padding:22px 28px;display:flex}.student-page header>span{color:#5f6368;letter-spacing:.12em;font-size:11px;font-weight:800}.student-card{box-sizing:border-box;background:#fff;border:1px solid #e8eaed;border-radius:22px;align-self:center;width:min(100% - 48px,470px);margin:35px auto;padding:34px;box-shadow:0 8px 24px #1a73e821}.student-icon{color:#fff;background:#1a73e8;border-radius:15px;place-items:center;width:48px;height:48px;margin-bottom:20px;font-size:25px;font-weight:900;display:grid}.student-card h1{margin:7px 0 9px;font-size:34px}.student-card>p:not(.portal-eyebrow):not(.student-message){color:#5f6368;margin-bottom:25px;line-height:1.7}.student-card label{margin-top:15px}.student-card .portal-button{width:100%;margin-top:24px}.student-message{color:#5f6368;text-align:center;margin:15px 0 0;font-size:13px}.student-message.error{color:#d93025}.student-message.waiting{color:#1a73e8}.approved-state{text-align:center;background:#e6f4ea;border-radius:14px;margin-top:25px;padding:24px}.approved-state>span{color:#fff;background:#1e8e3e;border-radius:50%;place-items:center;width:42px;height:42px;margin:0 auto 10px;font-weight:900;display:grid}.approved-state h2{color:#0d3b1d;margin:0}.approved-state p{color:#397447;font-size:13px;line-height:1.6}.approved-state .portal-button{width:auto;margin-top:10px}.student-page footer{color:#5f6368;background:0 0;justify-content:center;padding:22px;font-size:11px}@media (width<=850px){.portal-page{grid-template-columns:1fr}.portal-aside{display:none}.portal-auth{max-width:none;min-height:100svh;padding:42px 28px}.teacher-hero{padding:38px 24px 30px;display:grid}.teacher-stats{width:100%}.teacher-workspace{grid-template-columns:1fr;padding:0 24px 42px}.active-market-card{grid-row:1}}@media (width<=560px){.teacher-header{padding:0 18px}.teacher-header a:not(.portal-brand){display:none}.teacher-hero{padding-inline:18px}.teacher-stats{grid-template-columns:1fr 1fr}.teacher-stats div:last-child{border-top:1px solid #e8eaed;border-left:0;grid-column:span 2}.teacher-workspace{padding-inline:18px}.field-grid{grid-template-columns:1fr}.market-meta{display:grid}.market-meta label{max-width:none}.join-code{grid-template-columns:1fr auto}.join-code strong{grid-row:2;font-size:24px}.join-code button{grid-area:1/2/span 2}.student-page header{padding:20px}}.workspace-gate{box-sizing:border-box;color:#202124;background:radial-gradient(circle at 75% 15%,#d3e3fd,#f8f9fa 42%);align-content:center;gap:58px;min-height:100svh;padding:32px max(28px,50% - 410px);font-family:Roboto,Noto Sans JP,system-ui,sans-serif;display:grid}.workspace-gate>div{max-width:570px}.workspace-gate h1{letter-spacing:-2px;margin:12px 0;font-size:clamp(38px,6vw,64px);line-height:1.12}.workspace-gate p:not(.portal-eyebrow){color:#5f6368;max-width:520px;line-height:1.8}.workspace-gate .portal-button{margin-top:18px}.template-page,.host-page{color:#202124;background:#f1f3f4;min-height:100svh;font-family:Roboto,Noto Sans JP,system-ui,sans-serif}.template-hero,.host-hero{box-sizing:border-box;justify-content:space-between;align-items:end;gap:28px;max-width:1180px;margin:auto;padding:54px 32px 38px;display:flex}.template-hero h1,.host-hero h1{letter-spacing:-2px;margin:7px 0 12px;font-size:clamp(34px,4.8vw,54px);line-height:1.14}.template-hero h1 em,.host-hero h1 em{color:#1a73e8;font-style:normal}.template-hero>div>p:last-child{color:#5f6368;max-width:600px;line-height:1.75}.template-count{background:#fff;border:1px solid #e8eaed;border-radius:16px;min-width:210px;padding:22px 26px;display:grid;box-shadow:0 1px 3px #0000001c}.template-count span,.template-count small{color:#5f6368;font-size:11px;font-weight:700}.template-count strong{margin:2px 0;font-size:38px}.template-workspace,.host-workspace{box-sizing:border-box;gap:22px;max-width:1180px;margin:auto;padding:0 32px 64px;display:grid}.new-template-card,.template-section,.host-main-card,.news-card{background:#fff;border:1px solid #e8eaed;border-radius:18px;padding:28px;box-shadow:0 1px 3px #0000001c}.new-template-card{grid-template-columns:1fr minmax(300px,.75fr);align-items:center;gap:28px;display:grid}.new-template-card h2,.template-section h2,.host-main-card h2,.news-card h2{margin:6px 0 8px;font-size:23px}.new-template-card p:not(.section-kicker),.host-main-card>p:not(.section-kicker),.news-card>p:not(.section-kicker){color:#5f6368;margin:0;font-size:13px;line-height:1.7}.new-template-form{gap:14px;display:grid}.new-template-form label,.news-card label{color:#3c4043;gap:8px;font-size:13px;font-weight:700;display:grid}.new-template-form input,.news-card textarea{box-sizing:border-box;color:#202124;width:100%;font:inherit;resize:vertical;background:#fff;border:1px solid #dadce0;border-radius:10px;outline:0;padding:13px 15px}.new-template-form input:focus,.news-card textarea:focus{border:2px solid #1a73e8;padding:12px 14px}.template-section-head{justify-content:space-between;align-items:end;gap:20px;display:flex}.template-section-head>span{color:#1967d2;background:#e8f0fe;border-radius:99px;padding:5px 9px;font-size:12px;font-weight:700}.template-list,.official-list{gap:10px;margin:22px 0 0;padding:0;list-style:none;display:grid}.template-list li{background:#f8f9fa;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:17px;display:grid}.template-mark{color:#1a73e8;background:#d3e3fd;border-radius:11px;place-items:center;width:40px;height:40px;font-weight:900;display:grid}.template-list strong,.official-list strong{font-size:14px}.template-list p,.official-list p{color:#5f6368;margin:3px 0;font-size:12px}.template-list small{color:#5f6368;font-size:11px}.template-actions{flex-wrap:wrap;justify-content:end;gap:7px;display:flex}.template-actions button,.operator-tools button,.outline-button{color:#1a73e8;font:inherit;cursor:pointer;background:#fff;border:1px solid #a8c7fa;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:700}.template-actions .danger-button{color:#b3261e;border-color:#f1b9b6}.template-empty{color:#5f6368;text-align:center;background:#f8f9fa;border-radius:12px;margin-top:20px;padding:24px}.template-empty strong{color:#202124}.template-empty p{margin-bottom:0;font-size:13px}.official-list{grid-template-columns:repeat(2,minmax(0,1fr))}.official-list li{background:#f8f9fa;border-radius:12px;gap:12px;padding:16px;display:flex}.official-list>li>span{color:#1a73e8;font-size:22px}.operator-tools{background:#fff8e1;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding:14px;font-size:12px;display:flex}.host-hero{padding-bottom:28px}.host-hero>div>p:last-child{color:#5f6368;margin:0;font-size:12px}.host-hero code{color:#1967d2;background:#e8f0fe;border-radius:5px;padding:3px 6px}.host-status{color:#5f6368;background:#fff;border:1px solid #e8eaed;border-radius:999px;padding:10px 13px;font-size:13px;font-weight:700}.host-status span{color:#9aa0a6;margin-right:7px}.host-status.connected{color:#137333;background:#e6f4ea;border-color:#b7dfb9}.host-status.connected span{color:#1e8e3e}.host-workspace{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:start}.host-notice{grid-column:1/-1;margin:0}.host-main-card{min-height:240px}.host-main-card .portal-button{margin-top:25px}.host-controls{flex-wrap:wrap;gap:10px;margin-top:25px;display:flex}.outline-button{color:#b3261e;border-color:#f1b9b6}.news-card{gap:12px;display:grid}.news-card .portal-button{width:100%;margin-top:4px}@media (width<=760px){.template-hero,.host-hero{align-items:start;padding:38px 22px 28px;display:grid}.template-workspace,.host-workspace{grid-template-columns:1fr;padding:0 22px 42px}.new-template-card,.official-list{grid-template-columns:1fr}.host-notice{grid-column:auto}}@media (width<=520px){.template-list li{grid-template-columns:auto 1fr}.template-actions{grid-column:1/-1;justify-content:start}.operator-tools{display:grid}.workspace-gate{padding-inline:24px}}.share-page{box-sizing:border-box;color:#202124;background:radial-gradient(circle at 25% 12%,#d3e3fd,#f8f9fa 48%);min-height:100svh;padding:32px max(28px,50% - 350px);font-family:Roboto,Noto Sans JP,system-ui,sans-serif}.share-card{background:#fff;border:1px solid #e8eaed;border-radius:20px;max-width:560px;margin:11vh auto 0;padding:36px;box-shadow:0 8px 28px #1a73e821}.share-symbol{color:#1a73e8;background:#d3e3fd;border-radius:16px;place-items:center;width:52px;height:52px;margin-bottom:22px;font-size:26px;font-weight:900;display:grid}.share-card h1{letter-spacing:-1.5px;margin:8px 0;font-size:clamp(30px,5vw,43px)}.share-card>p:not(.portal-eyebrow){color:#5f6368;line-height:1.75}.share-card dl{grid-template-columns:repeat(2,1fr);gap:12px;margin:26px 0;display:grid}.share-card dl div{background:#f8f9fa;border-radius:11px;padding:14px}.share-card dt{color:#5f6368;font-size:11px;font-weight:700}.share-card dd{margin:6px 0 0;font-size:18px;font-weight:800}.share-error{color:#b3261e;background:#fce8e6;border-radius:10px;padding:14px}.google-sign-in{color:#3c4043;box-shadow:none;background:#fff;border:1px solid #dadce0;justify-content:flex-start;padding-inline:18px}.google-sign-in:hover{background:#f8f9fa}.google-sign-in b{color:#4285f4;place-items:center;width:22px;height:22px;font-family:Arial,sans-serif;font-size:17px;display:grid}.google-sign-in span{color:#1a73e8;margin-left:auto}
