:root{--nipiko-navy:#172554;--nipiko-navy-light:#1e3a8a;--nipiko-navy-50:#eff6ff;--nipiko-navy-100:#dbeafe;--nipiko-coral:#FF6B6B;--nipiko-coral-hover:#ff5252;--nipiko-coral-light:#fff1f2;--nipiko-coral-border:#fecdd3;--nipiko-sakura:#F43F5E;--nipiko-sakura-light:#ffe4e6;--nipiko-sakura-dark:#be123c;--nipiko-emerald:#10B981;--nipiko-emerald-hover:#059669;--nipiko-emerald-light:#ecfdf5;--nipiko-emerald-border:#a7f3d0;--nipiko-sun:#F59E0B;--nipiko-sun-light:#fffbeb;--nipiko-sun-border:#fde68a;--tatami-base:#FAF8F5;--tatami-light:#FDFCF9;--tatami-muted:#F4EFEA;--tatami-dark:#EDE6DE;--card-bg:#FFFFFF;--card-subtle:#F8FAFC;--dark-bg:#0F172A;--dark-surface:#1E293B;--dark-border:#334155;--text-primary:#0F172A;--text-secondary:#475569;--text-muted:#94A3B8;--text-light:#F8FAFC;--text-inverse:#FFFFFF;--text-tagline:#475569;--border-soft:#E2E8F0;--border-warm:#E8E2D9;--border-strong:#CBD5E1;--jlpt-n5:#0284C7;--jlpt-n5-bg:#E0F2FE;--jlpt-n5-border:#BAE6FD;--jlpt-n4:#059669;--jlpt-n4-bg:#D1FAE5;--jlpt-n4-border:#A7F3D0;--jlpt-n3:#D97706;--jlpt-n3-bg:#FEF3C7;--jlpt-n3-border:#FDE68A;--jlpt-n2:#7C3AED;--jlpt-n2-bg:#EDE9FE;--jlpt-n2-border:#DDD6FE;--jlpt-n1:#DC2626;--jlpt-n1-bg:#FEE2E2;--jlpt-n1-border:#FECACA;--font-vi:"Be Vietnam Pro","Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--font-ja:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;--font-display:"Quicksand","Plus Jakarta Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono",Menlo,Consolas,monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:28px;--radius-full:9999px;--shadow-soft-sm:0 2px 4px rgba(15,23,42,0.04),0 1px 2px rgba(15,23,42,0.02);--shadow-soft-md:0 4px 12px rgba(15,23,42,0.06),0 2px 4px rgba(15,23,42,0.03);--shadow-soft-lg:0 10px 25px -3px rgba(15,23,42,0.08),0 4px 6px -2px rgba(15,23,42,0.03);--shadow-soft-xl:0 20px 35px -5px rgba(15,23,42,0.1),0 10px 10px -5px rgba(15,23,42,0.04);--shadow-coral-glow:0 8px 20px -4px rgba(255,107,107,0.35);--shadow-card-hover:0 12px 30px -4px rgba(15,23,42,0.12),0 4px 8px -2px rgba(15,23,42,0.04);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:250ms cubic-bezier(0.4,0,0.2,1);--transition-spring:350ms cubic-bezier(0.34,1.56,0.64,1)}.font-vi{font-family:var(--font-vi);line-height:1.625}.font-ja,.font-vi{-webkit-font-smoothing:antialiased}.font-ja{font-family:var(--font-ja);line-height:1.75;word-break:keep-all;overflow-wrap:anywhere}.font-display{font-family:var(--font-display);letter-spacing:-.015em}.nipiko-ruby{font-family:var(--font-ja);font-weight:600;color:var(--text-primary);ruby-position:over;display:inline-ruby;line-height:1.9;vertical-align:baseline}.nipiko-ruby rt,.ruby-rt{font-family:var(--font-ja);font-size:.55em;font-weight:500;color:#64748B;-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:.04em;text-align:center;line-height:1;padding-bottom:2px}.hide-furigana .nipiko-reading,.hide-furigana .nipiko-ruby rt,.hide-furigana .ruby-rt,.hide-furigana rt,body.hide-furigana .nipiko-reading,body.hide-furigana .nipiko-ruby rt,body.hide-furigana .ruby-rt,body.hide-furigana rt{display:none!important}.hide-furigana .nipiko-ruby,body.hide-furigana .nipiko-ruby{line-height:1.5}.furigana-on-hover .nipiko-ruby rt{opacity:0;transition:opacity var(--transition-fast)}.furigana-on-hover .nipiko-ruby:hover rt{opacity:1}.bg-tatami{background-color:var(--tatami-base)}.card-soft{background:var(--card-bg);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft-sm);transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base)}.card-soft:hover{box-shadow:var(--shadow-soft-md);border-color:#cbd5e1}.card-tatami{background:var(--tatami-light);border:1px solid var(--border-warm);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft-sm)}.card-interactive{cursor:pointer}.card-interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:var(--nipiko-coral-border)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background-color:var(--nipiko-coral);color:#ffffff;font-family:var(--font-vi);font-weight:600;font-size:.9375rem;padding:.625rem 1.25rem;border-radius:var(--radius-full);border:none;cursor:pointer;box-shadow:var(--shadow-soft-sm);transition:all var(--transition-base);text-decoration:none}.btn-primary:hover{background-color:var(--nipiko-coral-hover);box-shadow:var(--shadow-coral-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background-color:var(--nipiko-navy);color:#ffffff;font-family:var(--font-vi);font-weight:600;font-size:.9375rem;padding:.625rem 1.25rem;border-radius:var(--radius-full);border:none;cursor:pointer;box-shadow:var(--shadow-soft-sm);transition:all var(--transition-base);text-decoration:none}.btn-secondary:hover{background-color:var(--nipiko-navy-light);box-shadow:var(--shadow-soft-md);transform:translateY(-1px)}.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background-color:transparent;color:var(--text-primary);font-family:var(--font-vi);font-weight:600;font-size:.9375rem;padding:.5625rem 1.1875rem;border-radius:var(--radius-full);border:1.5px solid var(--border-soft);cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn-outline:hover{border-color:var(--nipiko-coral)}.btn-audio,.btn-outline:hover{color:var(--nipiko-coral);background-color:var(--nipiko-coral-light)}.btn-audio{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);border:1px solid var(--nipiko-coral-border);cursor:pointer;transition:all var(--transition-base)}.btn-audio:hover{background-color:var(--nipiko-coral);color:#ffffff;transform:scale(1.05)}.badge-jlpt{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:700;letter-spacing:.025em;text-transform:uppercase}.badge-n5{background:var(--jlpt-n5-bg);color:var(--jlpt-n5);border:1px solid var(--jlpt-n5-border)}.badge-n4{background:var(--jlpt-n4-bg);color:var(--jlpt-n4);border:1px solid var(--jlpt-n4-border)}.badge-n3{background:var(--jlpt-n3-bg);color:var(--jlpt-n3);border:1px solid var(--jlpt-n3-border)}.badge-n2{background:var(--jlpt-n2-bg);color:var(--jlpt-n2);border:1px solid var(--jlpt-n2-border)}.badge-n1{background:var(--jlpt-n1-bg);color:var(--jlpt-n1);border:1px solid var(--jlpt-n1-border)}@keyframes shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}@keyframes celebrateBounce{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-8px) scale(1.04)}60%{transform:translateY(-2px) scale(1.01)}}@keyframes wavePulse{0%,to{height:16%}50%{height:90%}}.animate-shake{animation:shake .4s cubic-bezier(.36,.07,.19,.97) both}.animate-celebrate{animation:celebrateBounce .5s cubic-bezier(.34,1.56,.64,1) both}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/5662512df8b0ccdf-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/07ef58f5f6014a87-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/5ab5267d02dae909-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cd79e1ff94fa521b-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/89362aa296165c6d-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e11f95d95ac59fa4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/00f4982f357db61e-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/62a3c74fa0e47362-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8201559e247ad180-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/2173e4bb28c315da-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c6f81e539d11fc99-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/25ab8995c98996d7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9ddf1512dbee9c99-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8247d8d2a376ae43-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e270c9fc4fe96f5a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6bb6a9cb68044e10-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9a3689a7cda641d2-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/bed26dc8a57eea87-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro Fallback;src:local("Arial");ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.00%;size-adjust:110.36%}.__className_cb6c6d{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.__variable_cb6c6d{--font-vi:"Be Vietnam Pro","Be Vietnam Pro Fallback"}