:root{color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#f5f0e4;color:#253344;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;font-size:17px;line-height:1.9;overflow-x:hidden}
main{max-width:760px;margin:auto;padding:14px}
header.hero{background:linear-gradient(120deg,#12394a,#1f6f7a);color:#fff;border-radius:18px;padding:20px 18px}
.hero h1{font-size:clamp(1.3rem,5.4vw,1.9rem);margin:0 0 6px;line-height:1.5}.hero p{margin:6px 0 0;font-size:.95rem}
.hero .tools{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
button{border:0;border-radius:11px;padding:11px 15px;background:#176b76;color:#fff;font:inherit;font-weight:700;cursor:pointer}
button.light{background:#e2efed;color:#174652}button:disabled{opacity:.45;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #f3b840;outline-offset:2px}
section{background:#fff;border-radius:17px;padding:18px;margin:12px 0;border:1px solid #e3dccb}
h2{font-size:1.2rem;margin:0 0 10px;line-height:1.6}h2 .num{display:inline-grid;place-items:center;width:1.7em;height:1.7em;border-radius:50%;background:#176b76;color:#fff;font-size:.95rem;margin-right:6px}
h3{font-size:1rem;margin:14px 0 6px}
p{margin:8px 0}
rt{font-size:.55em;color:#53636c}button rt,.hero rt{color:inherit;opacity:.9}body.no-ruby rt{display:none}
.try{margin-top:12px;padding:14px;border-radius:14px;background:#f1f8f6;border:1px dashed #9fc4c9}
.try h3{margin-top:0;color:#176b76}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.actions.stack{flex-direction:column;align-items:stretch}.actions.stack button{text-align:left}
.sides{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.sides.stack{grid-template-columns:1fr}
.side{padding:10px;border-radius:12px;min-width:0;overflow-wrap:anywhere;display:flex;flex-direction:column}.side>div{display:flex;flex-direction:column;flex:1}
.side.left{background:#e1f0fb;border-top:4px solid #4b9cc8}.side.right{background:#dff6e8;border-top:4px solid #35a975}.side.pl{background:#fff1dc;border-top:4px solid #e08a3c}.side.ship{background:#efe9fb;border-top:4px solid #8a6fd1}.side.wear{background:#fde8e8;border-top:4px solid #d26a6a}.side.ship .big{color:#5b43a8}.side.wear .big{color:#b23b3b}
.side h4{margin:0 0 6px;font-size:.86rem}
.row{display:flex;justify-content:space-between;gap:6px;padding:5px 0;border-bottom:1px solid #ffffff99;font-size:.95rem}
.row strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.total{font-weight:800;border-top:2px solid #253344;margin-top:auto;padding-top:6px}.row.total{margin-top:auto}
.check{text-align:center;font-weight:800;color:#126a4d;background:#e6f6ed;border-radius:9px;padding:9px;margin-top:8px}
.scale{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:6px;margin-top:8px}
.pan{text-align:center;font-weight:800;padding:10px;border-radius:12px}
.pan.left{background:#e1f0fb}.pan.right{background:#dff6e8}
.pivot{font-size:2rem;line-height:1}
.point{margin-top:12px;padding:12px;border-radius:12px;background:#fff6d6;border-left:5px solid #f0c75e}
input[type=range]{width:100%;margin:10px 0}
.big{font-size:1.35rem;font-weight:800;color:#176b76}.side>p.big{margin-top:auto;margin-bottom:4px}
.bar{height:16px;background:#e3dccb;border-radius:8px;overflow:hidden;margin:8px 0}.bar>span{display:block;height:100%;background:#4b9cc8}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.card{border:0;border-radius:12px;padding:12px 10px;min-height:92px;background:#e9f4f0;color:#253344;text-align:left;font-weight:600;line-height:1.6;font-size:.92rem}
.card.flipped{background:#12394a;color:#fff}.card.flipped rt{color:#cfe8ea}
.card small{display:block;font-weight:400;font-size:.78rem;color:#53636c}.card.flipped small{color:#cfe8ea}
.quiz{padding:12px;border-radius:12px;background:#f7faf9;margin:10px 0;border:1px solid #e3dccb}
.quiz .choices{display:grid;gap:8px;margin-top:8px}.quiz .choices button{text-align:left;background:#e2efed;color:#174652}
.quiz .choices button.correct{background:#2f7a4f;color:#fff}.quiz .choices button.wrong{background:#f3c6b5;color:#5a2a1a}
.feedback{margin-top:8px;font-weight:700;min-height:1.6em}
.next a{display:block;padding:12px 14px;border-radius:12px;background:#e9f4f0;color:#155b65;font-weight:750;text-decoration:none;margin:8px 0}
.next a.adv{background:linear-gradient(120deg,#0d1b2a,#1b3350);color:#f2d27a;border:1px solid #c9a24a}
footer{padding:16px;color:#53636c;font-size:.85rem}a{color:#176b76}
@media(max-width:430px){main{padding:10px}section{padding:14px}body{font-size:16px}.sides,.cards{gap:6px}.side{padding:8px}.row{font-size:.88rem}}
