:root{--paper:#f2ede3;--page:#e7e0d1;--card:#fbf9f3;--card-2:#f6f2e9;--ink:#1b1813;--ink-2:#5e574b;--ink-3:#948c7b;--line:#1b181321;--line-2:#1b181312;--ai:#2b3f6b;--ai-deep:#1f2e50;--ai-soft:#2b3f6b1a;--shu:#bf472b;--shu-soft:#bf472b1a;--moss:#3f7850;--moss-soft:#3f785021;--r-card:16px;--r-opt:14px;--font:"Plus Jakarta Sans", "Noto Sans JP", system-ui, sans-serif;--jp:"Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--mono:ui-monospace, "SFMono-Regular", Menlo, monospace;--shadow:0 1px 0 #1b18130a, 0 14px 30px -18px #1b18134d;--shadow-sm:0 1px 0 #1b18130d, 0 6px 14px -10px #1b181347}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button{font-family:var(--font);color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:none;padding:0}.jp{font-family:var(--jp)}.shell{background:var(--paper);max-width:640px;min-height:100dvh;padding-bottom:calc(71px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}@media (min-width:700px){.shell,.tabbar{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.app{flex-direction:column;flex:1;width:100%;min-height:0;padding:14px 22px 0;display:flex}.app.swipe{touch-action:none;-webkit-user-select:none;user-select:none}.spring{flex:1;min-height:8px}.toprow{align-items:center;gap:12px;padding:6px 0 14px;display:flex}.streak{color:var(--ink);align-items:center;gap:7px;font-size:13px;font-weight:700;display:inline-flex}.streak.zero{color:var(--shu)}.streak .pip{background:var(--shu);border-radius:2px;width:9px;height:9px;transform:rotate(45deg)}.streak.hot{color:var(--shu)}.streak .flame{background:var(--shu);border-radius:0 50% 50%;flex:none;width:12px;height:12px;animation:.5s ease-in-out infinite alternate flicker;position:relative;transform:rotate(45deg)}.streak .flame:after{content:"";border-radius:inherit;background:#e2a43c;position:absolute;inset:5px 2px 2px 5px}@keyframes flicker{0%{transform:rotate(41deg)scale(.92,1.08)}to{transform:rotate(49deg)scale(1.08,.92)}}.streak small{color:var(--ink-3);font-weight:600}.toprow .spacer{flex:1}.best{color:var(--ink-2);font-size:12.5px;font-weight:700}.best b{color:var(--ink);font-weight:800}.seal{background:var(--shu);color:#fbf3e9;width:40px;height:40px;font-family:var(--jp);box-shadow:var(--shadow-sm);border-radius:9px;flex:none;justify-content:center;align-items:center;font-size:21px;font-weight:700;display:flex;position:relative;transform:rotate(-4deg)}.seal:after{content:"";border:1.5px solid #fbf3e959;border-radius:5px;position:absolute;inset:3px}.eyebrow-q{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;margin:0 0 14px;font-size:11px;font-weight:700;display:flex}.eyebrow-q .num{color:var(--ai);background:var(--ai-soft);letter-spacing:.06em;border-radius:6px;padding:2px 8px}.prompt-id{letter-spacing:-.025em;margin:0;font-size:33px;font-weight:800;line-height:1.05}.prompt-jp{font-family:var(--jp);margin:0;font-size:44px;font-weight:500;line-height:1.04}.prompt-rm{font-family:var(--mono);color:var(--ink-3);letter-spacing:.02em;margin:8px 0 0;font-size:13px}.directive{color:var(--ai);letter-spacing:.01em;margin:0 0 9px;font-size:13.5px;font-weight:800;line-height:1.3}.directive .jp{font-weight:700}.cloze{margin:2px 0}.cloze-jp{font-family:var(--jp);color:var(--ink);letter-spacing:-.01em;margin:0;font-size:25px;font-weight:500;line-height:1.5}.cloze-jp .blank{vertical-align:-.12em;border-bottom:3px dashed var(--shu);border-radius:1px;width:58px;height:.9em;margin:0 4px;display:inline-block}.cloze-id{color:var(--ink-2);margin:12px 0 0;font-size:13.5px;font-weight:500;line-height:1.4}.chiprow{flex-wrap:wrap;align-items:center;gap:9px;margin:16px 0 0;display:flex}.chip{color:var(--ai);background:var(--ai-soft);border:1px solid #2b3f6b38;border-radius:100px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.chip.dasar{color:var(--ink-2);background:var(--card);border-color:var(--line)}.chip.dasar .jp{color:var(--ink)}.chip .rm-inline{font-family:var(--mono);color:var(--ink-3);font-size:11px;font-weight:400}.chip .arti:before{content:"·";color:var(--ink-3);margin-right:6px}.hint{color:var(--ink-2);align-items:baseline;gap:8px;margin:14px 0 0;font-size:12.5px;font-weight:500;line-height:1.45;display:flex}.hint .key{color:var(--ai);font-weight:700;font-family:var(--jp);flex:none}.opts{perspective:1100px;grid-template-columns:1fr 1fr;gap:11px;margin-top:22px;display:grid}.opts.oneup{grid-template-columns:1fr}.opt{background:var(--card);border:1px solid var(--line);border-radius:var(--r-opt);min-height:86px;box-shadow:var(--shadow-sm);transform-style:preserve-3d;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:14px 12px 12px;transition:transform .42s cubic-bezier(.2,.8,.2,1);display:flex;position:relative}.opt.peek{transform:rotateY(180deg)}.opt>:not(.opt-back){backface-visibility:hidden}.opt-back{border-radius:var(--r-opt);backface-visibility:hidden;text-align:center;background:var(--ai);color:#f4f0e6;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:8px 12px;font-size:16px;font-weight:700;line-height:1.25;display:flex;position:absolute;inset:0;transform:rotateY(180deg)}.opt-back-lbl{letter-spacing:.18em;text-transform:uppercase;opacity:.6;font-size:9px;font-weight:800}.opt.holdable .holdcue{border-style:solid;border-width:0 15px 15px 0;border-color:transparent var(--ai-soft) transparent transparent;border-top-right-radius:var(--r-opt);width:0;height:0;position:absolute;top:0;right:0}.opts.oneup .opt{flex-direction:column;justify-content:center;align-items:flex-start;min-height:54px;padding:10px 36px 10px 44px}.opts.oneup .opt .jp{font-size:24px}.opt:not(:disabled):active{background:var(--card-2)}.opt .mark{font-family:var(--jp);color:var(--ink-3);font-size:12px;font-weight:700;position:absolute;top:11px;left:13px}.opt .jp{font-family:var(--jp);white-space:nowrap;font-size:28px;font-weight:500;line-height:1}.opt .id{font-size:17px;font-weight:700}.opt .rm{font-family:var(--mono);color:var(--ink-3);font-size:11px}.opt.correct{border:1.5px solid var(--moss);background:var(--moss-soft)}.opt.correct .mark{color:var(--moss)}.opt.wrong{border:1.5px solid var(--shu);background:var(--shu-soft)}.opt.wrong .mark{color:var(--shu)}.opt .verdict{font-size:15px;font-weight:800;position:absolute;top:10px;right:12px}.opts.oneup .opt .verdict{top:50%;transform:translateY(-50%)}.opt.correct .verdict{color:var(--moss)}.opt.wrong .verdict{color:var(--shu)}.opt.dim{opacity:.5;box-shadow:none}.opt:disabled{pointer-events:none}.teach{background:var(--shu-soft);border:1px solid #bf472b4d;border-radius:14px;margin-top:16px;padding:15px 16px}.teach .th{letter-spacing:.14em;text-transform:uppercase;color:var(--shu);align-items:center;gap:7px;margin:0 0 9px;font-size:11px;font-weight:800;display:flex}.teach .th .dot{background:var(--shu);border-radius:50%;width:7px;height:7px}.teach .body{color:var(--ink);margin:0;font-size:14px;font-weight:600;line-height:1.45}.teach .body b{color:var(--shu)}.teach .conv{font-family:var(--mono);color:var(--ink-2);margin:10px 0 0;font-size:12px}.teach .conv .jp{font-family:var(--jp);font-size:14px}.cta{background:var(--ai);color:#f4f0e6;border-radius:14px;justify-content:center;align-items:center;gap:9px;width:100%;height:54px;margin-top:16px;font-size:16px;font-weight:700;display:flex;box-shadow:0 10px 22px -12px #2b3f6bb3}.cta:active{background:var(--ai-deep)}.cta.auto{color:var(--ink-3);box-shadow:none;background:0 0;height:40px;font-size:13px;font-weight:600}.cta.ghost{background:var(--card);color:var(--ai);border:1px solid var(--line);box-shadow:var(--shadow-sm);margin-top:10px}.cta.ghost:active{background:var(--card-2)}.emptyq{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:0 4px;display:flex}.emptyq-mark{width:64px;height:64px;font-family:var(--jp);color:var(--shu);background:var(--shu-soft);border:1.5px solid #bf472b40;border-radius:18px;justify-content:center;align-items:center;margin-bottom:8px;font-size:30px;display:flex}.emptyq-h{color:var(--ink);margin:4px 0 0;font-size:19px;font-weight:800}.emptyq-sub{color:var(--ink-2);max-width:300px;margin:0 0 14px;font-size:13.5px;line-height:1.5}.emptyq .cta{max-width:320px}.swipeup{color:var(--ink-2);flex-direction:column;align-items:center;gap:7px;margin-top:16px;padding:12px 0 10px;font-size:13px;font-weight:700;display:flex}.swipeup .chev{width:11px;height:11px;color:var(--ai);border-top:2.5px solid;border-left:2.5px solid;animation:1.1s ease-in-out infinite nudge-up}.swipeup.go{color:var(--ai)}@keyframes nudge-up{0%,to{opacity:.5;transform:translateY(3px)rotate(45deg)}50%{opacity:1;transform:translateY(-3px)rotate(45deg)}}.installfab{z-index:30;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));align-items:flex-start;animation:.5s cubic-bezier(.16,1,.3,1) fab-in;display:flex;position:fixed}@media (min-width:700px){.installfab{right:calc(50% - 306px)}}@keyframes fab-in{0%{opacity:0;transform:translateY(16px)scale(.9)}to{opacity:1;transform:none}}.installfab-btn{isolation:isolate;color:#fff4e8;background:linear-gradient(135deg,#d2512f 0%,#bf472b 48%,#e2a43c 140%);border-radius:999px;align-items:center;gap:9px;padding:12px 16px 12px 14px;font-size:14px;font-weight:800;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 10px 24px -8px #bf472bb3,0 2px #0000000d,inset 0 1px #ffffff40}.installfab-btn:active{transform:scale(.96)}.installfab-btn:after{content:"";z-index:2;border-radius:inherit;background:linear-gradient(105deg,#0000 30%,#ffffff73 48%,#0000 62%) 200% 0/250% 100%;animation:3.2s ease-in-out infinite fab-sheen;position:absolute;inset:0}@keyframes fab-sheen{0%,55%{background-position:200% 0}to{background-position:-60% 0}}.installfab-halo{z-index:0;border-radius:inherit;animation:2s ease-out infinite fab-pulse;position:absolute;inset:0;box-shadow:0 0 #e2a43c8c}@keyframes fab-pulse{0%{box-shadow:0 0 #e2a43c80}70%{box-shadow:0 0 0 14px #e2a43c00}to{box-shadow:0 0 #e2a43c00}}.installfab-flame{z-index:1;background:#ffe08a;border-radius:0 50% 50%;flex:none;width:15px;height:15px;animation:.5s ease-in-out infinite alternate flicker;position:relative;transform:rotate(45deg);box-shadow:0 0 10px 1px #ffd37ae6}.installfab-label{z-index:1;position:relative}.installfab-dismiss{z-index:1;width:20px;height:20px;color:var(--ink-2);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-self:flex-start;align-items:center;margin:-6px -6px 0 -4px;font-size:10px;font-weight:800;display:flex;position:relative}.installsheet{z-index:30;right:14px;bottom:calc(140px + env(safe-area-inset-bottom));background:var(--card);border:1px solid var(--line);max-width:280px;box-shadow:var(--shadow);border-radius:14px;padding:14px 16px;animation:.3s fab-in;position:fixed}@media (min-width:700px){.installsheet{right:calc(50% - 306px)}}.installsheet:after{content:"";background:var(--card);border-right:1px solid var(--line);border-bottom:1px solid var(--line);width:14px;height:14px;position:absolute;bottom:-7px;right:30px;transform:rotate(45deg)}.installsheet-h{color:var(--ink);margin:0 0 5px;font-size:14px;font-weight:800}.installsheet-b{color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.55}.installsheet-b .glyph{vertical-align:-3px;color:var(--ai);margin:0 1px}.installsheet-x{color:var(--ink-3);font-size:12px;font-weight:700;position:absolute;top:8px;right:10px}.tabbar{border-top:1px solid var(--line);background:var(--card);padding:9px 14px calc(14px + env(safe-area-inset-bottom));z-index:10;grid-template-columns:repeat(3,1fr);width:100%;max-width:640px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{flex-direction:column;align-items:center;gap:6px;min-height:48px;padding-top:8px;display:flex;position:relative}.tab .tn{color:var(--ink-3);font-size:11px;font-weight:700}.tab .ti{width:22px;height:22px;color:var(--ink-3);justify-content:center;align-items:flex-end;display:flex}.tab .ti .sq{border:2px solid;border-radius:5px;width:18px;height:18px}.tab .ti.bars{gap:2px}.tab .ti.bars b{background:currentColor;border-radius:1px;width:4px;display:block}.tab .ti.bars b:first-child{height:8px}.tab .ti.bars b:nth-child(2){height:16px}.tab .ti.bars b:nth-child(3){height:12px}.tab .ti .ring{border:2px solid;border-radius:50%;width:18px;height:18px;position:relative}.tab .ti .ring:after{content:"";border:2px solid;border-radius:50%;position:absolute;inset:3px}.tab.active .tn,.tab.active .ti{color:var(--ai)}.tab.active:before{content:"";background:var(--ai);border-radius:3px;width:26px;height:3px;position:absolute;top:-10px}.screenhead{align-items:center;gap:14px;padding:8px 0 18px;display:flex}.screenhead h1{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800}.screenhead .sub{color:var(--ink-2);margin:2px 0 0;font-size:12.5px;font-weight:500}.block-h{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:10px;margin:22px 0 12px;font-size:11px;font-weight:700;display:flex}.block-h:after{content:"";background:var(--line-2);flex:1;height:1px}.scoretop{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);align-items:center;gap:18px;padding:18px;display:flex}.ring{border-radius:50%;flex:none;justify-content:center;align-items:center;width:84px;height:84px;display:flex;position:relative}.ring:after{content:"";background:var(--card);border-radius:50%;position:absolute;inset:9px}.ring span{z-index:1;font-size:19px;font-weight:800;position:relative}.scoretop .big{letter-spacing:-.02em;font-size:32px;font-weight:800;line-height:1}.scoretop .lbl{color:var(--ink-2);margin-top:5px;font-size:12.5px;font-weight:500}.cov-note{color:var(--ink-3);margin:-4px 0 13px;font-size:12px;line-height:1.5}.cov-note b{color:var(--ink-2);font-weight:800}.typecard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);margin-bottom:10px;padding:13px 15px 12px}.tc-top{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.tc-name{color:var(--ink);font-size:14.5px;font-weight:800}.tc-acc{color:var(--ink-2);flex:none;font-size:12px;font-weight:700}.typecard .bar{background:var(--line-2);border:1px solid var(--line-2);border-radius:5px;height:9px;overflow:hidden}.typecard .bar span{background:var(--ai);border-radius:5px;height:100%;transition:width .3s;display:block}.typecard .bar.full span{background:var(--moss)}.tc-bottom{justify-content:space-between;margin-top:7px;font-size:12px;font-weight:700;display:flex}.tc-cov{color:var(--ink-2)}.tc-pct{color:var(--ai)}.tc-pct.full{color:var(--moss)}.barrow{margin-bottom:13px}.barrow .top{color:var(--ink-2);justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.barrow .pct{color:var(--ink);font-size:13.5px;font-weight:800}.barrow .bar{background:var(--line-2);border:1px solid var(--line-2);border-radius:4px;height:8px;overflow:hidden}.barrow .bar span{background:var(--ai);border-radius:4px;height:100%;display:block}.wronglist{flex-direction:column;display:flex}.wrongrow{border-bottom:1px solid var(--line-2);align-items:center;gap:13px;padding:11px 2px;display:flex}.wrongrow .rank{background:var(--shu-soft);width:22px;height:22px;color:var(--shu);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:11.5px;font-weight:800;display:flex}.wrongrow .vjp{font-family:var(--jp);font-size:19px;font-weight:500;line-height:1.2}.wrongrow .mn{color:var(--ink-2);font-size:12px;font-weight:500}.wrongrow .cnt{text-align:right;margin-left:auto}.wrongrow .cnt b{color:var(--shu);font-size:14.5px;font-weight:800;display:block}.wrongrow .cnt small{color:var(--ink-3);font-size:11px;font-weight:600}.morebtn{border:1.5px solid var(--ink);width:100%;height:44px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;margin-top:12px;font-size:13.5px;font-weight:700;display:flex}.resetbtn{width:100%;height:44px;color:var(--shu);background:0 0;border:1px solid #bf472b59;border-radius:12px;justify-content:center;align-items:center;margin-top:22px;font-size:13.5px;font-weight:700;display:flex}.resetbtn.confirm{background:var(--shu);color:#fbf3e9;border-color:var(--shu)}.empty{color:var(--ink-3);padding:14px 2px;font-size:13.5px;font-weight:500;line-height:1.5}.setgroup{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:4px 16px}.setrow{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:14px;min-height:48px;padding:14px 0;display:flex}.setgroup>.setrow:last-child,.setgroup>:last-child .setrow:last-child{border-bottom:none}.setrow.sub{border-left:2px solid var(--line-2);min-height:44px;margin-left:2px;padding-left:16px}.setrow.sub .name{color:var(--ink-2);font-size:13px;font-weight:600}.subnote.sub{border-left:2px solid var(--shu);min-height:0;color:var(--shu);margin:0 0 0 2px;padding:8px 14px 10px 16px;font-size:12px;font-weight:600;line-height:1.45}.installrow-btn{color:#fff4e8;background:linear-gradient(135deg,#d2512f 0%,#bf472b 55%,#e2a43c 150%);border-radius:999px;flex:none;height:38px;padding:0 20px;font-size:13.5px;font-weight:800;box-shadow:0 8px 18px -8px #bf472bb3,inset 0 1px #ffffff40}.installrow-btn:active{transform:scale(.96)}.installrow-done{color:var(--moss);flex:none;font-size:13px;font-weight:800}.installrow .subnote.sub{color:var(--ink-2);border-left-color:var(--ai)}.installrow .subnote.sub .glyph{vertical-align:-3px;color:var(--ai);margin:0 1px}.setrow .name{font-size:14.5px;font-weight:700}.setrow .desc{color:var(--ink-2);margin-top:3px;font-size:12px;font-weight:500;line-height:1.4}.seg{background:var(--card-2);border:1px solid var(--line);border-radius:10px;flex:none;padding:3px;display:inline-flex}.seg button{color:var(--ink-2);border-radius:8px;min-height:32px;padding:7px 13px;font-size:12.5px;font-weight:700}.seg button.on{background:var(--ai);color:#f4f0e6}.seg.seg3 button{padding:7px 9px;font-size:11.5px}.sw{background:var(--line);border-radius:100px;flex:none;width:46px;height:28px;transition:background .15s;position:relative}.sw:after{content:"";background:var(--card);width:22px;height:22px;box-shadow:var(--shadow-sm);border-radius:50%;transition:left .15s;position:absolute;top:3px;left:3px}.sw.on{background:var(--ai)}.sw.on:after{left:21px}.sw:disabled{opacity:.45;cursor:not-allowed}@media (max-width:360px){.prompt-id{font-size:28px}.prompt-jp{font-size:38px}.opt .jp{font-size:24px}.opts.oneup .opt .jp{font-size:21px}}
