:root{--cream: #f5f2ee;--cream-deep: #ece7df;--ink: #1c1c1e;--ink-soft: #3a3a3c;--accent: #aaff45;--accent-deep: #8fe02f;--white: #ffffff;--muted: #8e8e93;--line: #e5e5ea;--green: #34c759;--red: #ff4d4d;--amber: #f5a623;--canvas-dark: #1a1a2e;--radius: 16px;--radius-lg: 24px;--shadow-card: 0 4px 18px rgba(0, 0, 0, .08);--shadow-raised: 0 12px 40px rgba(0, 0, 0, .14);--maxw: 1080px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-jp: "Noto Sans JP", var(--font-sans)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.55}a{color:inherit}h1,h2,h3{margin:0;line-height:1.12;letter-spacing:-.02em}.section{width:100%;padding:0 24px}.wrap{max-width:var(--maxw);margin:0 auto}.jp{font-family:var(--font-jp)}.header{position:sticky;top:0;z-index:20;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);background:#f5f2eed1;border-bottom:1px solid rgba(0,0,0,.05)}.header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{display:flex;align-items:center;gap:12px;font-weight:700;text-decoration:none}.brand img{width:34px;height:34px;border-radius:9px;box-shadow:var(--shadow-card)}.brand span{font-size:18px;letter-spacing:.5px}.header-cta{display:inline-flex;align-items:center;background:var(--ink);color:var(--white);text-decoration:none;font-weight:600;font-size:14px;padding:10px 18px;border-radius:999px;transition:transform .12s ease,opacity .12s ease}.header-cta:hover{opacity:.85;transform:translateY(-1px)}.hero{padding:72px 24px 56px;position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;max-width:var(--maxw);margin:0 auto}.pill{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--ink);font-weight:700;font-size:13px;letter-spacing:.3px;padding:7px 14px;border-radius:999px;margin-bottom:22px}.hero h1{font-size:clamp(38px,5.4vw,60px);font-weight:800}.hero .jp-title{display:block;font-family:var(--font-jp);font-weight:700;letter-spacing:.16em;color:var(--ink);font-size:clamp(26px,3.4vw,38px);margin-bottom:14px;opacity:.92}.hero p.lede{font-size:19px;color:var(--ink-soft);max-width:30ch;margin:22px 0 30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:16px;border-radius:var(--radius);padding:16px 26px;transition:transform .12s ease,opacity .12s ease,box-shadow .12s ease}.btn-primary{background:var(--ink);color:var(--white);box-shadow:var(--shadow-card)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-raised)}.btn-primary:active{transform:scale(.98);opacity:.85}.phone{justify-self:center;width:270px;aspect-ratio:9 / 19.5;background:var(--cream);border-radius:44px;border:10px solid var(--ink);box-shadow:var(--shadow-raised);padding:22px 18px;display:flex;flex-direction:column;align-items:center;position:relative}.phone:before{content:"";position:absolute;top:14px;left:50%;transform:translate(-50%);width:92px;height:22px;background:var(--ink);border-radius:999px}.phone-title{font-family:var(--font-jp);font-weight:700;font-size:22px;letter-spacing:.16em;margin:44px 0 26px}.phone-btns{width:100%;display:flex;flex-direction:column;gap:12px}.phone-btn{background:var(--ink);color:var(--white);border-radius:13px;padding:17px;text-align:center;font-size:13px;font-weight:600;letter-spacing:.5px}.demo{padding:8px 24px 80px}.demo-phone{width:300px;max-width:84vw;aspect-ratio:9 / 19.5;margin:0 auto;background:var(--canvas-dark);border-radius:48px;border:11px solid var(--ink);box-shadow:var(--shadow-raised);position:relative;overflow:hidden}.demo-phone:before{content:"";position:absolute;top:16px;left:50%;transform:translate(-50%);width:108px;height:26px;background:var(--ink);border-radius:999px;z-index:2}.demo-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:38px}.demo-screen video,.demo-screen iframe{width:100%;height:100%;object-fit:cover;border:0;display:block}.demo-placeholder{display:flex;flex-direction:column;align-items:center;gap:16px;color:#ffffffc7;text-align:center;padding:24px}.play-badge{width:76px;height:76px;border-radius:999px;background:var(--accent);display:grid;place-items:center;box-shadow:0 8px 30px #aaff4573}.play-badge svg{margin-left:4px}.demo-placeholder small{font-size:13px;color:#ffffff80}.head{text-align:center;max-width:640px;margin:0 auto 48px}.head .eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12.5px;font-weight:700;color:var(--accent-deep)}.head h2{font-size:clamp(28px,3.6vw,40px);font-weight:800;margin:12px 0}.head p{color:var(--ink-soft);font-size:17px}.features{padding:80px 24px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:var(--maxw);margin:0 auto}.card{background:var(--white);border-radius:var(--radius-lg);padding:30px 26px;box-shadow:var(--shadow-card);border:1px solid rgba(0,0,0,.03)}.card .glyph{width:52px;height:52px;border-radius:14px;background:var(--cream);display:grid;place-items:center;font-family:var(--font-jp);font-size:26px;font-weight:700;margin-bottom:18px}.card.accent .glyph{background:var(--accent)}.card h3{font-size:19px;font-weight:700;margin-bottom:8px}.card p{color:var(--ink-soft);font-size:15px;margin:0}.how{padding:80px 24px;background:var(--cream-deep)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:var(--maxw);margin:0 auto}.step{background:var(--white);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-card);position:relative}.step .num{position:absolute;top:22px;right:24px;font-size:40px;font-weight:800;color:var(--line)}.step .dot{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:999px;margin-bottom:16px}.step h3{font-size:19px;margin-bottom:8px}.step p{color:var(--ink-soft);font-size:15px;margin:0}.jlpt{padding:64px 24px;text-align:center}.jlpt-chips{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:28px}.chip{background:var(--ink);color:var(--white);font-weight:700;letter-spacing:1px;padding:14px 26px;border-radius:var(--radius);font-size:17px}.chip.lit{background:var(--accent);color:var(--ink)}.waitlist{padding:88px 24px 96px}.waitlist-card{max-width:720px;margin:0 auto;background:var(--ink);color:var(--white);border-radius:var(--radius-lg);padding:56px 48px;text-align:center;box-shadow:var(--shadow-raised)}.waitlist-card h2{font-size:clamp(26px,3.4vw,36px);font-weight:800;margin-bottom:12px}.waitlist-card p{color:#ffffffb8;font-size:17px;margin:0 auto 30px;max-width:44ch}.wl-form{display:flex;gap:10px;max-width:480px;margin:0 auto}.wl-form input{flex:1;min-width:0;font-family:inherit;font-size:16px;padding:16px 18px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:var(--white);outline:none;transition:border-color .12s ease}.wl-form input::placeholder{color:#ffffff73}.wl-form input:focus{border-color:var(--accent)}.wl-form .btn{background:var(--accent);color:var(--ink);white-space:nowrap}.wl-form .btn:hover{transform:translateY(-2px)}.wl-form .btn:disabled{opacity:.6;cursor:default;transform:none}.wl-note{margin-top:16px;font-size:13px;color:#ffffff80}.wl-success{font-size:18px;font-weight:600;color:var(--accent)}.wl-error{margin-top:14px;font-size:14px;color:#ffb3b3}.footer{padding:40px 24px;border-top:1px solid rgba(0,0,0,.06)}.footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:14px}.footer .brand span{font-size:15px}@media(max-width:880px){.hero-grid{grid-template-columns:1fr;gap:40px;text-align:center}.hero p.lede,.pill{margin-left:auto;margin-right:auto}.feature-grid,.steps{grid-template-columns:1fr}.header-cta{display:none}}@media(max-width:520px){.wl-form{flex-direction:column}.waitlist-card{padding:40px 24px}}
