:root{--ink:#17211f;--muted:#5c6865;--paper:#fbfcfa;--surface:#fff;--line:#dce4e0;--brand:#176b5b;--brand-dark:#0f5145;--accent:#e8f4ef;--warm:#f2eee5;--danger:#9c2f2f;--shadow:0 14px 40px #14332c14;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans JP,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{min-width:320px;margin:0;line-height:1.65}a{color:var(--brand-dark);text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{text-decoration-thickness:.13em}img,svg{max-width:100%;height:auto}button,input,select,textarea{font:inherit}button{cursor:pointer}.skip-link{background:var(--ink);color:#fff;z-index:100;border-radius:.4rem;padding:.7rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.container{width:min(1160px,100% - 2rem);margin-inline:auto}.narrow{width:min(780px,100% - 2rem);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);z-index:40;backdrop-filter:blur(12px);background:#fbfcfaf5;position:sticky;top:0}.nav-wrap{align-items:center;gap:1.4rem;min-height:68px;display:flex}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:.55rem;font-size:1.13rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{background:var(--brand);color:#fff;border-radius:9px;place-items:center;width:34px;height:34px;font-size:1.1rem;font-weight:700;display:grid}.desktop-nav{align-items:center;gap:1.15rem;margin-left:auto;display:flex}.desktop-nav a{color:#34413e;font-size:.91rem;font-weight:650;text-decoration:none}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:var(--brand)}.menu-button{border:1px solid var(--line);background:#fff;border-radius:.6rem;margin-left:auto;padding:.55rem .7rem;display:none}.mobile-nav{padding:0 1rem 1rem;display:none}.mobile-nav.is-open{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}.mobile-nav a{border-radius:.4rem;padding:.65rem;text-decoration:none}.mobile-nav a:hover{background:var(--accent)}main{min-height:70vh}.page-intro{padding:2.3rem 0 1.1rem}.eyebrow{color:var(--brand);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800}.page-intro h1,.article-header h1{letter-spacing:-.045em;margin:.2rem 0 .65rem;font-size:clamp(2rem,5vw,3.25rem);line-height:1.08}.page-intro p{max-width:760px;color:var(--muted);margin:0;font-size:1.04rem}.tool-shell{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;overflow:hidden}.tool-topbar{border-bottom:1px solid var(--line);background:#f4f7f5;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.mode-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.mode-tab,.utility-btn,.choice-btn{color:#31403c;background:#fff;border:1px solid #cdd8d3;border-radius:8px;padding:.52rem .75rem;font-size:.86rem;font-weight:700}.mode-tab[aria-pressed=true],.choice-btn[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.privacy-note{color:var(--muted);white-space:nowrap;font-size:.78rem}.editor-wrap{padding:1rem}.japanese-editor{resize:vertical;width:100%;min-height:185px;color:var(--ink);background:#fff;border:1px solid #bdcbc5;border-radius:12px;outline:none;padding:1rem 1.1rem;font-size:1.25rem;line-height:1.85}.japanese-editor:focus{border-color:var(--brand);box-shadow:0 0 0 4px #176b5b24}.editor-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:.55rem;font-size:.82rem;display:flex}.status-message{color:var(--brand);min-height:1.2em;font-weight:700}.tool-actions{flex-wrap:wrap;gap:.5rem;padding:0 1rem 1rem;display:flex}.utility-btn{align-items:center;gap:.35rem;display:inline-flex}.utility-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.utility-btn:hover{border-color:var(--brand)}.keyboard-panel{border-top:1px solid var(--line);background:#f8faf9;padding:1rem}.keyboard-heading{justify-content:space-between;align-items:center;margin-bottom:.7rem;display:flex}.keyboard-heading h2{margin:0;font-size:1rem}.key-groups{gap:.75rem;display:grid}.key-group{grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:.38rem;display:grid}.kana-key{min-height:46px;color:var(--ink);background:#fff;border:1px solid #cdd7d2;border-radius:8px;font-size:1.13rem;font-weight:650;box-shadow:0 1px #bcc8c2}.kana-key:hover{background:var(--accent);border-color:#8fb7ab}.kana-key:active{box-shadow:none;transform:translateY(1px)}.content-section{padding:3.2rem 0}.content-section.alt{border-block:1px solid var(--line);background:#f2f5f3}.content-grid{grid-template-columns:minmax(0,1.65fr) minmax(250px,.75fr);gap:2.6rem;display:grid}.prose h2{letter-spacing:-.025em;margin:2.2rem 0 .7rem;font-size:clamp(1.45rem,3vw,2rem);line-height:1.2}.prose h2:first-child{margin-top:0}.prose h3{margin:1.6rem 0 .45rem;font-size:1.2rem}.prose p,.prose li{color:#34413e}.prose table{border-collapse:collapse;width:100%;margin:1.2rem 0;font-size:.94rem}.prose th,.prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.68rem}.prose th{background:#eef4f1}.prose code{background:#edf3f0;border-radius:.25rem;padding:.08rem .28rem}.cards{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.card{border:1px solid var(--line);color:inherit;background:#fff;border-radius:12px;padding:1.15rem;text-decoration:none}.card:hover{border-color:#9dbbb2;box-shadow:0 8px 26px #14332c12}.card h2,.card h3{margin:0 0 .35rem;font-size:1.08rem;line-height:1.3}.card p{color:var(--muted);margin:0;font-size:.91rem}.chip{background:var(--accent);color:var(--brand-dark);border-radius:99px;margin-bottom:.65rem;padding:.25rem .52rem;font-size:.72rem;font-weight:800;display:inline-block}.faq-list{gap:.65rem;display:grid}.faq-list details{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.85rem 1rem}.faq-list summary{cursor:pointer;font-weight:750}.faq-list p{color:var(--muted);margin:.65rem 0 0}.breadcrumbs{color:var(--muted);padding-top:1.35rem;font-size:.83rem}.breadcrumbs ol{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{content:"/";color:#99a39f;margin-left:.35rem}.article-header{padding:1rem 0 1.5rem}.article-header .dek{color:var(--muted);max-width:780px;font-size:1.08rem}.article-meta{color:var(--muted);flex-wrap:wrap;gap:.8rem;font-size:.82rem;display:flex}.article-shell{grid-template-columns:minmax(0,1fr) 240px;align-items:start;gap:3rem;display:grid}.article-body{min-width:0}.article-body h2,.article-body h3{scroll-margin-top:6rem}.toc{border-left:2px solid var(--line);padding-left:1rem;font-size:.84rem;position:sticky;top:90px}.toc strong{margin-bottom:.45rem;display:block}.toc a{color:var(--muted);padding:.24rem 0;text-decoration:none;display:block}.toc a.active{color:var(--brand);font-weight:750}.callout{background:var(--accent);border-left:4px solid var(--brand);border-radius:0 10px 10px 0;margin:1.2rem 0;padding:1rem 1.1rem}.callout strong{margin-bottom:.25rem;display:block}.source-list{font-size:.88rem}.site-footer{color:#d9e4df;background:#14211e;margin-top:4rem;padding:3rem 0 1.5rem}.footer-grid{grid-template-columns:1.2fr repeat(3,1fr);gap:2rem;display:grid}.site-footer h2,.site-footer h3{color:#fff;margin:0 0 .65rem;font-size:.9rem}.site-footer a{color:#c9d6d1;padding:.16rem 0;font-size:.86rem;text-decoration:none;display:block}.site-footer p{color:#aebdb7;font-size:.86rem}.copyright{color:#93a7a0;border-top:1px solid #31423e;margin-top:2rem;padding-top:1rem;font-size:.78rem}.practice-app,.game-app{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:1.2rem}.control-row{flex-wrap:wrap;align-items:end;gap:.65rem;display:flex}.field{gap:.25rem;display:grid}.field label{font-size:.78rem;font-weight:800}.field select{background:#fff;border:1px solid #bdcbc5;border-radius:8px;padding:.55rem}.practice-prompt{background:#f5f7f6;border-radius:10px;min-height:92px;margin:1rem 0;padding:1rem;font-size:1.45rem;line-height:1.8}.practice-input{border:1px solid #bdcbc5;border-radius:10px;width:100%;padding:.8rem;font-size:1.05rem}.stats{grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1rem 0;display:grid}.stat{background:#f1f5f3;border-radius:9px;padding:.75rem}.stat b{font-size:1.25rem;display:block}.stat span{color:var(--muted);font-size:.73rem}.game-target{text-align:center;background:#f5f7f6;border-radius:12px;margin:1rem 0;padding:1.5rem}.game-target .kana{font-size:3rem;line-height:1.2}.game-target .romaji{color:var(--muted)}.jis-board{background:#e9eeeb;border:1px solid #c7d1cc;border-radius:14px;padding:1rem;overflow-x:auto}.jis-row{gap:.35rem;min-width:720px;margin-bottom:.35rem;display:flex}.jis-key{background:#fff;border:1px solid #b8c5bf;border-radius:6px;flex:1;min-width:46px;height:46px;padding:.25rem;font-size:.65rem;box-shadow:0 2px #acbab3}.jis-key b{font-size:.82rem;display:block}.jis-key.wide{flex:1.6}.jis-key.space{flex:5}.not-found{text-align:center;padding:7rem 1rem}.not-found .code{color:var(--brand);font-size:5rem;font-weight:900;line-height:1}.ad-slot{display:none}@media (width<=900px){.desktop-nav{display:none}.menu-button{display:block}.content-grid,.article-shell{grid-template-columns:1fr}.toc{border:1px solid var(--line);border-radius:10px;order:-1;padding:1rem;position:static}.cards{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.privacy-note{display:none}}@media (width<=600px){.container,.narrow{width:min(100% - 1.1rem,1160px)}.site-header{position:relative}.nav-wrap{min-height:60px}.page-intro{padding-top:1.5rem}.page-intro h1,.article-header h1{font-size:2rem}.tool-shell{border-radius:12px}.tool-topbar{display:block}.mode-tabs{flex-wrap:nowrap;padding-bottom:.35rem;overflow-x:auto}.mode-tab{white-space:nowrap}.editor-wrap{padding:.7rem}.japanese-editor{min-height:155px;padding:.8rem;font-size:1.15rem}.tool-actions{padding:0 .7rem .7rem}.keyboard-panel{padding:.7rem}.key-group{grid-template-columns:repeat(5,1fr);gap:.3rem}.kana-key{min-width:0;min-height:44px}.cards{grid-template-columns:1fr}.content-section{padding:2.4rem 0}.stats{grid-template-columns:1fr 1fr}.footer-grid,.mobile-nav.is-open{grid-template-columns:1fr}.article-meta{gap:.2rem;display:grid}.prose table{font-size:.82rem;display:block;overflow-x:auto}.control-row{align-items:stretch}.field{flex:42%}.control-row .utility-btn{justify-content:center}.practice-prompt{font-size:1.2rem}.game-target .kana{font-size:2.4rem}}@media (width>=901px){.page-intro{padding:1.35rem 0 .7rem}.page-intro h1{margin:.1rem 0 .35rem;font-size:clamp(2rem,4vw,3rem)}.page-intro p{max-width:800px;font-size:.98rem;line-height:1.5}.tool-topbar{gap:.75rem;padding:.5rem .75rem}.mode-tabs{gap:.32rem}.mode-tab,.utility-btn{padding:.42rem .66rem;font-size:.83rem}.editor-wrap{padding:.58rem .75rem .3rem}.japanese-editor{border-radius:10px;min-height:125px;max-height:230px;padding:.7rem .85rem;font-size:1.12rem;line-height:1.6}.editor-meta{margin-top:.25rem;font-size:.78rem}.tool-actions{gap:.4rem;padding:0 .75rem .55rem}.keyboard-panel{padding:.55rem .75rem .68rem}.keyboard-heading{margin-bottom:.4rem}.keyboard-heading h2{font-size:.94rem}.key-groups{grid-template-columns:repeat(15,minmax(0,1fr));gap:.3rem;display:grid}.key-group{display:contents}.kana-key{border-radius:7px;min-width:0;min-height:36px;font-size:1rem}}@media (width>=601px) and (width<=900px){.page-intro{padding:1.2rem 0 .7rem}.page-intro p{line-height:1.5}.editor-wrap{padding:.65rem .75rem .35rem}.japanese-editor{min-height:135px;font-size:1.12rem;line-height:1.6}.tool-actions{padding:0 .75rem .65rem}.keyboard-panel{padding:.65rem .75rem}.key-groups{grid-template-columns:repeat(10,minmax(0,1fr));gap:.32rem;display:grid}.key-group{display:contents}.kana-key{min-width:0;min-height:40px}}@media (width<=600px){.tool-topbar{padding:.45rem .55rem}.mode-tabs{gap:.25rem}.mode-tab{padding:.38rem .55rem;font-size:.78rem}.editor-wrap{padding:.55rem .6rem .2rem}.japanese-editor{min-height:108px;max-height:130px;padding:.65rem .7rem;font-size:1rem;line-height:1.5}.editor-meta{margin-top:.2rem;font-size:.75rem}.tool-actions{gap:.35rem;padding:0 .6rem .55rem}.utility-btn{padding:.38rem .55rem;font-size:.78rem}.keyboard-panel{padding:.5rem .6rem .6rem}.keyboard-heading{margin-bottom:.35rem}.keyboard-heading h2{font-size:.88rem}.keyboard-heading .eyebrow{font-size:.68rem}.key-groups{grid-template-columns:repeat(8,minmax(0,1fr));gap:.22rem;display:grid}.key-group{display:contents}.kana-key{border-radius:6px;min-width:0;min-height:36px;padding:.1rem;font-size:.9rem}}@media (width>=901px) and (height<=850px){.page-intro{padding:.75rem 0 .45rem}.page-intro h1{font-size:2.35rem}.page-intro p{font-size:.92rem;line-height:1.4}.japanese-editor{min-height:100px}.kana-key{min-height:32px}.keyboard-panel{padding:.45rem .68rem .55rem}}@media (width>=901px){.tool-workspace{grid-template-columns:minmax(320px,.78fr) minmax(0,1.42fr);align-items:stretch;display:grid}.editor-pane{border-right:1px solid var(--line);background:#fff;flex-direction:column;min-width:0;display:flex}.editor-pane .editor-wrap{flex-direction:column;flex:1;min-height:0;padding:.72rem .75rem .3rem;display:flex}.editor-pane .japanese-editor{resize:none;height:100%;min-height:300px;max-height:none}.editor-pane .tool-actions{padding:0 .75rem .72rem}.tool-workspace .keyboard-panel{border-top:0;padding:.7rem .75rem .75rem}.tool-workspace .key-groups{grid-template-columns:repeat(12,minmax(0,1fr));gap:.32rem}.tool-workspace .kana-key{min-height:36px;font-size:1rem}}@media (width<=900px){.tool-workspace{display:block}.editor-pane{border-right:0}.tool-workspace .keyboard-panel{border-top:1px solid var(--line)}.editor-pane .japanese-editor{resize:vertical;height:auto}}@media (width>=901px) and (height<=850px){.editor-pane .japanese-editor{min-height:260px}.tool-workspace .kana-key{min-height:32px}}.romaji-wrap{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.6rem;margin-top:.5rem;display:grid}.space-key{color:var(--brand-dark);letter-spacing:.08em;background:#e8f1ed;font-weight:850;grid-column:span 10!important;min-height:38px!important;font-size:.82rem!important}.space-key:hover{background:#dcece5}@media (width>=601px) and (width<=900px){.space-key{grid-column:span 8!important}}@media (width<=600px){.space-key{grid-column:span 2!important}}.romaji-output{color:#31403c;background:#f4f7f5;border:1px solid #cdd8d3;border-radius:8px;outline:none;width:100%;min-width:0;height:40px;padding:.45rem .65rem;font-weight:650}.romaji-output:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b5b1f}.section-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;display:flex}.section-heading h2{margin:.15rem 0 0;font-size:clamp(1.6rem,3vw,2.15rem);line-height:1.15}.home-tools{padding-bottom:.2rem}.tools-hub-section{padding-top:.7rem}.tools-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.tool-card{border:1px solid var(--line);min-width:0;color:inherit;background:#fff;border-radius:14px;padding:1.2rem;text-decoration:none;position:relative;overflow:hidden;box-shadow:0 8px 26px #14332c0a}.tool-card:hover{box-shadow:var(--shadow);border-color:#8fb7ab}.tool-card h2,.tool-card h3{margin:.15rem 0 .4rem;font-size:1.08rem;line-height:1.3;position:relative}.tool-card p{color:var(--muted);margin:0;font-size:.9rem;position:relative}.tool-card-jp{color:#edf4f1;pointer-events:none;font-size:4.2rem;font-weight:900;line-height:1;position:absolute;top:.25rem;right:.7rem}.tool-card .chip{position:relative}.card-link{color:var(--brand);margin-top:.85rem;font-size:.84rem;font-weight:800;display:block}.compact-tools{grid-template-columns:repeat(5,minmax(0,1fr))}.compact-tools .tool-card{padding:1rem}.compact-tools .tool-card-jp{font-size:3.3rem}.compact-tools h3{font-size:1rem}.mini-tool{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;overflow:hidden}.mini-tool-head{border-bottom:1px solid var(--line);background:#f4f7f5;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;display:flex}.mini-tool-head h2{margin:.12rem 0 0;font-size:1.3rem;line-height:1.2}.mini-tool-body{padding:1.2rem}.tool-form{flex-wrap:wrap;align-items:end;gap:.7rem;display:flex}.tool-form .field-wide{flex:430px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.field input,.field select{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #bdcbc5;border-radius:8px;outline:none;padding:.58rem .7rem}.field input:focus,.field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b5b1f}.field span{font-size:.78rem;font-weight:800}.form-hint{color:var(--muted);margin:.65rem 0 0;font-size:.84rem}.form-error{min-height:1.3em;color:var(--danger);margin:.55rem 0 0;font-size:.84rem;font-weight:700}.result-stack{gap:.6rem;margin-top:1rem;display:grid}.result-row{border:1px solid var(--line);background:#f5f8f6;border-radius:10px;grid-template-columns:minmax(170px,.7fr) minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.78rem .9rem;display:grid}.result-row>span{color:var(--muted);font-size:.79rem;font-weight:750}.result-row output{word-break:break-word;font-size:1.25rem;font-weight:750}.copy-small{color:var(--brand-dark);background:#fff;border:1px solid #cbd7d1;border-radius:7px;padding:.34rem .58rem;font-size:.75rem;font-weight:800}.copy-small:hover{border-color:var(--brand)}.generated-names{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:1rem;display:grid}.generated-name{border:1px solid var(--line);background:#f6f8f7;border-radius:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.75rem;display:grid}.generated-name div{min-width:0;display:grid}.generated-name strong{font-size:1.25rem}.generated-name span,.generated-name small{color:var(--muted)}.generated-name b{font-size:.9rem}.generated-name small{font-size:.75rem}.address-actions{margin-top:1rem}.output-box{border:1px solid var(--line);border-radius:10px;margin-top:1rem;overflow:hidden}.output-box-head{background:#eef4f1;justify-content:space-between;align-items:center;padding:.55rem .75rem;font-size:.78rem;font-weight:800;display:flex}.address-output{white-space:pre-wrap;min-height:145px;padding:1rem;font-size:1rem;line-height:1.75;display:block}.hanko-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:center;gap:2rem;display:grid}.compact-fields{margin-top:.8rem}.hanko-preview{background:#f3f0e8;border-radius:14px;place-items:center;padding:1.2rem;display:grid}.hanko-preview canvas{width:min(100%,300px);height:auto;display:block;box-shadow:0 8px 26px #14332c1a}.tool-warning{color:#5e4a23;background:#fff8e9;border-top:1px solid #ead9b5;padding:.85rem 1.2rem;font-size:.84rem}.preset-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.38rem;margin-top:.65rem;font-size:.8rem;display:flex}.preset-row button{color:#34413e;background:#fff;border:1px solid #d1dbd6;border-radius:7px;padding:.35rem .55rem;font-size:.78rem}.preset-row button:hover{border-color:var(--brand);color:var(--brand-dark)}.hanko-builder{grid-template-columns:minmax(0,1fr) minmax(390px,.92fr);gap:0;display:grid}.hanko-controls{border-right:1px solid var(--line);padding:1.35rem}.hanko-tabs{background:#f4f6f5;border-radius:11px;grid-template-columns:1fr 1fr;gap:.35rem;margin-bottom:1.25rem;padding:.35rem;display:grid}.hanko-tab{color:#34413e;background:0 0;border:0;border-radius:8px;min-height:46px;font-size:.84rem;font-weight:750}.hanko-tab.is-active{color:var(--ink);background:#fff;box-shadow:0 2px 9px #14332c17}.full-katakana{background:#f5f7f6;border-radius:8px;margin-top:.75rem;padding:.55rem .7rem;font-size:.84rem}.full-katakana strong{margin-left:.25rem;font-size:1rem}.hanko-control-section{border:0;border-top:1px solid var(--line);margin:1.2rem 0 0;padding:1rem 0 0}.hanko-control-section legend{text-transform:uppercase;letter-spacing:.07em;margin:0 0 .55rem;padding:0;font-size:.75rem;font-weight:850}.hanko-control-section .field small{color:var(--muted);margin-top:-.2rem;font-size:.75rem}.hanko-control-section .field input{text-align:center;margin-top:.25rem;font-size:1.35rem}.character-count{color:var(--muted);margin:.35rem 0 0;font-size:.75rem}.hanko-choice-row{flex-wrap:wrap;gap:.45rem;display:flex}.hanko-choice-row .choice-btn{align-items:center;gap:.4rem;display:inline-flex}.choice-btn.is-selected{background:var(--brand);border-color:var(--brand);color:#fff}.color-dot{background:#176bcb;border:1px solid #0000002e;border-radius:50%;width:13px;height:13px}.color-dot.red{background:#c8102e}.color-dot.black{background:#171b1a}.custom-color{cursor:pointer;align-items:center;gap:.4rem;display:inline-flex;position:relative}.custom-color input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.hanko-preview-card{border:1px solid var(--line);background:#fff;border-radius:16px;align-self:start;margin:1.35rem;padding:1.2rem;box-shadow:0 12px 30px #14332c12}.hanko-canvas-wrap{aspect-ratio:1;background-color:#fff;background-image:linear-gradient(45deg,#edf0ef 25%,#0000 25%),linear-gradient(-45deg,#edf0ef 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#edf0ef 75%),linear-gradient(-45deg,#0000 75%,#edf0ef 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border:1px solid #d6dedb;border-radius:13px;place-items:center;padding:1.1rem;display:grid}.hanko-canvas-wrap svg{width:100%;height:100%;display:block;overflow:visible}.hanko-canvas-wrap [hidden]{display:none}.hanko-download-row{grid-template-columns:1.1fr 1fr .8fr;gap:.5rem;margin-top:1rem;display:grid}.hanko-download-row .utility-btn{justify-content:center;min-height:48px}.hanko-status{text-align:center;min-height:1.2em;color:var(--brand);margin:.45rem 0 0;font-size:.78rem;font-weight:750}@media (width<=600px){.romaji-wrap{gap:.4rem;margin-top:.35rem}.romaji-wrap .eyebrow{letter-spacing:.08em;font-size:.67rem}.romaji-output{height:34px;padding:.3rem .5rem;font-size:.85rem}}@media (width<=1050px){.compact-tools{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hanko-layout,.hanko-builder{grid-template-columns:1fr}.hanko-preview{order:-1}.hanko-controls{border-right:0;border-bottom:1px solid var(--line)}.generated-names{grid-template-columns:1fr}}@media (width<=600px){.section-heading{align-items:start}.section-heading a{white-space:nowrap;font-size:.82rem}.tools-grid,.compact-tools{grid-template-columns:1fr}.mini-tool{border-radius:12px}.mini-tool-head{padding:.8rem}.mini-tool-head .privacy-note{display:none}.mini-tool-head h2{font-size:1.1rem}.mini-tool-body{padding:.8rem}.tool-form{align-items:stretch}.tool-form .utility-btn{justify-content:center}.field-grid{grid-template-columns:1fr}.result-row{grid-template-columns:1fr auto;gap:.25rem .6rem}.result-row>span{grid-column:1/-1}.result-row output{font-size:1.08rem}.generated-name{grid-template-columns:minmax(0,1fr) auto}.generated-name>div:nth-child(2){grid-column:1/2}.generated-name .copy-small{grid-area:1/2/3}.hanko-preview{padding:.75rem}.hanko-controls{padding:.8rem}.hanko-tabs{grid-template-columns:1fr}.hanko-preview-card{margin:.8rem;padding:.75rem}.hanko-canvas-wrap{padding:.7rem}.hanko-download-row{grid-template-columns:1fr 1fr}.hanko-download-row .primary{grid-column:1/-1}.tool-warning{padding:.75rem .8rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.jlpt-hub-hero{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f1f8f5 0%,#fbfcfa 55%,#f6f1e8 100%);padding-bottom:1.8rem}.hero-actions{flex-wrap:wrap;gap:.65rem;margin-top:1.2rem;display:flex}.hero-actions .utility-btn{justify-content:center;text-decoration:none}.jlpt-tools-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.jlpt-level-overview{grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;display:grid}.jlpt-level-overview article{border:1px solid var(--line);background:#fff;border-radius:13px;min-width:0;padding:1rem}.jlpt-level-overview article>strong{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:44px;height:44px;font-size:1rem;display:grid}.jlpt-level-overview h3{margin:.65rem 0 .25rem;font-size:1rem}.jlpt-level-overview p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.5}.official-note{max-width:850px;color:var(--muted);margin:1.2rem 0 0;font-size:.85rem}.jlpt-intro{padding-bottom:.75rem}.jlpt-tool-section{padding-top:.55rem}.jlpt-app{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;max-width:1000px;margin-inline:auto;padding:1.35rem}.jlpt-app-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:1rem;padding-bottom:1rem;display:flex}.jlpt-app-head h2{margin:.05rem 0 .25rem;font-size:clamp(1.25rem,3vw,1.65rem);line-height:1.2}.jlpt-app-head p{color:var(--muted);max-width:680px;margin:0}.jlpt-primary{min-height:46px;padding-inline:1.2rem}.jlpt-start-panel{text-align:center;padding:1.5rem 0 .35rem}.jlpt-feature-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem;display:grid}.jlpt-feature-grid div{background:#f3f7f5;border-radius:10px;padding:.8rem;display:grid}.jlpt-feature-grid strong{font-size:1.05rem}.jlpt-feature-grid span{color:var(--muted);font-size:.78rem}.jlpt-progress-ring{background:var(--accent);height:72px;color:var(--brand-dark);border-radius:50%;flex:0 0 72px;justify-content:center;align-items:baseline;display:flex}.jlpt-progress-ring strong{font-size:1.4rem}.jlpt-progress-ring span{font-size:.72rem}.quiz-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.65rem;margin:1rem 0 .65rem;font-size:.82rem;display:flex}.quiz-meta .chip{margin:0}.quiz-meta span:last-child{margin-left:auto}.quiz-prompt{margin:.7rem 0 1rem;font-size:clamp(1.25rem,3vw,1.65rem);line-height:1.65}.quiz-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.quiz-option{min-height:52px;color:var(--ink);text-align:left;background:#fff;border:1px solid #c8d4cf;border-radius:10px;padding:.65rem .8rem;font-weight:700}.quiz-option:hover:not(:disabled){border-color:var(--brand);background:var(--accent)}.quiz-option.is-correct{color:#0f5b47;background:#e4f5ee;border-color:#248165}.quiz-option.is-wrong{color:#842e2e;background:#fff0f0;border-color:#b64d4d}.quiz-feedback{min-height:2.2rem;color:var(--muted);border-radius:8px;margin:.85rem 0;padding:.65rem .75rem}.quiz-feedback:empty{padding:0}.quiz-feedback.is-correct{color:#145e49;background:#eaf7f1}.quiz-feedback.is-wrong{color:#842e2e;background:#fff2f2}.quiz-result{text-align:center;padding:1.5rem 0 .4rem}.quiz-result>strong{color:var(--brand);font-size:clamp(2.4rem,7vw,4.5rem);line-height:1;display:block}.quiz-result h3{margin:.65rem 0 .25rem}.quiz-result p{max-width:650px;color:var(--muted);margin:.25rem auto 1rem}.quiz-result-actions{flex-wrap:wrap;justify-content:center;gap:.55rem;display:flex}.quiz-result-actions a{text-decoration:none}.level-score-grid{grid-template-columns:repeat(5,1fr);gap:.5rem;max-width:720px;margin:1rem auto;display:grid}.level-score-grid div{background:#f3f7f5;border-radius:9px;padding:.65rem;display:grid}.level-score-grid span{color:var(--muted);font-size:.73rem}.tool-disclaimer{border-top:1px solid var(--line);color:var(--muted);margin:1.25rem 0 0;padding-top:.8rem;font-size:.78rem}.countdown-grid{grid-template-columns:repeat(4,1fr);gap:.65rem;margin:1.3rem 0;display:grid}.countdown-grid div{text-align:center;background:var(--ink);color:#fff;border-radius:12px;padding:1rem .5rem}.countdown-grid strong{font-variant-numeric:tabular-nums;font-size:clamp(1.8rem,5vw,3.2rem);line-height:1;display:block}.countdown-grid span{text-transform:uppercase;letter-spacing:.1em;color:#b8c8c2;font-size:.68rem}.countdown-message{text-align:center;color:var(--muted);font-size:.86rem}.jlpt-note{border-left:4px solid var(--brand);background:var(--accent);border-radius:0 10px 10px 0;margin-top:1.1rem;padding:.75rem 1rem}.jlpt-note p{color:#34413e;margin:.2rem 0 0;font-size:.85rem}.jlpt-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:.7rem;margin:1.2rem 0;display:grid}.planner-result{margin-top:1rem}.planner-summary,.planner-targets{grid-template-columns:repeat(3,1fr);gap:.65rem;display:grid}.planner-summary div,.planner-targets div{text-align:center;border:1px solid var(--line);background:#f2f6f4;border-radius:10px;padding:.8rem;display:grid}.planner-summary strong,.planner-targets strong{color:var(--brand-dark);font-size:1.55rem}.planner-summary span,.planner-targets span,.planner-targets small{color:var(--muted);font-size:.76rem}.planner-targets{grid-template-columns:repeat(4,1fr)}.planner-result h3{margin:1.1rem 0 .55rem;font-size:1rem}.study-split{flex-wrap:wrap;gap:.45rem;display:flex}.study-split span{background:var(--accent);border-radius:99px;padding:.35rem .65rem;font-size:.78rem;font-weight:750}.planner-result>p{color:var(--muted);font-size:.86rem}.quiz-settings{padding-top:1rem}.quiz-settings fieldset{border:0;margin:0 0 1rem;padding:0}.quiz-settings legend{margin-bottom:.4rem;font-size:.8rem;font-weight:800}.segmented{flex-wrap:wrap;gap:.4rem;display:flex}.segmented button{background:#fff;border:1px solid #c9d5cf;border-radius:8px;padding:.55rem .85rem;font-weight:750}.segmented button.is-active,.level-selector button.is-active,.difficulty-grid button.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.kana-question{border:1px solid var(--line);background:#f3f7f5;border-radius:14px;place-items:center;min-height:180px;margin:1rem 0;font-size:5rem;font-weight:700;display:grid}.kana-answer{align-items:end;gap:.6rem;max-width:560px;margin:auto;display:flex}.kana-answer .field{flex:1}.level-selector{grid-template-columns:repeat(5,1fr);gap:.5rem;margin:1.2rem 0;display:grid}.level-selector button,.difficulty-grid button{color:var(--ink);background:#fff;border:1px solid #c8d4cf;border-radius:10px;gap:.12rem;padding:.8rem;font-weight:850;display:grid}.level-selector small,.difficulty-grid span{color:var(--muted);font-size:.7rem;font-weight:600}.level-selector button.is-active small,.difficulty-grid button.is-active span{color:#dceee8}.difficulty-grid{grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1.2rem 0;display:grid}.difficulty-grid button{text-align:left}.verb-form{grid-template-columns:minmax(0,1.5fr) minmax(220px,.7fr) auto}.conjugation-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:1rem;display:grid}.conjugation-grid div{border:1px solid var(--line);background:#f4f7f5;border-radius:9px;padding:.7rem;display:grid}.conjugation-grid span{color:var(--muted);font-size:.72rem;font-weight:750}.conjugation-grid strong{font-size:1.15rem}.vocab-filters{grid-template-columns:repeat(3,1fr)}.vocab-summary{color:var(--muted);justify-content:space-between;align-items:center;margin:.5rem 0;font-size:.82rem;display:flex}.vocab-grid{grid-template-columns:repeat(3,1fr);gap:.55rem;display:grid}.vocab-card{border:1px solid var(--line);background:#f5f8f6;border-radius:10px;grid-template-columns:auto 1fr;align-items:baseline;gap:.15rem .6rem;padding:.75rem;display:grid}.vocab-card strong{font-size:1.3rem}.vocab-card span{color:var(--brand-dark);font-size:.83rem}.vocab-card p{color:var(--muted);grid-column:1/-1;margin:.1rem 0 0;font-size:.78rem}.empty-state{text-align:center;color:var(--muted);padding:2rem}.jlpt-related{padding-bottom:.8rem}@media (width<=1000px){.jlpt-tools-grid,.jlpt-level-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.jlpt-form{grid-template-columns:repeat(2,minmax(0,1fr))}.jlpt-form .jlpt-primary{grid-column:1/-1;justify-content:center}.conjugation-grid,.vocab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.jlpt-tools-grid,.jlpt-level-overview{grid-template-columns:1fr}.jlpt-app{border-radius:12px;padding:.85rem}.jlpt-app-head{display:block}.jlpt-app-head>.utility-btn,.jlpt-progress-ring{margin-top:.75rem}.jlpt-feature-grid,.planner-summary,.planner-targets,.level-score-grid{grid-template-columns:repeat(2,1fr)}.quiz-options,.level-selector,.difficulty-grid,.jlpt-form,.verb-form,.vocab-filters,.conjugation-grid,.vocab-grid{grid-template-columns:1fr}.jlpt-form .jlpt-primary{grid-column:auto}.countdown-grid{gap:.3rem}.countdown-grid div{padding:.75rem .2rem}.countdown-grid strong{font-size:1.6rem}.quiz-meta span:last-child{margin-left:0}.kana-question{min-height:140px;font-size:4rem}.kana-answer{display:grid}.segmented{grid-template-columns:repeat(3,1fr);display:grid}.segmented button{padding:.5rem .25rem;font-size:.78rem}.jlpt-related .cards{grid-template-columns:1fr}}.tools-hub-hero{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#eef8f4 0%,#fbfcfa 56%,#f5efe4 100%);padding-bottom:2rem}.hub-jump-links{flex-wrap:wrap;gap:.5rem;margin-top:1.2rem;display:flex}.hub-jump-links a{background:#fff;border:1px solid #c8d7d1;border-radius:99px;padding:.45rem .75rem;font-size:.82rem;font-weight:750;text-decoration:none;display:inline-flex}.tool-page-intro{padding-bottom:.7rem}.standalone-tool-section{padding-top:.55rem}.converter-app,.reference-app,.kana-chart-app{border:1px solid var(--line);max-width:1040px;box-shadow:var(--shadow);background:#fff;border-radius:18px;margin-inline:auto;padding:1.25rem}.converter-grid{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.85rem;display:grid}.converter-pane{min-width:0}.converter-label{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.4rem;display:flex}.converter-label label{font-size:.82rem;font-weight:850}.text-action{color:var(--brand);background:0 0;border:0;padding:.25rem;font-size:.78rem;font-weight:800}.converter-pane textarea{resize:vertical;width:100%;min-height:210px;color:var(--ink);border:1px solid #bdcbc5;border-radius:12px;outline:none;padding:1rem;font-size:1.2rem;line-height:1.75;display:block}.converter-pane textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px #176b5b1f}.converter-pane textarea[readonly]{background:#f7f9f8}.converter-arrow{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:40px;height:40px;font-weight:900;display:grid}.converter-status{min-height:1.3em;color:var(--brand);margin:.4rem 0 0;font-size:.78rem;font-weight:750}.kanji-search-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.65rem;display:grid}.reading-preview{background:var(--accent);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;padding:.75rem .9rem;display:flex}.reading-preview span{color:var(--muted);font-size:.8rem;font-weight:800}.reading-preview strong{font-size:1.4rem}.kanji-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.kanji-candidate{border:1px solid var(--line);border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.8rem;display:grid}.kanji-candidate>strong{font-size:2rem}.kanji-candidate span{color:var(--brand-dark);font-size:.85rem}.kanji-candidate p{color:var(--muted);margin:0;font-size:.78rem}.kanji-candidate-grid .empty-state{grid-column:1/-1}.chart-toolbar,.reference-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:.7rem;margin-bottom:1rem;display:flex}.chart-toolbar p,.reference-count{color:var(--muted);margin:0;font-size:.85rem}.chart-section{margin-top:1.5rem}.chart-section:first-of-type{margin-top:.5rem}.chart-section h2{margin:0;font-size:1.2rem}.chart-section>p{color:var(--muted);margin:.2rem 0 .65rem;font-size:.85rem}.kana-table-wrap{border:1px solid var(--line);border-radius:12px;max-width:100%;overflow-x:auto}.kana-chart-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:560px}.kana-chart-table th,.kana-chart-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:.32rem}.kana-chart-table tr:last-child>*{border-bottom:0}.kana-chart-table tr>:last-child{border-right:0}.kana-chart-table th{background:#eef4f1;font-size:.75rem}.kana-chart-table button{width:100%;min-height:62px;color:var(--ink);background:#fff;border:0;border-radius:7px;place-items:center;display:grid}.kana-chart-table button:hover{background:var(--accent)}.kana-chart-table button strong{font-size:1.35rem;line-height:1.1}.kana-chart-table button span{color:var(--muted);font-size:.68rem}.empty-kana{color:#a7b1ad}.chart-copy-status{text-align:center;min-height:1.35rem;color:var(--brand);margin:.6rem 0 0;font-size:.8rem;font-weight:800;position:sticky;bottom:.75rem}.reference-toolbar{justify-content:flex-start}.reference-toolbar .field:first-child{flex:360px}.reference-toolbar .field select{min-width:160px}.reference-count{margin:.2rem 0 .8rem}.kanji-reference-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.55rem;display:grid}.kanji-reference-card{border:1px solid var(--line);text-align:left;min-width:0;color:var(--ink);background:#fff;border-radius:10px;padding:.65rem;display:grid}.kanji-reference-card:hover{border-color:var(--brand);background:var(--accent)}.kanji-reference-card strong{font-size:2rem;line-height:1.2}.kanji-reference-card span{white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:750;overflow:hidden}.kanji-reference-card small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.66rem;overflow:hidden}.surname-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.surname-card{border:1px solid var(--line);border-radius:11px;grid-template-columns:1fr auto;gap:.25rem .7rem;padding:.8rem;display:grid;position:relative}.surname-card>div{align-items:baseline;gap:.55rem;display:flex}.surname-card>div strong{font-size:1.5rem}.surname-card>div span{color:var(--brand-dark);font-size:.78rem}.surname-card h2{grid-column:1;margin:0;font-size:1rem}.surname-card p{color:var(--muted);grid-column:1;margin:0;font-size:.75rem}.surname-card .copy-small{grid-area:1/2/4;align-self:center}.kaomoji-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;display:grid}.kaomoji-card{border:1px solid var(--line);min-width:0;min-height:82px;color:var(--ink);background:#fff;border-radius:10px;place-items:center;gap:.25rem;padding:.65rem;display:grid}.kaomoji-card:hover{border-color:var(--brand);background:var(--accent)}.kaomoji-card span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:1.05rem;overflow:hidden}.kaomoji-card small{color:var(--muted);font-size:.65rem}.tool-related{padding-bottom:.8rem}@media (width<=900px){.kanji-reference-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.surname-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kaomoji-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=650px){.converter-app,.reference-app,.kana-chart-app{border-radius:12px;padding:.75rem}.converter-grid{grid-template-columns:1fr}.converter-arrow{width:34px;height:34px;margin-inline:auto;transform:rotate(90deg)}.converter-pane textarea{min-height:145px;padding:.75rem;font-size:1.05rem}.kanji-search-form{grid-template-columns:1fr}.kanji-search-form .utility-btn{justify-content:center}.kanji-candidate-grid{grid-template-columns:1fr}.kana-table-wrap{margin-inline:-.1rem}.kana-chart-table{min-width:500px}.kanji-reference-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.kanji-reference-card{padding:.5rem}.kanji-reference-card strong{font-size:1.65rem}.surname-grid{grid-template-columns:1fr}.kaomoji-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.kaomoji-card{min-height:72px;padding:.45rem}.kaomoji-card span{font-size:.9rem}.reference-toolbar .utility-btn{flex:1;justify-content:center}.tool-related .cards{grid-template-columns:1fr}}@media print{.site-header,.site-footer,.breadcrumbs,.page-intro,.tool-related,.chart-toolbar button,.reference-toolbar,.chart-copy-status{display:none!important}.content-section{padding:0}.kana-chart-app,.reference-app{box-shadow:none;border:0;max-width:none;padding:0}.kana-table-wrap{overflow:visible}.kana-chart-table{min-width:0}.kanji-reference-grid{grid-template-columns:repeat(8,1fr)}body{background:#fff}}.product-banner{color:#fff4dc;background:#123f37;border-radius:22px;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:center;gap:2rem;min-height:320px;margin:2rem 0 .6rem;padding:2rem 2.25rem;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 48px #0c30282e}.product-banner:before{content:"";background:#e8f4ef14;border-radius:50%;width:280px;height:280px;position:absolute;inset:auto auto -110px -70px}.product-banner-copy{z-index:2;position:relative}.product-banner-kicker{color:#f6b75f;letter-spacing:.13em;text-transform:uppercase;margin-bottom:.55rem;font-size:.76rem;font-weight:850;display:inline-block}.product-banner h2{letter-spacing:-.045em;max-width:650px;margin:0;font-size:clamp(2rem,4.5vw,3.55rem);line-height:1.02}.product-banner p{color:#d9e8e2;max-width:640px;margin:.85rem 0 1.15rem;font-size:1rem}.product-banner-action{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.product-banner-button{color:#17211f;background:#ef8f36;border-radius:10px;justify-content:center;align-items:center;min-height:48px;padding:.7rem 1rem;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:0 8px 24px #00000029}.product-banner-button:hover{background:#f7a554;text-decoration:none}.product-banner-action span{color:#bed1ca;font-size:.8rem;font-weight:750}.product-banner-art{min-height:270px;position:relative}.product-banner-art img{background:#fff;border:4px solid #ffffffe6;border-radius:7px;width:168px;position:absolute;box-shadow:0 16px 30px #00000047}.product-banner-art img:first-child{top:25px;left:2%;transform:rotate(-8deg)}.product-banner-art img:nth-child(2){z-index:2;top:0;left:31%;transform:rotate(1deg)}.product-banner-art img:nth-child(3){top:30px;right:0;transform:rotate(9deg)}.keyboard-product-promo{display:none}.home-product-banner-mobile{display:block}@media (width>=901px){.keyboard-product-promo{margin-top:.75rem;display:block}.home-product-banner-mobile{display:none}.product-banner--compact{border-radius:12px;grid-template-columns:minmax(0,1fr) 190px;gap:1rem;min-height:132px;margin:0;padding:.9rem 1.05rem;box-shadow:0 10px 26px #0c302824}.product-banner--compact:before{width:180px;height:180px;inset:auto auto -105px -50px}.product-banner--compact .product-banner-kicker{margin-bottom:.2rem;font-size:.6rem}.product-banner--compact h2{letter-spacing:-.025em;font-size:1.35rem;line-height:1.08}.product-banner--compact p{margin:.3rem 0 .55rem;font-size:.72rem;line-height:1.4}.product-banner--compact .product-banner-action{gap:.55rem}.product-banner--compact .product-banner-button{border-radius:8px;min-height:36px;padding:.4rem .7rem;font-size:.74rem}.product-banner--compact .product-banner-action span{font-size:.65rem}.product-banner--compact .product-banner-art{min-height:108px}.product-banner--compact .product-banner-art img{border-width:2px;border-radius:4px;width:67px}.product-banner--compact .product-banner-art img:first-child{top:17px;left:0}.product-banner--compact .product-banner-art img:nth-child(2){top:0;left:61px}.product-banner--compact .product-banner-art img:nth-child(3){top:18px;right:0}}.product-page-hero{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#eef6f2 0%,#fbfcfa 56%,#f4ead9 100%);padding:2.4rem 0 3.2rem}.product-hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:center;gap:3rem;display:grid}.product-gallery{grid-template-rows:1fr 1fr;grid-template-columns:1.25fr .75fr;gap:.8rem;max-width:650px;display:grid}.product-gallery img{object-fit:cover;object-position:top;background:#fff;border:1px solid #cad6d0;border-radius:10px;width:100%;height:100%;display:block;box-shadow:0 14px 35px #123f371f}.product-gallery .product-gallery-main{aspect-ratio:708/1000;grid-row:1/3}.product-gallery>img:not(.product-gallery-main){aspect-ratio:708/480;object-fit:cover}.product-purchase-panel h1{letter-spacing:-.055em;margin:.2rem 0 .65rem;font-size:clamp(2.25rem,5vw,4.15rem);line-height:1.02}.product-lead{color:#44524e;margin:0;font-size:1.08rem}.product-price{align-items:baseline;gap:.65rem;margin:1.15rem 0;display:flex}.product-price strong{color:var(--brand-dark);font-size:2.25rem;line-height:1}.product-price span{color:var(--muted);font-size:.82rem;font-weight:750}.product-checklist{gap:.4rem;margin:0 0 1.15rem;padding:0;list-style:none;display:grid}.product-checklist li{color:#34413e;padding-left:1.45rem;position:relative}.product-checklist li:before{content:"✓";color:var(--brand);font-weight:900;position:absolute;left:0}.product-buy-button{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:52px;padding:.75rem 1rem;font-weight:850;display:flex;box-shadow:0 9px 24px #0f51452e}.product-buy-button:hover:not(:disabled){background:var(--brand-dark)}.product-buy-button:disabled{cursor:wait;box-shadow:none;background:#8a9692}.checkout-note{color:var(--muted);margin:.5rem 0 0;font-size:.76rem}.product-payment-note{color:var(--muted);border-top:1px solid #cedbd5;margin:.9rem 0 0;padding-top:.8rem;font-size:.78rem}.product-copy>h2:first-child{margin-top:0}.product-feature-grid{grid-template-columns:repeat(2,1fr);gap:.7rem;margin:1rem 0 2.1rem;display:grid}.product-feature-grid article{border:1px solid var(--line);background:#fff;border-radius:11px;gap:.15rem;padding:1rem;display:grid}.product-feature-grid strong{color:var(--brand-dark);font-size:1.15rem}.product-feature-grid span{color:var(--muted);font-size:.84rem}.product-legal-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:1rem;padding-top:.8rem;display:flex}@media (width<=900px){.product-banner{grid-template-columns:1fr;padding:1.7rem}.product-banner-art{width:min(520px,100%);min-height:230px;margin-inline:auto}.product-banner-art img{width:145px}.product-hero-grid{grid-template-columns:1fr;gap:2rem}.product-gallery{margin-inline:auto}.product-purchase-panel{max-width:700px;margin-inline:auto}}@media (width<=600px){.product-banner{border-radius:14px;margin:1.1rem 0 .2rem;padding:1.25rem}.product-banner h2{font-size:2rem}.product-banner p{font-size:.9rem}.product-banner-art{min-height:165px}.product-banner-art img{border-width:3px;width:105px}.product-banner-art img:first-child{left:6%}.product-banner-art img:nth-child(2){left:34%}.product-banner-art img:nth-child(3){right:5%}.product-banner-button{width:100%}.product-page-hero{padding:1.4rem 0 2.2rem}.product-hero-grid{gap:1.4rem}.product-gallery{gap:.4rem}.product-purchase-panel h1{font-size:2.25rem}.product-feature-grid{grid-template-columns:1fr}}.jlpt-product-hero{background:radial-gradient(circle at 11% 12%,#ef984324,#0000 26%),linear-gradient(135deg,#edf6f2 0%,#fbfcfa 58%,#f3eadc 100%);padding-top:2rem}.jlpt-product-hero .product-hero-grid{grid-template-columns:minmax(0,1fr) minmax(390px,.92fr);align-items:start}.jlpt-product-gallery{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:minmax(0,1.22fr) minmax(150px,.78fr);gap:.7rem;max-width:680px}.jlpt-product-gallery figure{background:#fff;border:1px solid #c7d5cf;border-radius:13px;min-width:0;margin:0;position:relative;overflow:hidden;box-shadow:0 16px 38px #123f3721}.jlpt-product-gallery .product-gallery-main{aspect-ratio:900/1165;grid-row:1/4}.jlpt-product-gallery figure:not(.product-gallery-main){aspect-ratio:1.42}.jlpt-product-gallery img,.jlpt-product-gallery .product-gallery-main img{aspect-ratio:auto;object-fit:cover;object-position:top;width:100%;height:100%;box-shadow:none;border:0;border-radius:0;display:block}.jlpt-product-gallery figcaption{color:#fff;letter-spacing:.02em;background:#0f3e34eb;border-radius:999px;padding:.28rem .55rem;font-size:.66rem;font-weight:800;position:absolute;bottom:.55rem;left:.55rem;box-shadow:0 3px 12px #00000026}.jlpt-purchase-panel{backdrop-filter:blur(8px);background:#ffffffe8;border:1px solid #ccdad4;border-radius:18px;padding:1.45rem;position:sticky;top:94px;box-shadow:0 18px 45px #123f371a}.jlpt-purchase-panel h1{font-size:clamp(2.4rem,4.8vw,4rem)}.sale-kicker{color:#7d4315;letter-spacing:.07em;text-transform:uppercase;background:#fdefdf;border-radius:999px;align-items:center;padding:.35rem .65rem;font-size:.72rem;font-weight:900;display:inline-flex}.sale-price-block{background:#fff9f1;border:1px solid #e7d4bd;border-radius:13px;justify-content:space-between;align-items:center;gap:1rem;margin:1.05rem 0 .1rem;padding:1rem;display:flex}.sale-price-block>div{align-items:baseline;gap:.55rem;display:flex}.sale-price-block del{color:#7c8582;font-size:1.15rem;font-weight:750}.sale-price-block strong{color:var(--brand-dark);font-size:2.65rem;line-height:1}.sale-price-block span{color:var(--muted);font-size:.75rem;font-weight:850}.sale-price-block mark{color:#17302a;background:#ef983f;border-radius:999px;padding:.32rem .55rem;font-size:.72rem;font-weight:900}.sale-note{color:var(--muted);margin:.25rem 0 1rem;font-size:.76rem}.product-checklist--strong{gap:.52rem}.product-checklist--strong li{padding-left:1.6rem}.product-checklist--strong li:before{background:var(--accent);border-radius:50%;place-items:center;width:18px;height:18px;font-size:.72rem;display:grid;top:.17rem}.purchase-assurances{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin:.8rem 0 0;display:grid}.purchase-assurances span{border:1px solid var(--line);text-align:center;color:#47544f;background:#f7f9f8;border-radius:8px;place-items:center;min-height:42px;padding:.35rem;font-size:.67rem;font-weight:800;display:grid}.product-proof-strip{color:#fff;background:#123f37}.product-proof-strip .container{background:#ffffff24;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;display:grid}.product-proof-strip .container>div{text-align:center;background:#123f37;align-content:center;min-height:112px;padding:1rem;display:grid}.product-proof-strip strong{color:#f3a14c;font-size:1.9rem;line-height:1}.product-proof-strip span{color:#d4e2dd;margin-top:.35rem;font-size:.76rem;font-weight:700}.product-section-heading{margin-bottom:1.35rem}.product-value-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.product-value-grid article{border:1px solid var(--line);background:#fff;border-radius:14px;padding:1.2rem;position:relative;overflow:hidden}.product-value-grid article>span{color:#8a4a16;background:#fdefdf;border-radius:9px;place-items:center;width:34px;height:34px;font-size:.75rem;font-weight:900;display:inline-grid}.product-value-grid h3{margin:1rem 0 .45rem;font-size:1.05rem}.product-value-grid p{color:var(--muted);margin:0;font-size:.86rem}.roadmap-grid{grid-template-columns:minmax(270px,.74fr) minmax(0,1.26fr);align-items:start;gap:3rem;display:grid}.roadmap-intro h2{letter-spacing:-.04em;margin:.2rem 0 .75rem;font-size:clamp(1.8rem,3.5vw,2.8rem);line-height:1.08}.roadmap-intro p{color:var(--muted)}.roadmap-list{counter-reset:roadmap;gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.roadmap-list li{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:115px minmax(0,1fr);align-items:center;gap:1rem;padding:1rem;display:grid}.roadmap-list strong{color:var(--brand-dark);font-size:.9rem}.roadmap-list span{color:#44524e;font-size:.87rem}.product-audience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.audience-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:1.45rem}.audience-card--yes{background:#f1f7f4;border-color:#c4d9d0}.audience-card h2{margin:.35rem 0 .8rem;font-size:1.55rem;line-height:1.2}.audience-card ul{color:#34413e;gap:.5rem;margin:0;padding-left:1.2rem;display:grid}.product-reviews{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;padding:1.5rem}.reviews-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:2rem;padding-bottom:1rem;display:flex}.reviews-heading h2{margin:.2rem 0 0;font-size:2rem}.reviews-summary{text-align:right;display:grid}.review-stars{color:#ef983f;letter-spacing:.08em;font-size:1.35rem}.reviews-summary strong{font-size:.88rem}.reviews-summary small{color:var(--muted)}.reviews-layout{grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);gap:2rem;padding-top:1.4rem;display:grid}.reviews-empty{background:#f2f7f5;border-radius:13px;align-self:start;padding:1.2rem}.reviews-empty>strong{font-size:1.1rem}.reviews-empty p{color:#44524e;font-size:.88rem}.review-verification-note{border-top:1px solid #d5e1dc;padding-top:.75rem}.review-form{gap:.85rem;display:grid}.review-form>label,.review-form-grid label{gap:.28rem;display:grid}.review-form label>span,.rating-fieldset legend{font-size:.78rem;font-weight:850}.review-form label small{color:var(--muted);font-size:.68rem;font-weight:600}.review-form input:not([type=radio]):not([type=checkbox]),.review-form textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #bdcbc5;border-radius:9px;outline:none;padding:.68rem .75rem}.review-form input:focus,.review-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b5b1f}.review-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.rating-fieldset{border:0;margin:0;padding:0}.rating-stars-input{flex-direction:row-reverse;justify-content:flex-end;width:max-content;display:flex}.rating-stars-input input{opacity:0;position:absolute}.rating-stars-input label{color:#c8d0cd;cursor:pointer;padding:.05rem .12rem;font-size:2rem;line-height:1}.rating-stars-input input:checked~label,.rating-stars-input label:hover,.rating-stars-input label:hover~label{color:#ef983f}.rating-stars-input input:focus-visible+label{outline-offset:2px;border-radius:4px;outline:3px solid #176b5b40}.review-consent{align-items:start;grid-template-columns:auto minmax(0,1fr)!important;gap:.55rem!important}.review-consent input{margin-top:.28rem}.review-consent span{font-weight:600!important}.review-honeypot{position:absolute;left:-9999px}.review-submit{max-width:330px}.review-status{color:var(--muted);margin:0;font-size:.75rem}.product-final-cta{color:#fff;background:#123f37;padding:2rem 0}.product-final-cta>.container{justify-content:space-between;align-items:center;gap:2rem;display:flex}.product-final-cta h2{margin:.35rem 0 .2rem;font-size:clamp(1.8rem,3.2vw,2.7rem);line-height:1.1}.product-final-cta p{color:#d3e2dc;margin:0}.final-cta-purchase{gap:.55rem;min-width:310px;display:grid}.final-cta-purchase>div{justify-content:flex-end;align-items:baseline;gap:.7rem;display:flex}.final-cta-purchase del{color:#b5c7c0;font-size:1.1rem}.final-cta-purchase strong{color:#f3a14c;font-size:2.35rem}.final-cta-purchase .product-buy-button{color:#17211f;background:#ef983f}.final-cta-purchase .product-buy-button:hover:not(:disabled){background:#f5ac64}.product-legal-section{padding-bottom:.5rem}.jlpt-workbook-promo{background:#fff;border:1px solid #cbdad4;border-radius:16px;grid-template-columns:170px minmax(0,1fr) auto;align-items:center;gap:1.4rem;padding:1rem;display:grid;box-shadow:0 12px 32px #123f3714}.jlpt-workbook-promo img{border-radius:9px;width:170px;display:block}.jlpt-workbook-promo h2{margin:.15rem 0 .35rem;font-size:1.55rem;line-height:1.15}.jlpt-workbook-promo p{color:var(--muted);margin:0;font-size:.88rem}.jlpt-workbook-promo .product-banner-button{white-space:nowrap}.jlpt-tool-product-promo{padding-top:0}@media (width<=1000px){.product-value-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jlpt-workbook-promo{grid-template-columns:140px minmax(0,1fr)}.jlpt-workbook-promo img{grid-row:1/3;width:140px}.jlpt-workbook-promo .product-banner-button{grid-column:2;justify-self:start}}@media (width<=900px){.jlpt-product-hero .product-hero-grid{grid-template-columns:1fr}.jlpt-purchase-panel{position:static}.product-proof-strip .container{grid-template-columns:repeat(5,minmax(105px,1fr));overflow-x:auto}.roadmap-grid{grid-template-columns:1fr;gap:1.5rem}.reviews-layout{grid-template-columns:1fr}.product-final-cta>.container{display:grid}.final-cta-purchase{min-width:0;max-width:420px}.final-cta-purchase>div{justify-content:flex-start}}@media (width<=650px){.jlpt-product-hero{padding-top:1rem}.jlpt-product-gallery{grid-template-rows:auto auto;grid-template-columns:1fr 1fr}.jlpt-product-gallery .product-gallery-main{grid-area:auto/1/auto/-1}.jlpt-product-gallery figure:not(.product-gallery-main){aspect-ratio:1}.jlpt-product-gallery figure:nth-child(4){display:none}.jlpt-purchase-panel{border-radius:14px;padding:1rem}.jlpt-purchase-panel h1,.sale-price-block strong{font-size:2.25rem}.purchase-assurances{grid-template-columns:1fr}.product-proof-strip .container>div{min-height:90px}.product-value-grid,.product-audience-grid,.review-form-grid{grid-template-columns:1fr}.roadmap-list li{grid-template-columns:1fr;gap:.25rem}.reviews-heading{gap:.7rem;display:grid}.reviews-summary{text-align:left}.product-reviews{padding:1rem}.review-submit{max-width:none}.jlpt-workbook-promo{grid-template-columns:92px minmax(0,1fr);gap:.8rem;padding:.75rem}.jlpt-workbook-promo img{width:92px}.jlpt-workbook-promo h2{font-size:1.15rem}.jlpt-workbook-promo p{display:none}.jlpt-workbook-promo .product-banner-button{grid-column:1/-1;width:100%}}
