@import url("https://fonts.googleapis.com/css2?family=DM+Mono&family=Montserrat:ital,wght@0,500;0,700;0,800;1,500;1,700&family=Noto+Sans+JP:wght@400;500;700&display=swap");:root{--ink:#101316;--paper:#f6f3ed;--muted:#6e716e;--lime:#d8ff59;--line:#d9d7d0}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Noto Sans JP,sans-serif}.auth-loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}nav{height:82px;justify-content:space-between;max-width:1280px;margin:auto;padding:0 34px}.admin-actions,nav{display:flex;align-items:center}.admin-actions{gap:10px}.brand{font:800 16px Montserrat,sans-serif;letter-spacing:-.8px}.ghost{border:1px solid var(--ink);border-radius:999px;background:transparent;padding:9px 18px;font-size:13px}.hero{min-height:535px;padding:83px max(34px,calc((100vw - 1212px)/2));background:var(--ink);color:#fff;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:650px;height:650px;border:100px solid var(--lime);border-radius:50%;right:-170px;top:-230px;opacity:.95}.eyebrow{margin:0 0 18px;font:11px DM Mono,monospace;letter-spacing:1.4px;color:var(--muted)}.hero .eyebrow{color:var(--lime)}.admin h1,.hero h1,.lesson-page h1,.library header h1{font:800 clamp(42px,7vw,90px)/.98 Montserrat,Noto Sans JP,sans-serif;letter-spacing:-4px;margin:0;position:relative;z-index:1}.hero h1 em{color:var(--lime);font-style:italic}.lead{color:#ccd0cd;margin:32px 0;font-size:16px}.cta,.lead{position:relative;z-index:1}.cta{display:inline-flex;gap:28px;align-items:center;background:var(--lime);border:0;color:var(--ink);padding:16px 22px;font-weight:700}.cta:disabled{opacity:.6;cursor:wait}.promise{max-width:1280px;margin:0 auto;padding:64px 34px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:40px;gap:40px}.promise div{border-top:1px solid var(--ink);padding-top:14px}.promise span{font:11px DM Mono;color:var(--muted)}.promise h2{font:700 21px Montserrat,Noto Sans JP;margin:38px 0 8px}.promise p{color:var(--muted);font-size:14px;line-height:1.8}.admin,.lesson-page,.library{max-width:1280px;margin:auto}.library header{padding:70px 34px 37px}.library header h1{font-size:clamp(36px,5vw,64px)}.filters{display:flex;gap:9px;padding:0 34px 30px;overflow:auto}.filters button{background:transparent;border:1px solid var(--line);padding:9px 15px;border-radius:999px;white-space:nowrap;font-size:13px}.filters button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.lesson-grid{padding:0 34px 80px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:23px;gap:23px}.lesson-cover{position:relative;height:280px;padding:20px;display:flex;align-items:flex-end;justify-content:space-between;color:#fff;background-size:cover;background-position:50%;overflow:hidden}.lesson-cover.sun{background-color:#e94c2e}.lesson-cover.violet{background-color:#7056d9}.lesson-cover.blue{background-color:#28789b}.lesson-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,19,22,0) 45%,rgba(16,19,22,.62))}.lesson-cover i,.lesson-cover span{position:relative;z-index:1}.lesson-cover span{font:800 56px Montserrat;opacity:.9}.lesson-cover i{font-style:normal;background:var(--lime);color:var(--ink);height:42px;width:42px;display:grid;place-items:center;border-radius:50%}.lesson p{margin:14px 0 7px;font:10px DM Mono;color:var(--muted)}.lesson h2{margin:0;font:700 19px Montserrat,Noto Sans JP}.empty-state{margin:0 34px 80px;padding:42px;border:1px dashed #aaa8a1;color:var(--muted)}.empty-state p{margin:0 0 8px;color:var(--ink);font-weight:700}.empty-state span{font-size:13px}.lesson-page{padding-bottom:80px}.lesson-page>.description,.lesson-page>.eyebrow,.lesson-page>h1{margin-left:34px;margin-right:34px}.lesson-page>.eyebrow{margin-top:60px}.admin h1,.lesson-page h1{font-size:clamp(34px,5vw,62px);margin-bottom:34px}.video,.video-placeholder{width:calc(100% - 68px);margin:0 34px;aspect-ratio:16/9;max-height:680px;background:#151515;display:grid;place-items:center;color:#fff}.video-wrap{margin:0 34px}.video-wrap .video{width:100%;margin:0}.watch-progress{position:relative;height:3px;background:var(--line);margin-top:13px}.watch-progress>span{display:block;height:100%;background:#e94c2e}.watch-progress p{margin:8px 0 0;color:var(--muted);font:11px DM Mono}.description{max-width:620px;font-size:16px;line-height:2;margin-top:42px!important}.history-section{padding:12px 34px 54px}.section-heading h2{margin:0 0 22px;font:700 27px Montserrat,Noto Sans JP}.history-list{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.history-card{border:1px solid var(--line);background:#fff;padding:18px;display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px}.history-card p{margin:0 0 6px;color:var(--muted);font:10px DM Mono}.history-card h3{margin:0 0 14px;font-size:15px}.history-card small{color:var(--muted)}.history-card strong{font:700 18px Montserrat}.history-card>span{grid-column:1/-1;height:3px;background:var(--line)}.history-card>span i{display:block;height:100%;background:#e94c2e}.admin{max-width:1100px}.admin>.eyebrow,.admin>h1,.upload-form{margin-left:34px;margin-right:34px;max-width:700px}.admin>.eyebrow{margin-top:55px}.upload-form{display:grid;grid-gap:20px;gap:20px;padding-bottom:90px}.upload-form label{display:grid;grid-gap:8px;gap:8px;font-size:13px;font-weight:700}.upload-form input,.upload-form select,.upload-form textarea{width:100%;border:1px solid var(--line);background:#fff;font:16px Noto Sans JP;padding:13px;border-radius:0}.form-message,.upload-form small{color:var(--muted);font-size:12px;font-weight:400}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.file-input{border:1px dashed #9d9d97;padding:20px}.file-input span{color:var(--muted);font-weight:400}.poster-preview{width:100%;max-width:280px;aspect-ratio:16/9;object-fit:cover}.upload-progress{height:8px;overflow:hidden;background:var(--line)}.upload-progress span{display:block;height:100%;background:var(--lime);transition:width .2s ease}.form-message{min-height:18px;margin:0}.admin-list,.student-history{margin:0 34px 90px;border-top:1px solid var(--ink);padding-top:32px}.history-table,.lesson-table{border:1px solid var(--line);background:#fff}.lesson-row{display:grid;grid-template-columns:56px 1.8fr .8fr .45fr .55fr .8fr;grid-gap:14px;gap:14px;align-items:center;padding:14px 16px;border-top:1px solid var(--line);font-size:13px}.lesson-row:first-child{border-top:0}.row-link{display:contents}.admin-thumb{width:56px;height:36px;background-color:var(--line);background-size:cover;background-position:50%}.lesson-row strong{display:grid;grid-gap:3px;gap:3px}.lesson-row small{color:var(--muted);font-weight:400}.lesson-row button{border:1px solid var(--ink);background:transparent;padding:6px 12px;font-size:12px;width:max-content}.lesson-head{color:var(--muted);font:10px DM Mono}.status-draft,.status-published{width:max-content;padding:4px 9px;border-radius:999px;font-size:11px}.status-published{background:#e3f5a7}.status-draft{background:var(--line)}.archive-row{display:grid;grid-template-columns:56px 1.7fr .7fr .4fr .7fr auto;grid-gap:14px;gap:14px;align-items:center;padding:14px 16px;border-top:1px solid var(--line);font-size:13px}.archive-row:first-child{border-top:0}.archive-row strong{display:grid;grid-gap:3px;gap:3px}.archive-row small{color:var(--muted);font-weight:400}.archive-actions{display:flex;gap:8px}.archive-actions button{border:1px solid var(--ink);background:transparent;padding:6px 12px;font-size:12px}.archive-actions button.danger{border-color:#b53b29;color:#b53b29}.history-row{display:grid;grid-template-columns:1.1fr 1.5fr .5fr 1fr auto;grid-gap:14px;gap:14px;align-items:center;padding:13px 16px;border-top:1px solid var(--line);font-size:13px}.history-row:first-child{border-top:0}.history-head{color:var(--muted);font:10px DM Mono}.history-row button{border:0;background:transparent;color:#b53b29;font-size:12px}.no-history{color:var(--muted)}.people-table{border:1px solid var(--line);background:#fff}.people-row{display:grid;grid-template-columns:1.2fr 1.8fr .6fr auto;grid-gap:14px;gap:14px;align-items:center;padding:13px 16px;border-top:1px solid var(--line);font-size:13px}.people-row:first-child{border-top:0}.people-head{color:var(--muted);font:10px DM Mono}.people-row small{color:var(--muted);font:11px DM Mono}.people-row button{border:1px solid var(--ink);background:transparent;padding:6px 12px;font-size:12px}.people-add-form{display:flex;gap:10px;align-items:flex-start;padding:16px;border:1px dashed #9d9d97;margin-top:14px}.people-add-form input{flex:1 1;border:1px solid var(--line);background:#fff;font:14px Noto Sans JP;padding:11px;border-radius:0}.people-add-form button{flex-shrink:0}@media (max-width:700px){nav{padding:0 20px}.hero{padding:65px 24px;min-height:480px}.hero:after{width:390px;height:390px;border-width:55px;right:-185px;top:-35px}.hero h1{letter-spacing:-2px}.lesson-grid,.promise{grid-template-columns:1fr;padding-left:20px;padding-right:20px}.promise{gap:16px}.library header{padding:45px 20px 30px}.filters{padding-left:20px}.lesson-cover{height:240px}.lesson-page>.description,.lesson-page>.eyebrow,.lesson-page>h1{margin-left:20px;margin-right:20px}.video,.video-placeholder{width:calc(100% - 40px);margin:0 20px}.video-wrap{margin:0 20px}.video-wrap .video{width:100%;margin:0}.history-section{padding-left:20px;padding-right:20px}.history-list{grid-template-columns:1fr}.admin>.eyebrow,.admin>h1,.upload-form{margin-left:20px;margin-right:20px}.form-row{grid-template-columns:1fr}.admin-list,.student-history{margin-left:20px;margin-right:20px;overflow:auto}.lesson-table{min-width:780px}.history-table{min-width:760px}}.login-only{min-height:100vh;padding:32px 16px;background:var(--paper);color:var(--ink)}.email-login{max-width:500px;margin:40px auto;padding:40px;background:#fff;border:1px solid var(--line);border-radius:18px}.email-login-icon{display:inline-grid;place-items:center;width:56px;height:56px;margin:0 0 16px;background:var(--ink);color:var(--lime);border-radius:14px}.email-login .eyebrow{margin:0 0 13px;font:11px/1.9 DM Mono,monospace;letter-spacing:1.4px;color:var(--muted)}.email-login h1{margin:12px 0;font:800 30px/1.2 Montserrat,Noto Sans JP,sans-serif;letter-spacing:-1px;color:var(--ink)}.email-login-description{margin:0 0 14px;font-size:14px;line-height:1.9;color:var(--muted)}.email-login-description strong{color:var(--ink)}.login-steps{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;margin:24px 0;padding:0;list-style:none;font:11px DM Mono,monospace;letter-spacing:.5px;color:var(--muted)}.login-steps li{padding:0 0 10px;border-bottom:2px solid var(--line)}.login-steps li.active{color:var(--ink);font-weight:700;border-bottom-color:var(--lime)}.email-login form,.email-login label{display:grid;grid-gap:12px;gap:12px}.email-login label{font-size:13px;font-weight:700}.email-login input{width:100%;padding:14px;border:1px solid var(--line);border-radius:0;background:#fff;font:500 16px Noto Sans JP,sans-serif;color:var(--ink)}.email-login input:focus{outline:2px solid var(--ink);outline-offset:0}.email-login input::placeholder{color:#a8a8a2;font-weight:400}.email-login .otp-input{font:700 30px Montserrat,monospace;letter-spacing:10px;text-align:center}.email-login .primary{display:flex;justify-content:center;align-items:center;gap:10px;padding:16px 22px;border:0;border-radius:0;background:var(--lime);color:var(--ink);font:700 14px Noto Sans JP,sans-serif}.email-login .primary:disabled{opacity:.5;cursor:not-allowed}.login-error{margin:12px 0 0;font-size:13px;color:#b53b29}.login-actions{display:flex;flex-wrap:wrap;gap:16px;margin:22px 0 0;font-size:13px}.login-actions button{padding:0;border:0;background:transparent;color:var(--ink);font:700 13px Noto Sans JP,sans-serif;text-decoration:underline;text-underline-offset:3px}.login-actions button:disabled{opacity:.45;cursor:default}.login-actions p{flex-basis:100%;margin:0 0 13px;line-height:1.7;color:var(--muted)}@media (max-width:700px){.email-login{padding:28px 20px;margin:16px auto}}