.hero{isolation:isolate;width:100%;height:62vh;min-height:520px;font-family:var(--font-ui);position:relative;overflow:hidden}.hero *,.hero :before,.hero :after{box-sizing:border-box}.hero-canvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;display:block;position:absolute;inset:0}.hero .scrim-top{z-index:2;pointer-events:none;background:linear-gradient(#f5efe399,#f5efe300);height:38%;position:absolute;inset:0 0 auto}.hero .scrim-bottom{z-index:2;pointer-events:none;background:linear-gradient(#f5efe300,#f5efe380 52%,#f5efe3eb 92%);height:62%;position:absolute;inset:auto 0 0}.hero .content{z-index:4;color:var(--text);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"headline right";align-items:start;column-gap:clamp(22px,5vw,72px);padding:0 clamp(20px,6vw,96px);display:grid;position:absolute;inset:74% 0 auto}.hero .headline{grid-area:headline}.hero .col-right{text-align:right;flex-direction:column;grid-area:right;justify-content:flex-start;place-self:start end;align-items:stretch;gap:18px;display:flex}.hero .kicker{z-index:4;font-family:var(--font-ui);letter-spacing:.12em;letter-spacing:.14em;color:var(--kicker);text-transform:uppercase;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fffaf0d9;align-items:center;gap:10px;padding:7px 12px;font-size:12.5px;font-weight:600;line-height:1.6;display:inline-flex;position:absolute;top:20px;left:clamp(20px,6vw,96px)}.hero .kicker .hz{font-family:var(--font-brush);letter-spacing:0;color:var(--accent);font-size:22px}.hero .headline{font-family:var(--font-serif);letter-spacing:-.015em;margin:0;font-size:clamp(28px,3.6vw,48px);font-weight:600;line-height:1.04}.hero .headline .accent{color:var(--accent);font-style:italic}.hero .ctas{flex-wrap:nowrap;justify-content:flex-end;gap:12px;display:flex}.hero .btn{white-space:nowrap;font-family:var(--font-ui);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;align-items:center;gap:11px;padding:13px 22px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .15s,background .15s,box-shadow .15s,border-color .15s;display:inline-flex}.hero .btn svg{flex:none;width:19px;height:19px}.hero .btn-primary{background:var(--text);color:var(--bg)}.hero .btn-primary:hover{background:var(--accent);color:var(--on-accent)}.hero .btn-ghost{background:var(--surface);color:var(--text);border-color:var(--text)}.hero .btn-ghost:hover{color:var(--accent);border-color:var(--accent)}.hero .btn .kbadge{font-family:var(--font-brush);opacity:.85;font-size:16px;font-weight:400}.hero .stats{color:var(--muted);justify-content:space-between;align-items:center;gap:clamp(14px,2.2vw,30px);font-size:14px;font-weight:500;display:flex}.hero .stats .stat{text-align:left}.hero .stats .stat b{font-family:var(--font-serif);color:var(--text);font-size:24px;font-weight:600;line-height:1.1;display:block}.hero .stats .sep{background:var(--line-strong);width:1px;height:30px}.hero .hsk-note{color:var(--muted);letter-spacing:.01em;margin:8px 0 0;font-size:12.5px}@media (max-width:720px){.hero{min-height:560px}.hero .scrim-bottom{background:linear-gradient(#f5efe300,#f5efe3bf 38%,#f5efe3f7 66%);height:72%}.hero .nav .nav-links{display:none}.hero .stats{gap:clamp(10px,3vw,20px)}.hero .stats .stat{font-size:13px}.hero .kicker{white-space:nowrap;left:50%;transform:translate(-50%)}.hero .content{grid-template-columns:1fr;grid-template-areas:"headline""right";row-gap:18px;top:auto;bottom:28px}.hero .col-right{text-align:left;place-self:start;align-items:flex-start;gap:16px}.hero .ctas{flex-wrap:wrap;justify-content:flex-start}}
.st{--st-bg:var(--bg);--st-panel:var(--surface);--st-panel2:var(--surface2);--st-line:var(--line);--st-text:var(--text);--st-muted:var(--muted);background:var(--st-bg);width:100%;color:var(--st-text);font-family:var(--font-ui);flex-direction:column;padding:clamp(44px,5vw,64px) clamp(36px,5vw,80px);display:flex;position:relative;overflow:hidden}.st.st--cards{padding-top:clamp(22px,2.5vw,32px);padding-bottom:clamp(22px,2.5vw,32px)}.st *,.st :before,.st :after{box-sizing:border-box}.st:before{content:"";z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(var(--wash)1px,transparent 1px),linear-gradient(90deg,var(--wash)1px,transparent 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 0,#000 30%,#0000 78%);mask-image:radial-gradient(at 50% 0,#000 30%,#0000 78%)}.st-inner{z-index:1;flex-direction:column;gap:clamp(28px,3vw,44px);width:100%;max-width:1180px;margin:0 auto;display:flex;position:relative}.st-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.st-kicker{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--warm);align-items:center;gap:9px;margin-bottom:12px;font-size:12.5px;font-weight:600;display:inline-flex}.st-kicker .hz{font-family:var(--font-brush);letter-spacing:0;color:var(--accent);font-size:22px}.st-title{font-family:var(--font-serif);color:var(--text);margin:0;font-size:clamp(26px,2.6vw,36px);font-weight:600;line-height:1.2}.st-title .accent{color:var(--accent)}.st-sub{color:var(--st-muted);max-width:52ch;margin:8px 0 0;font-size:15px}.st-seeall{white-space:nowrap;font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--warm);border:1px solid var(--line-strong);border-radius:var(--radius-md);align-items:center;gap:8px;padding:10px 10px 10px 14px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,transform .15s;display:inline-flex}.st-seeall:hover{background:var(--surface);border-color:var(--text)}.st-seeall svg{flex:none;width:14px;height:14px}.st-decks{grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.6vw,22px);display:grid}.st-tile{color:inherit;background:var(--st-panel);border:1px solid var(--st-line);border-radius:var(--radius-md);flex-direction:column;gap:14px;padding:26px 24px 22px;text-decoration:none;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.st-tile:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.st-tile .glyph{font-family:var(--font-serif);color:var(--text);font-size:76px;font-weight:600;line-height:1}.st-tile .glyph-wrap{justify-content:space-between;align-items:center;display:flex}.st-tile .pip{font-family:var(--font-ui);letter-spacing:.12em;color:var(--st-muted);border:1px solid var(--st-line);border-radius:var(--radius-sm);padding:6px 8px;font-size:11.5px;font-weight:600}.st-tile .t-name{font-family:var(--font-serif);color:var(--text);font-size:22px;font-weight:600}.st-tile .t-desc{color:var(--st-muted);font-size:13px;line-height:1.5}.st-tile .t-go{color:var(--accent);align-items:center;gap:8px;margin-top:auto;font-size:13px;font-weight:600;display:inline-flex}.st-tile .t-go svg{width:16px;height:16px;transition:transform .16s}.st-tile:hover .t-go svg{transform:translate(4px)}.st-tile:after{content:"";background:repeating-linear-gradient(90deg,var(--tile-accent,var(--accent))0 6px,transparent 6px 12px);opacity:.5;width:100%;height:3px;transition:opacity .16s;display:none;position:absolute;bottom:0;left:0}.st-tile.k-hira{--tile-accent:var(--accent)}.st-tile.k-kata{--tile-accent:var(--link)}.st-tile.k-vocab{--tile-accent:var(--warm)}.st-arts-head{border-top:1px dashed var(--st-line);justify-content:space-between;align-items:center;gap:16px;padding-top:22px;display:flex}.st-arts-head h3{font-family:var(--font-serif);color:var(--text);white-space:nowrap;margin:0;font-size:18px;font-weight:600}.st-arts{grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.4vw,20px);display:grid}.st-art{background:var(--st-panel);border:1px solid var(--st-line);border-radius:var(--radius-md);color:inherit;flex-direction:column;gap:10px;padding:18px;text-decoration:none;transition:transform .15s,border-color .15s;display:flex}.st-art:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.st-tag{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);align-self:flex-start;font-size:11px;font-weight:600}.st-art .a-title{font-family:var(--font-serif);color:var(--text);text-wrap:balance;font-size:16px;font-weight:600;line-height:1.3}.st-art .a-meta{color:var(--st-muted);align-items:center;gap:10px;margin-top:auto;font-size:12px;display:flex}.st-art .a-meta .d{background:var(--accent);width:3px;height:3px}.st--arcade .st-tile{background:var(--st-panel2);clip-path:polygon(0 10px,10px 10px,10px 0,calc(100% - 10px) 0,calc(100% - 10px) 10px,100% 10px,100% calc(100% - 10px),calc(100% - 10px) calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,10px calc(100% - 10px),0 calc(100% - 10px));box-shadow:inset 0 0 0 2px var(--tile-accent,var(--accent));border:none;border-radius:0}.st--arcade .st-tile:after{display:none}.st--arcade .st-tile .t-go{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--st-bg);background:var(--tile-accent,var(--accent));clip-path:polygon(0 4px,4px 4px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px));border-radius:0;padding:9px 12px;font-size:12px;font-weight:600}.st--arcade .st-tile.k-vocab .t-go{color:#3a2f12}.st--arcade .st-tile:hover{box-shadow:inset 0 0 0 2px var(--tile-accent),0 14px 34px #00000073;transform:translateY(-4px)}.st--arcade .st-art{background:var(--st-panel2);clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% 100%,0 100%);border-radius:0}.st--level .st-tile{background:var(--st-panel);border-color:#ffffff1a}.st--level .st-tile .lvl{font-family:var(--font-ui);color:var(--tile-accent,var(--accent));letter-spacing:.12em;font-size:12px;font-weight:600}.st--level .st-glyph-badge{border-radius:var(--radius-md);border:2px solid var(--tile-accent,var(--accent));background:#ffffff0d;place-items:center;width:88px;height:88px;display:grid}.st--level .st-glyph-badge .glyph{font-size:52px}.st--level .st-pips{gap:5px;margin-top:4px;display:flex}.st--level .st-pips i{background:#ffffff24;width:18px;height:6px}.st--level .st-pips i.on{background:var(--tile-accent,var(--accent))}.st--level .st-art{background:var(--st-panel);border-left:3px dashed var(--tile-accent,var(--warm));position:relative}@media (max-width:820px){.st-decks,.st-arts{grid-template-columns:1fr}.st-inner{gap:18px}.st-head{flex-direction:column;align-items:flex-start;gap:16px}.st-arts-head{flex-direction:column;align-items:flex-start}}
.ec{--ec-bg:var(--ft-bg);--ec-panel:var(--ft-bg2);--ec-text:var(--ft-text);--ec-muted:var(--ft-muted);background:var(--ec-bg);width:100%;color:var(--ec-text);font-family:var(--font-ui);display:flex;position:relative;overflow:hidden}.ec *,.ec :before,.ec :after{box-sizing:border-box}.ec-trees{z-index:0;pointer-events:none;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;position:absolute;inset:0}.ec-stars{z-index:0;pointer-events:none;opacity:.5;position:absolute;inset:0}.ec-stars i{background:var(--ft-label);width:2px;height:2px;image-rendering:pixelated;opacity:.7;position:absolute}.ec-kicker{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--ft-label);align-items:center;gap:9px;font-size:12.5px;font-weight:600;line-height:1.6;display:inline-flex}.ec-kicker .hz{font-family:var(--font-brush);letter-spacing:0;color:var(--ft-accent);font-size:22px}.ec-head{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--ft-text);width:100%;margin:0;padding-bottom:.06em;font-size:clamp(28px,3vw,40px);font-weight:600;line-height:1.32}.ec-head .accent{color:var(--ft-accent);font-style:italic}.ec-sub{color:var(--ec-muted);text-wrap:pretty;max-width:46ch;margin:0;font-size:16px;line-height:1.55}.ec-form-wrap{flex-direction:column;gap:8px;width:100%;max-width:480px;display:flex}.ec-form{gap:10px;width:100%;display:flex}.ec-field{flex:auto;min-width:0;position:relative}.ec-input{border-radius:var(--radius-md);width:100%;height:52px;color:var(--ft-text);font-family:var(--font-ui);background:#f5efe30f;border:1px solid #f5efe373;padding:0 16px;font-size:15px;transition:border-color .15s,background .15s}.ec-input::placeholder{color:#f5efe399}.ec-input:focus{border-color:var(--ft-text);background:#f5efe31a;outline:none}.ec-input.invalid{border-color:var(--ft-accent);background:#e0705f24}.ec-btn{background:var(--bg);height:52px;color:var(--text);cursor:pointer;font-family:var(--font-ui);border-radius:var(--radius-md);white-space:nowrap;border:none;flex:none;align-items:center;gap:9px;padding:0 22px;font-size:15px;font-weight:600;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.ec-btn:hover{background:var(--accent);color:var(--on-accent)}.ec-btn:active{transform:translateY(0)}.ec-btn .kbadge{font-family:var(--font-serif);opacity:.9;font-size:15px;font-weight:600}.ec-err{color:#f1a08f;min-height:16px;margin:0;font-size:13px;transition:opacity .15s}.ec-note{color:var(--ec-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.ec-note a{color:inherit;text-underline-offset:2px;text-decoration:underline}.ec-note a:hover{color:var(--ft-text)}.ec-note .dot{background:var(--accent);width:3px;height:3px;image-rendering:pixelated}.ec-success{border:1px solid var(--ft-line);border-radius:var(--radius-md);background:#f5efe30d;align-items:center;gap:14px;max-width:480px;padding:16px 18px;animation:.35s cubic-bezier(.2,.8,.3,1.1) ec-pop;display:flex}.ec-check{background:var(--accent);color:#fff;width:30px;height:30px;font-family:var(--font-serif);clip-path:polygon(0 4px,4px 4px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px));flex:none;place-items:center;font-size:16px;font-weight:600;display:grid}.ec-success b{color:var(--ft-text);font-size:15px;font-weight:600}.ec-success span{color:var(--ec-muted);font-size:13px;display:block}@keyframes ec-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.ec--split{justify-content:center;align-items:center;gap:clamp(48px,6vw,104px);padding:clamp(22px,2.5vw,32px) clamp(48px,8vw,96px)}.ec--split .ec-copy{z-index:1;flex-direction:column;flex:0 520px;align-items:flex-start;gap:20px;display:flex;position:relative}.ec--split .ec-copy:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 42% 52%,#1d1a16eb 38%,#1d1a1699 62%,#1d1a1600 80%);position:absolute;inset:-40px -60px -30px -50px}.ec--split .ec-art{z-index:1;flex:none;justify-content:center;display:flex;position:relative}.ec-stamp{background:var(--ec-panel);border:3px dashed #ffffff47;border-radius:4px;flex:none;place-items:center;width:300px;height:300px;display:grid;position:relative;box-shadow:0 20px 60px #00000073}.ec-stamp .glyph{font-family:var(--font-brush);color:var(--ft-text);font-size:150px;font-weight:400;line-height:1}.ec-stamp .postmark{width:78px;height:78px;font-family:var(--font-ui);color:var(--ft-label);letter-spacing:.12em;text-align:center;border:2px solid #e0b86680;border-radius:50%;place-items:center;font-size:11.5px;font-weight:600;line-height:1.5;display:grid;position:absolute;top:22px;right:22px;transform:rotate(-12deg)}.ec-stamp .denom{font-family:var(--font-ui);letter-spacing:.12em;color:var(--ft-label);font-size:12px;font-weight:600;position:absolute;bottom:16px;left:18px}@media (max-width:760px){.ec--split{text-align:left;flex-direction:column;gap:40px;padding:clamp(22px,2.5vw,32px) clamp(24px,5vw,56px)}.ec--split .ec-copy{flex:auto;align-items:flex-start}.ec--split .ec-art{display:none}.ec-form{flex-direction:column}.ec-btn{justify-content:center;width:100%}.ec-stamp{width:240px;height:240px}.ec-stamp .glyph{font-size:120px}}
