:root { --ink:#202020; --paper:#f5f3ef; --white:#fff; --muted:#c9c7c5; --line:#555; --accent:#e0e0de; }
* { box-sizing:border-box; }
body { margin:0; background:var(--ink); color:var(--white); font-family:Arial, Helvetica, sans-serif; }
.app-shell { width:min(100%, 560px); margin:auto; min-height:100svh; padding:22px 20px 42px; }
.topbar { display:flex; align-items:center; justify-content:space-between; padding:5px 0 26px; }
.brand,h1,h2,strong { font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight:400; letter-spacing:.025em; }
.brand { font-size:1.42rem; color:var(--white); text-decoration:none; }
.practice-label,.eyebrow { font-size:.65rem; letter-spacing:.16em; font-weight:bold; }
.practice-label { border:1px solid #777; border-radius:99px; padding:7px 9px; color:#ddd; }
.hero { padding:30px 0 28px; }
.eyebrow { color:#d7d5d2; margin:0 0 11px; }
h1 { font-size:clamp(3.35rem, 15vw, 5.6rem); line-height:.85; margin:0; }
.intro { max-width:410px; color:#e4e1dc; line-height:1.45; font-size:1rem; margin:23px 0 0; }
.progress { display:flex; align-items:center; gap:8px; color:#888; font-size:.7rem; text-transform:uppercase; letter-spacing:.07em; margin:0 0 28px; }
.progress span { display:flex; gap:5px; align-items:center; } .progress b { font-size:.62rem; }
.progress .active { color:#fff; } .progress i { height:1px; width:30px; background:#5c5c5c; }
.lesson-card { border:1px solid #535353; border-radius:20px; overflow:hidden; background:#282828; }
.video-placeholder { height:190px; position:relative; display:grid; place-content:center; text-align:center; overflow:hidden; background:radial-gradient(circle at 50% 45%, #656565, #292929 44%, #191919); }
.video-placeholder video { width:100%; height:100%; object-fit:cover; display:none; }
.video-placeholder video[src] { display:block; }
.video-placeholder:has(video[src]) .play, .video-placeholder:has(video[src]) > p { display:none; }
.video-placeholder p { margin:13px 0 0; font-size:.63rem; letter-spacing:.14em; } .play { font-size:2.1rem; }
.lesson-copy { padding:20px; } h2 { margin:0 0 8px; font-size:2rem; line-height:.95; } .lesson-copy p:last-child { margin:0; color:#d1cfca; font-size:.9rem; line-height:1.4; }
.upload-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:16px 0; }
.upload-card { min-height:155px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:14px 8px; cursor:pointer; border:1px dashed #797979; border-radius:18px; background:#282828; transition:.2s ease; }
.upload-card:hover,.upload-card.ready { background:#353535; border-color:#f4f4f4; } .upload-card input { position:absolute; inline-size:1px; block-size:1px; opacity:0; }
.upload-card video { width:100%; max-height:74px; object-fit:cover; border-radius:8px; margin-top:9px; }
.upload-mark { font-size:1.5rem; margin-bottom:9px; } strong { font-size:1.12rem; } small { color:#bab8b5; margin-top:3px; } em { color:#fff; font-size:.66rem; font-style:normal; margin-top:13px; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tip { display:flex; gap:11px; align-items:flex-start; background:#e1dfdc; color:#222; padding:14px; border-radius:14px; margin:6px 0 16px; } .tip span { font-size:1.1rem; } .tip p { font-size:.76rem; line-height:1.35; margin:0; } .tip b { letter-spacing:.04em; }
.primary-button { width:100%; min-height:58px; border:0; border-radius:99px; background:var(--accent); color:#202020; font-weight:bold; letter-spacing:.07em; font-size:.79rem; cursor:pointer; } .primary-button:disabled { opacity:.38; cursor:not-allowed; }
.demo-button { display:block; border:1px solid #868583; border-radius:99px; background:transparent; color:#f1efeb; font-size:.68rem; font-weight:bold; letter-spacing:.07em; padding:13px 17px; margin:4px auto 7px; cursor:pointer; }
.demo-note { color:#aaa7a2; text-align:center; font-size:.67rem; line-height:1.35; max-width:350px; margin:0 auto 14px; }
.privacy { color:#adaba8; font-size:.7rem; line-height:1.35; text-align:center; max-width:330px; margin:13px auto 0; }
.analysis-panel { border:1px solid #a7a5a2; border-radius:18px; padding:20px; margin-top:22px; background:#2a2a2a; } .analysis-panel h2 { font-size:2.15rem; } .analysis-panel p:not(.eyebrow) { color:#dedbd6; line-height:1.4; font-size:.9rem; } .notice { font-size:.68rem !important; font-weight:bold; color:#fff !important; letter-spacing:.08em; }
.result-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:18px 0 12px; }
.metric { background:#181818; border-radius:12px; padding:12px 7px; text-align:center; }
.metric span { display:block; color:#b9b6b0; font-size:.57rem; letter-spacing:.08em; }
.metric strong { display:block; margin-top:6px; font-family:Arial,Helvetica,sans-serif; font-size:1.3rem; }
.feedback-list { border-top:1px solid #555; margin-top:14px; padding-top:9px; }
.feedback-list p { display:flex; gap:8px; margin:8px 0; color:#efede8 !important; font-size:.8rem !important; }
.feedback-list p::before { content:'+'; color:#fff; font-weight:bold; }
@media (min-width:600px) { .app-shell { padding-top:34px; } .video-placeholder { height:225px; } }
