:root{--ink:#203331;--cream:#f8f3e7;--paper:#fffdf7;--red:#dc5a47;--blue:#4e8c88;--gold:#e9ae4b;--line:#dcd3c1}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Trebuchet MS","Yu Gothic",sans-serif}#app{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 15% 10%,#fff 0,transparent 25%),linear-gradient(135deg,#4e8c8810,transparent 45%)}header{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:1180px;width:calc(100% - 40px);margin:auto;border-bottom:1px solid var(--line);font-weight:900}button{font:inherit}.brand{border:0;background:none;font-size:20px;font-weight:900;color:var(--ink);cursor:pointer;display:flex;gap:10px;align-items:center}.brand b{background:var(--red);color:#fff;width:40px;height:40px;border-radius:14px;display:grid;place-items:center;font-size:26px;box-shadow:0 5px 0 #b84131}.page{width:min(1120px,calc(100% - 36px));margin:auto;flex:1}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;min-height:calc(100vh - 140px);padding:55px 0}.eyebrow{font-size:12px;letter-spacing:.18em;color:var(--red);font-weight:900;margin:0 0 12px}.hero h1,.title h1,.result h1{font-family:Georgia,"Yu Mincho",serif;font-size:clamp(42px,5vw,68px);line-height:1.05;margin:0;letter-spacing:-.035em}.lead{font-size:19px;line-height:1.75;color:#536461;max-width:650px}.actions{display:flex;gap:12px;margin:30px 0 24px;flex-wrap:wrap}.primary,.secondary{border-radius:14px;padding:15px 22px;font-weight:900;cursor:pointer;transition:.2s}.primary{border:0;background:var(--red);color:#fff;box-shadow:0 5px 0 #ad4031}.primary:hover{transform:translateY(-2px)}.secondary{border:2px solid var(--ink);background:transparent;color:var(--ink)}.secondary:hover{background:#fff}.small{padding:10px 14px}.checks{color:#60726f;font-size:14px;font-weight:800}.scene{height:520px;border:2px solid var(--ink);border-radius:42px;position:relative;overflow:hidden;background:linear-gradient(#f9dba6 0 49%,#94b9a1 50%);box-shadow:14px 16px 0 #2033311e}.scene>i{width:160px;height:160px;background:#e96c57;border-radius:50%;position:absolute;right:55px;top:50px}.torii{position:absolute;width:290px;height:220px;left:50%;bottom:60px;transform:translateX(-50%);border-inline:27px solid #71332d}.torii:before,.torii:after{content:"";position:absolute;background:#82352f;left:-65px;width:365px;height:28px;top:-18px}.torii:after{left:-35px;width:305px;top:30px;height:20px}.tile{position:absolute;background:var(--paper);border:2px solid var(--ink);width:68px;height:68px;border-radius:20px;display:grid;place-items:center;font-size:38px;font-weight:900;box-shadow:5px 6px 0 #2033312e}.t1{top:65px;left:55px;transform:rotate(-8deg)}.t2{top:185px;right:25px;transform:rotate(7deg)}.t3{bottom:38px;left:28px;transform:rotate(4deg)}.fox{position:absolute;bottom:24px;right:35px;font-size:70px;font-family:serif;background:#fff3dd;border:2px solid var(--ink);padding:5px 18px;border-radius:50%;text-align:center}.fox small{display:block;font-size:11px}.levels{padding:54px 0}.title{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.title h1{font-size:48px}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.grid>button{min-height:190px;background:var(--paper);border:2px solid var(--ink);border-radius:20px;padding:17px;text-align:left;cursor:pointer;display:flex;flex-direction:column;box-shadow:5px 6px 0 var(--line);transition:.2s;color:var(--ink)}.grid>button:hover:not(:disabled){transform:translateY(-4px)}.grid>button>span{font-size:42px;color:var(--red);font-family:serif}.grid small{font-size:10px;letter-spacing:.14em;color:var(--blue);font-weight:900;margin-top:auto}.grid strong{font-size:17px;margin:5px 0}.grid em{font-size:12px;color:#71817e;font-style:normal}.grid button:disabled{opacity:.45;filter:grayscale(1);cursor:not-allowed}.review{display:flex;justify-content:space-between;align-items:center;margin-top:32px;border:2px solid var(--ink);background:#e3eee7;border-radius:22px;padding:22px 28px}.review h2{margin:0}.review>div:last-child{display:flex;gap:12px}.review span{font-size:28px;background:#fff;border-radius:14px;padding:10px 15px;text-align:center}.review span small{font-size:9px;display:block}.game{max-width:820px;padding:34px 0}.gamehead{display:flex;align-items:center;gap:18px}.gamehead>button{border:0;background:#e7dfd1;width:40px;height:40px;border-radius:50%;cursor:pointer}.progress{height:14px;background:#dfd8ca;border-radius:20px;overflow:hidden;flex:1}.progress i{display:block;height:100%;background:var(--blue);transition:.3s}.quiz{background:var(--paper);border:2px solid var(--ink);border-radius:30px;padding:30px 44px;margin-top:25px;box-shadow:10px 12px 0 #ddd3c0;position:relative}.quiz.correct{border-color:#3d9c69}.quiz.wrong{border-color:var(--red)}.meta{display:flex;justify-content:space-between;color:#6c7e7a;font-size:12px;font-weight:900;letter-spacing:.08em}.quiz>p{text-align:center;font-size:19px;font-weight:900}.kana{display:block;margin:15px auto 26px;background:#f5ead4;border:0;width:220px;height:220px;border-radius:45px;font-size:140px;line-height:1;box-shadow:inset 0 0 0 2px #e5d0aa;cursor:pointer;position:relative;color:var(--ink)}.kana small{position:absolute;font-size:18px;right:16px;bottom:14px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choices button{padding:17px;background:#fff;border:2px solid #cfc8ba;border-radius:14px;font-size:19px;font-weight:900;cursor:pointer;color:var(--ink);position:relative}.choices button:hover{border-color:var(--blue);background:#eef6f1}.choices kbd{position:absolute;left:14px;color:#9c988f;font-size:11px}.bottom{margin-top:22px}.bottom b{font-size:17px;color:var(--ink)}.feedback{position:absolute;left:25px;right:25px;bottom:-48px;background:var(--ink);color:#fff;border-radius:12px;padding:12px;text-align:center;font-weight:900}.result{display:grid;place-items:center;min-height:calc(100vh - 140px);padding:40px 0}.result>div{width:min(650px,100%);background:var(--paper);border:2px solid var(--ink);border-radius:34px;padding:48px;text-align:center;box-shadow:12px 14px 0 #ddd3c0;position:relative}.stamp{position:absolute;right:30px;top:25px;color:var(--red);border:3px solid var(--red);border-radius:50%;width:68px;height:68px;display:grid;place-items:center;font-family:serif;font-weight:bold;transform:rotate(8deg)}.result h1{font-size:44px}.stars{font-size:56px;letter-spacing:8px;color:#ddd3c0;margin:22px}.stars .on{color:var(--gold);text-shadow:0 3px 0 #c38421}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);padding:20px 0}.stats small{display:block;color:#7c8785;font-size:10px}.stats b{font-size:25px}.centered{justify-content:center}footer{text-align:center;color:#7b8885;font-size:12px;padding:20px}
@media(max-width:850px){.hero{grid-template-columns:1fr}.scene{height:390px}.grid{grid-template-columns:repeat(2,1fr)}.review{align-items:flex-start;gap:20px;flex-direction:column}.quiz{padding:24px}.kana{width:190px;height:190px;font-size:120px}}
@media(max-width:480px){.grid{gap:10px}.grid>button{min-height:155px;padding:13px}.scene{height:330px}.choices{grid-template-columns:1fr}.quiz{padding:20px 16px;margin-bottom:55px}.kana{width:160px;height:160px;font-size:100px}.result>div{padding:38px 18px}.title h1{font-size:38px}}
