:root{--paper:#f4f5ee;--ink:#182e29;--mute:#65756d;--line:#d6dcd2;--lime:#d3f66b;--white:#fff;--dark:#142d27}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.5}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #62a04c;outline-offset:5px}.shell{max-width:1260px;padding:0 48px;margin:auto}header{height:108px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:36px}.brand{display:flex;align-items:center;font-weight:850;font-size:28px;text-decoration:none;letter-spacing:-1.7px}.dot{color:#699c36}.target-icon{width:22px;height:22px;border:2px solid var(--ink);border-radius:50%;margin-right:12px;position:relative}.target-icon:before{content:'';position:absolute;background:var(--ink);width:6px;height:6px;border-radius:50%;left:6px;top:6px}.edition{font-size:11px;letter-spacing:1.4px;color:var(--mute)}.edition i{font-style:normal;padding-left:15px;color:var(--ink);font-family:monospace}.text-button{background:transparent;border:0;color:var(--mute);font-size:12px;padding:12px 0}header>.text-button{margin-left:auto;color:var(--ink)}header>.text-button span{margin-left:16px}main{min-height:calc(100svh - 185px)}.hero{display:grid;grid-template-columns:1.03fr 1fr;gap:62px;align-items:center;padding:65px 0 52px}.eyebrow{font-family:monospace;font-size:11px;letter-spacing:2px;display:flex;align-items:center;gap:10px;color:var(--mute);margin-bottom:25px}.eyebrow:before{content:'';width:7px;height:7px;border-radius:50%;background:#739c44}.hero h1{font-size:clamp(38px,4.6vw,62px);line-height:1.42;letter-spacing:-3.4px;margin:0 0 23px;font-weight:850}.highlight{position:relative;z-index:0;white-space:nowrap}.highlight:after{content:'';position:absolute;bottom:6px;left:-3px;right:-3px;height:15px;background:var(--lime);z-index:-1}.lead{font-size:14px;line-height:2.1;color:var(--mute);margin:0 0 28px}.primary,.secondary{border:0;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:62px;border-radius:7px;padding:19px 24px;font-weight:700;font-size:15px;width:100%}.primary{background:var(--ink);color:white}.primary:hover{background:#284a3e}.primary .arrow{font-size:22px;color:var(--lime)}.secondary{background:transparent;border:1px solid var(--line);color:var(--ink)}.secondary:hover{background:#e9eee0}.hero .start-actions{max-width:426px}.fine{font-size:10px;line-height:1.9;color:var(--mute);margin:12px 0 14px}.skip{width:100%;text-align:center;text-decoration:underline;text-underline-offset:4px;font-size:12px;padding:10px}.visual{background:var(--dark);height:470px;position:relative;border-radius:12px;overflow:hidden;color:white;background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px);background-size:32px 32px}.visual-top{display:flex;justify-content:space-between;position:absolute;top:24px;left:25px;right:25px;font:10px monospace;letter-spacing:1.5px;color:#a7b8aa}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-right:7px}.japan{width:100%;height:100%;padding:48px 35px 45px;filter:drop-shadow(0 0 12px #d3f62918)}.japan circle.point{fill:#769c76;stroke:#142d27;stroke-width:1.8}.japan circle.chiba{fill:var(--lime);stroke:none}.japan text{font:10px monospace;fill:#d3f66b}.japan line{stroke:#73914a;stroke-width:.7}.visual-bottom{position:absolute;left:25px;right:25px;bottom:24px;display:flex;justify-content:space-between;align-items:end}.visual-bottom .big{font-size:48px;font-weight:400;font-family:monospace;letter-spacing:-4px;color:var(--lime)}.visual-bottom .big small{font-size:12px;color:#bac8b9;letter-spacing:1px;margin-left:12px}.visual-bottom .detail{font:9px/1.8 monospace;text-align:right;letter-spacing:1px;color:#8ca494}.features{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:26px 0 35px;gap:26px}.feature{display:flex;gap:18px}.feature .number{font-family:monospace;color:#839575;font-size:11px;padding-top:3px}.feature h3{font-size:13px;margin:0 0 8px}.feature p{font-size:11px;color:var(--mute);line-height:1.8;margin:0}footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;color:var(--mute);font-size:10px}.play{max-width:800px;margin:auto;padding:42px 0 50px}.play-top{display:flex;justify-content:space-between;font:11px monospace;letter-spacing:1.2px;color:var(--mute);align-items:center;margin-bottom:22px}.play-top button{padding:8px 0}.timer{font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums}.progress{height:3px;background:#dde3d6;border-radius:5px;margin-bottom:32px;overflow:hidden}.progress>div{height:100%;background:#84a646;transition:width .2s}.quiz-heading{display:flex;gap:25px;align-items:start}.qnum{font:38px/1.2 monospace;color:#9bad85}.play h2{font-size:30px;line-height:1.55;letter-spacing:-1px;margin:0 0 10px}.sub{font-size:12px;line-height:1.9;color:var(--mute);margin:0 0 26px}.candidates{background:white;border:1px solid var(--line);padding:22px;border-radius:12px;margin:18px 0 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.pref{background:#ecf3dc;border-radius:5px;padding:13px 6px;text-align:center;font-size:13px;font-weight:650}.answers{display:grid;grid-template-columns:1fr 1fr;gap:14px}.answers button{justify-content:center}.key{font:10px monospace;opacity:.55}.backrow{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.backrow .text-button{font-size:11px}.remaining{font-size:11px;color:var(--mute)}.locating{text-align:center;padding:90px 0}.radar{height:120px;width:120px;border:1px solid #ccdbb6;border-radius:50%;display:grid;place-items:center;margin:0 auto 32px;position:relative}.radar:before{content:'';position:absolute;inset:18px;border:1px solid #a9bd84;border-radius:50%;animation:pulse 2s ease-in-out infinite}.radar:after{content:'';width:14px;height:14px;background:#89ab43;border-radius:50%}@keyframes pulse{50%{transform:scale(1.15);opacity:.35}}.locating .secondary{max-width:300px;margin:30px auto}.confirm-card{background:var(--dark);color:white;border-radius:12px;padding:35px;margin:24px 0}.confirm-card .label{font:11px monospace;color:#a9bdab;letter-spacing:2px}.pref-name{font-size:clamp(46px,7vw,76px);font-weight:850;letter-spacing:-4px;line-height:1.5;margin:16px 0;color:var(--lime)}.confirm-card p{font-size:12px;color:#bacbbd}.notice{background:#e8eddd;padding:16px 20px;border-radius:8px;font-size:12px;line-height:1.9;margin-bottom:20px}.result-layout{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;padding:65px 0}.result-layout h2{font-size:24px;margin:22px 0 3px}.result-layout .pref-name{color:var(--ink);font-size:66px;margin:0 0 10px}.result-note{font-size:13px;color:var(--mute);line-height:2}.result-card{background:var(--dark);border-radius:12px;color:white;padding:33px;position:relative}.result-card .label{color:var(--lime);font-size:12px;letter-spacing:2px}.score{font-family:monospace;font-size:110px;line-height:1.2;letter-spacing:-8px;margin:18px 0 5px}.score small{font-family:inherit;font-size:18px;letter-spacing:1px;margin-left:15px}.stats{display:flex;justify-content:space-between;padding:20px 0;border-top:1px solid #ffffff24;font-size:12px;color:#b7c9bc;align-items:center}.stats b{color:white;font:22px monospace}.result-card .tag{font-size:10px;color:#a4b7a7;padding-top:16px}.result-actions{display:flex;gap:12px;margin-top:25px}.result-actions button{min-height:52px;font-size:12px;padding:14px 17px}.result-extras{margin-top:18px;display:flex;gap:22px;flex-wrap:wrap}.result-extras .text-button{font-size:11px}dialog{border:1px solid var(--line);border-radius:14px;padding:36px;max-width:530px;width:calc(100% - 32px);color:var(--ink);background:var(--paper)}dialog::backdrop{background:#0c201dbb;backdrop-filter:blur(5px)}dialog h2{font-size:23px;margin:10px 0 24px}dialog h3{font-size:15px;margin:25px 0 8px}dialog p,dialog li{font-size:13px;line-height:2;color:var(--mute)}dialog .close{position:absolute;right:18px;top:10px;background:none;border:0;font-size:27px;color:var(--mute)}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:14px 24px;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:4}.toast.show{opacity:1}.history{margin-top:24px;font-size:12px;line-height:1.9;color:var(--mute)}.history summary{cursor:pointer}.history ol{padding-left:20px}.fade{animation:none}@keyframes fade{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:850px){.hero{min-height:580px}}@media(max-width:850px){.shell{padding:0 24px}header{height:82px;gap:12px}.edition{display:none}.hero{gap:32px;padding:38px 0;grid-template-columns:1fr 1fr}.hero h1{font-size:40px;letter-spacing:-2px}.visual{height:400px}.lead{font-size:12px}.hero .primary{font-size:13px;padding:18px 16px}.result-layout{gap:28px}.result-layout .pref-name{font-size:48px}}@media(max-width:600px){.shell{padding:0 22px}header{height:76px}.brand{font-size:25px}.hero{grid-template-columns:1fr;gap:28px;padding:33px 0 28px}.eyebrow{font-size:10px;margin-bottom:19px}.hero h1{font-size:43px;line-height:1.43;letter-spacing:-2.4px;margin-bottom:18px}.lead{font-size:13px;line-height:1.9;margin-bottom:22px}.hero .start-actions{max-width:none}.primary,.secondary{min-height:58px;font-size:14px}.hero .primary{font-size:14px}.fine{font-size:10px;margin-bottom:5px}.visual{height:270px}.japan{padding:25px 18px}.visual-top{top:19px;left:20px;right:20px;font-size:8px}.visual-bottom{bottom:18px;left:20px;right:20px}.visual-bottom .big{font-size:36px}.visual-bottom .big small{font-size:9px}.visual-bottom .detail{font-size:8px}.features{grid-template-columns:1fr;gap:19px;padding:23px 0}.feature{gap:14px}.feature h3{margin-bottom:4px}.feature p{font-size:11px}footer{font-size:9px;gap:5px;padding:14px 0}footer .text-button{font-size:9px}.play{padding:25px 0 35px}.play h2{font-size:23px}.qnum{font-size:29px}.quiz-heading{gap:15px}.play-top{margin-bottom:17px}.progress{margin-bottom:25px}.candidates{padding:13px;gap:7px;grid-template-columns:repeat(3,1fr)}.pref{font-size:12px;padding:11px 3px}.answers{gap:10px}.answers button{padding:17px 10px}.key{display:none}.confirm-card{padding:25px}.confirm-card .pref-name{font-size:58px}.locating{padding:65px 0}.result-layout{grid-template-columns:1fr;gap:25px;padding:34px 0}.result-layout h2{font-size:19px;margin-top:12px}.result-layout .pref-name{font-size:58px;margin-bottom:3px}.result-note{font-size:12px}.result-card{padding:27px}.score{font-size:86px;margin:10px 0}.result-actions{margin-top:21px}.result-extras{margin-top:5px}.result-layout .eyebrow{margin-bottom:15px}.stats{padding:16px 0}dialog{padding:27px}.history{margin-top:15px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Homage: warm paper, vermilion, heavy Japanese type and square rules. */
:root{--paper:#f7f6ee;--ink:#252520;--mute:#67665f;--line:#deddd5;--lime:#28734f;--dark:#252520}
body{font-family:Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif}
.shell{max-width:1100px;padding:0 48px}header{height:124px;border-bottom:1px solid var(--line)}
.brand{font-size:27px;font-weight:900;letter-spacing:-1px}.dot{color:var(--lime)}
.target-icon{border:0;border-radius:0;background:var(--ink);width:26px;height:35px;clip-path:polygon(62% 0,8% 60%,45% 60%,34% 100%,96% 37%,57% 37%)}.target-icon:before{display:none}
.edition{display:none}.eyebrow{font-family:inherit;font-weight:700;font-size:13px;line-height:1.7;letter-spacing:2px;color:var(--ink);gap:18px;margin-bottom:30px}.eyebrow:before{width:26px;height:3px;background:var(--lime);border-radius:0;flex-shrink:0}
.hero{display:block;position:relative;min-height:0;padding:58px 0 48px}.hero h1{font-size:clamp(44px,6.2vw,76px);font-weight:900;line-height:1.35;letter-spacing:-3px;margin:0 0 24px}.highlight{color:var(--lime)}.highlight:after{display:none}.lead{font-size:16px;line-height:1.9;color:var(--ink);margin-bottom:34px}
.hero .start-actions{max-width:none;border:2px solid var(--ink);background:white;padding:30px 34px;box-shadow:7px 7px 0 #25252012}.start-actions .fine{font-size:11px}.start-actions .skip{font-size:13px}
.visual{display:none}.primary,.secondary{border-radius:0;min-height:62px;border:2px solid var(--ink);font-size:17px;padding:18px 24px}.primary{background:var(--lime);color:white;border-color:var(--lime)}.primary:hover{background:#1f5d40;border-color:#1f5d40}.primary .arrow{color:white}.secondary{background:white}.secondary:hover{background:#efeee6}.text-button{color:var(--mute)}button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:var(--lime)}
.features{gap:25px;padding:30px 0}.feature .number{color:var(--lime)}.feature h3{font-size:13px}.feature p{font-size:12px}.fine{font-size:11px;line-height:1.8}
.play{max-width:800px;padding:50px 0}.play h2{font-size:30px;font-weight:900}.play-top{color:var(--ink)}.progress{border-radius:0;background:var(--line);height:4px}.progress>div{background:var(--lime)}
.confirm-card{background:white;color:var(--ink);border:2px solid var(--ink);border-radius:0;box-shadow:7px 7px 0 #25252012;padding:30px 34px;margin:24px 0 30px}.confirm-card .label{color:var(--ink);font-weight:700;letter-spacing:2px}.confirm-card .pref-name{color:var(--ink);font-size:clamp(48px,8vw,82px);letter-spacing:-2px;font-weight:900}.confirm-card p{color:var(--ink)!important}.answers{gap:20px}.answers button{min-height:70px;font-size:22px}.key{font-size:11px}.remaining{color:var(--ink)}
.notice{border-left:3px solid var(--lime);background:#eeede5;border-radius:0;font-size:12px}.radar{border-color:#b8d3bd}.radar:before{border-color:var(--lime)}.radar:after{background:var(--lime)}
.result-layout{display:flex;flex-direction:column;align-items:stretch;gap:34px;max-width:800px;margin:auto;padding:56px 0 30px}.result-layout h2{font-size:36px;font-weight:900;margin:28px 0 14px}.result-layout .pref-name{font-size:clamp(68px,10vw,108px);font-weight:900;color:var(--lime);letter-spacing:-3px;line-height:1.5;margin:0 0 12px}.result-note{color:var(--ink);font-size:16px;line-height:1.9}.result-card{background:white;border:2px solid var(--ink);box-shadow:7px 7px 0 #25252012;border-radius:0;padding:38px;color:var(--ink)}.result-card .label{text-align:center;font-size:27px;font-weight:800;color:var(--lime);padding:5px 0 20px}.score{text-align:center;font-family:Arial,sans-serif;font-weight:900;font-size:128px;letter-spacing:-5px;margin:10px 0 30px}.score small{font-size:30px;letter-spacing:-1px}.stats{border-top:1px solid var(--line);font-size:15px;padding:24px 0;color:var(--ink)}.stats b{color:var(--ink);font:bold 28px Arial,sans-serif}.result-card .tag{color:var(--mute);font-size:11px;line-height:1.8}.result-actions{max-width:550px}.result-actions button{font-size:14px}.history{max-width:800px;margin:15px auto 35px}.result-extras{margin-bottom:4px}
dialog{border:2px solid var(--ink);border-radius:0;box-shadow:8px 8px 0 #25252025}dialog::backdrop{background:#25252080;backdrop-filter:none}.toast{border-radius:0}footer{font-size:11px}
@media(max-width:600px){.shell{padding:0 24px}header{height:90px;gap:10px}.brand{font-size:24px}header>.text-button{font-size:11px}.hero{padding:32px 0}.eyebrow{font-size:12px;letter-spacing:1px;margin-bottom:22px}.hero h1{font-size:clamp(37px,10vw,54px);line-height:1.42;letter-spacing:-2px}.lead{font-size:14px;line-height:1.9;margin-bottom:28px}.hero .start-actions{padding:22px 20px;box-shadow:5px 5px 0 #25252012}.hero .primary{font-size:14px;padding:17px 12px;gap:8px}.features{grid-template-columns:1fr}.play{padding:30px 0}.play h2{font-size:25px}.confirm-card{padding:25px 22px;box-shadow:5px 5px 0 #25252012}.confirm-card .pref-name{font-size:60px}.answers{gap:14px}.answers button{min-height:64px;font-size:20px}.result-layout{padding:35px 0;gap:26px}.result-layout h2{font-size:28px;margin-top:20px}.result-layout .pref-name{font-size:74px}.result-note{font-size:14px}.result-card{padding:28px 25px;box-shadow:5px 5px 0 #25252012}.result-card .label{font-size:23px}.score{font-size:105px}.score small{font-size:23px;margin-left:12px}.stats{font-size:12px;gap:10px}.stats b{font-size:24px}.result-actions{gap:10px}.result-actions button{font-size:12px;padding:14px}.fine{font-size:11px}footer{font-size:9px}}

/* The comparison sits on white: use readable ink and a shared zero baseline. */
.average-comparison{border-top:1px solid var(--line);padding:24px 0;margin-top:20px;color:var(--ink)}
.average-comparison>span,.comparison-heading{color:var(--mute);font-size:14px;font-weight:700;margin:0 0 12px}
.average-message{font-size:18px;line-height:1.6;margin:10px 0}
.average-comparison>small{display:block;color:var(--mute);font-size:12px;line-height:1.8}
.comparison-insight{font-size:clamp(17px,3.8vw,24px);font-weight:700;line-height:1.7;margin:0 0 24px;overflow-wrap:anywhere}
.comparison-insight.is-faster{color:var(--lime)}
.comparison-insight strong{font-size:1.65em;white-space:nowrap;font-variant-numeric:tabular-nums}
.comparison-insight strong small{font-size:.6em;margin-left:3px}
.comparison-chart{margin:0;display:grid;gap:18px}
.comparison-row-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.comparison-row dt{font-size:15px;font-weight:700}
.comparison-row dd{margin:0;font-size:24px;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}
.comparison-row dd small{font-size:13px;font-weight:700}
.comparison-row.you{color:var(--lime)}
.comparison-track{height:20px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(20% - 1px),#cdd1c7 calc(20% - 1px),#cdd1c7 20%),#eef0e9;border-left:1px solid #8c9086}
.comparison-bar{height:100%;background:#28734f}
.everyone .comparison-bar{background:#75766e}
.comparison-axis{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:var(--mute);font-variant-numeric:tabular-nums}
.comparison-unit{text-align:right;font-size:11px;color:var(--mute);margin:6px 0 18px}
@media(max-width:360px){.result-card{padding:24px 18px}.score{font-size:86px}.score small{font-size:20px}.comparison-insight{font-size:16px}}
