:root{--primary:#168c89;--primary-dark:#0d625f;--soft:#def5f2;--accent:#4dbbb4;--text:#183d3b;--weak:#4d6b68;--bg:#f8fdfc;--alt:#eff9f7;--line:#cce9e5;--staff:#fff6e5;--staff-line:#efd59c}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;padding:20px 16px 48px;color:var(--text);background:var(--bg);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI","Meiryo",sans-serif;line-height:1.85;letter-spacing:.02em;overflow-x:hidden}
#app{max-width:620px;margin:0 auto}
h1,h2,h3,p{margin:0}
.card{background:#fff;border-radius:18px;box-shadow:0 6px 24px rgba(13,98,95,.1);padding:30px 22px}
.badge{display:inline-block;margin-bottom:12px;padding:2px 12px;border-radius:999px;background:var(--staff);border:1px solid var(--staff-line);font-size:13px;font-weight:700}
.primary{display:block;width:100%;padding:17px 18px;border:0;border-radius:999px;background:var(--primary);color:#fff;font:inherit;font-weight:700;font-size:16px;text-align:center;text-decoration:none;cursor:pointer;transition:background .15s}
.primary:hover{background:var(--primary-dark)}
.primary.ghost{background:#fff;color:var(--primary-dark);border:2px solid var(--primary)}
.primary.ghost:hover{background:var(--soft)}
.back{display:block;margin:18px auto 0;padding:8px 14px;border:0;background:none;color:var(--weak);font:inherit;font-size:14px;text-decoration:underline;cursor:pointer}
button:focus-visible,a:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

.cover{text-align:center}
.mask{position:relative;padding-bottom:14px;margin-bottom:16px;overflow:hidden}
.mask-title{font-size:25px;line-height:1.5;font-weight:800;color:var(--primary-dark);animation:rise .65s cubic-bezier(.22,1,.36,1) .35s both}
.nb{display:inline-block}
.mask-line{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent);transform-origin:center;animation:line .4s cubic-bezier(.65,0,.35,1) .1s both}
.settled .mask-title,.settled .mask-line{animation:none;transform:none}
@keyframes rise{from{transform:translateY(120%)}to{transform:none}}
@keyframes line{from{transform:scaleX(0)}to{transform:none}}
.meta{font-weight:700;color:var(--primary-dark)}
.lead{margin:6px 0 24px;font-size:15px;color:var(--weak)}
.paste{margin-top:30px;padding-top:24px;border-top:1px solid var(--line);text-align:left}
.paste h2{font-size:18px}
.note{font-size:14px;color:var(--weak);margin-bottom:10px}
textarea{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:16px;color:var(--text);margin-bottom:12px;resize:vertical}
.error{margin-top:10px;color:#a3261c;font-size:14px;font-weight:700}

.stage{overflow:hidden;margin:-8px;padding:8px}
.from-right{animation:pushR .32s cubic-bezier(.65,0,.35,1) both}
.from-left{animation:pushL .32s cubic-bezier(.65,0,.35,1) both}
@keyframes pushR{from{transform:translateX(100%)}to{transform:none}}
@keyframes pushL{from{transform:translateX(-100%)}to{transform:none}}
.progress{height:8px;border-radius:999px;background:var(--alt);overflow:hidden}
.progress span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}
.count{margin-top:6px;font-size:14px;color:var(--weak);text-align:right}
.q{margin:8px 0 18px;font-size:20px;line-height:1.6;font-weight:700}
.choices{display:grid;gap:10px}
.choice{width:100%;padding:15px 16px;border:2px solid transparent;border-radius:14px;background:var(--alt);color:var(--text);font:inherit;font-size:16px;line-height:1.6;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.choice:hover{border-color:var(--primary);background:var(--soft)}
.choice.selected{border-color:var(--primary);background:var(--soft);font-weight:700}

.head{text-align:center}
.label{font-size:14px;color:var(--weak)}
.type{font-size:28px;line-height:1.45;font-weight:800;color:var(--primary-dark)}
.one{margin-top:8px;font-weight:700}
.tie{margin-top:8px;font-size:15px;color:var(--primary-dark)}
.intro{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:15px;color:var(--weak);text-align:left}
.block{margin-top:14px;padding:22px;border-radius:16px;background:#fff;box-shadow:0 3px 14px rgba(13,98,95,.07)}
.block h3{margin-bottom:8px;font-size:17px;color:var(--primary-dark)}
.block p{font-size:16px}
.block .extra{margin-bottom:10px;padding:10px 12px;border-radius:10px;background:var(--alt);font-size:15px}
.block ol{margin:0;padding-left:1.4em}
.rank{margin-top:12px}
.rank-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 10px;font-size:15px}
.rank.first .rank-top{font-weight:800;color:var(--primary-dark)}
.rank-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.track{height:10px;margin-top:3px;border-radius:999px;background:var(--alt);overflow:hidden}
.track span{display:block;height:100%;width:0;border-radius:999px;background:var(--accent)}
.rank.first .track span{background:var(--primary)}
.cta p{margin-bottom:16px}
.tools{margin-top:18px}
.done{min-height:1.8em;text-align:center;font-size:14px;color:var(--primary-dark);font-weight:700}
.rank-note,.copy-note{font-size:14px;color:var(--weak)}
.copy-note{text-align:center}
.copybox{display:none;margin-top:6px}
.copybox.open{display:block}
.disclaimer{margin-top:18px;font-size:13px;color:var(--weak);text-align:center}
.staff{margin-top:14px;padding:20px 16px;border-radius:16px;background:var(--staff);border:1px solid var(--staff-line)}
.staff h2{font-size:19px;margin-bottom:8px}
.staff dl{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;margin:0;font-size:15px}
.staff dt{font-weight:700}
.staff dd{margin:0}
.staff .block{box-shadow:none;padding:16px}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.33,1,.68,1),transform .7s cubic-bezier(.33,1,.68,1)}
.reveal.in,.staff .reveal{opacity:1;transform:none}
@media (min-width:768px){body{padding-top:48px}.card{padding:40px 44px}.mask-title{font-size:32px}.type{font-size:34px}.block{padding:26px 30px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
