:root{
  --sky:#2E8BE6; --sky2:#1B61C9; --ink:#16233a; --mut:#5b6b86; --line:#dfe7f3;
  --card:#fff; --gold:#F5C518; --gold2:#FFDC4A;
  --y:#F2B705; --r:#E8324A; --b:#2E7BE6; --p:#8A5CD6; --g:#16A06A; --n:#27457E; --k:#F0568E; --o:#F08A2E;
  --disp:"Montserrat",sans-serif; --sans:"Zen Kaku Gothic New",sans-serif; --round:"Zen Maru Gothic",var(--sans);
  --radius:18px; --shadow:0 10px 26px rgba(22,45,90,.16);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--sans);color:var(--ink);line-height:1.7;
  background:
   radial-gradient(120% 60% at 50% -8%, #bfe0ff 0%, rgba(191,224,255,0) 60%),
   linear-gradient(180deg,#4aa0f0 0%, #2E8BE6 22%, #eaf3ff 60%, #f4f8ff 100%);
  background-attachment:fixed; min-height:100vh;
}
.wrap{max-width:680px;margin:0 auto;padding:0 14px 40px}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--round);line-height:1.35}
.btn{appearance:none;border:0;border-radius:999px;font-family:var(--round);font-weight:900;
  cursor:pointer;font-size:17px;padding:15px 26px;transition:transform .12s ease, box-shadow .12s ease}
.btn:active{transform:translateY(1px)}
.btn-cta{background:linear-gradient(180deg,var(--gold2),var(--gold));color:#3a2b00;
  box-shadow:0 8px 0 #d39e00,0 12px 22px rgba(0,0,0,.18);width:100%;font-size:20px}
.btn-cta:active{box-shadow:0 3px 0 #d39e00,0 6px 14px rgba(0,0,0,.18);transform:translateY(4px)}
.btn-ghost{background:#fff;color:var(--sky2);border:2px solid var(--line)}
.btn-gold{background:linear-gradient(180deg,var(--gold2),var(--gold));color:#3a2b00;box-shadow:0 5px 0 #d39e00}
.note{font-size:12.5px;color:var(--mut)}
.center{text-align:center}

/* hero */
.hero{margin:12px 0 6px;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:#1B61C9}
.hero img{width:100%}
.lead{margin:14px 4px 2px;text-align:center}
.lead h1{font-size:21px;margin:0 0 6px;color:#0f2f5e}
.lead p{margin:0;color:#234;font-size:14.5px}
.badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px 0}
.badge{background:#fff;border-radius:999px;padding:6px 14px;font-family:var(--round);font-weight:900;
  font-size:13px;color:var(--sky2);box-shadow:0 4px 10px rgba(22,45,90,.12)}

.panel{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 16px;margin:14px 0}

/* quiz */
#quiz{display:none}
.prog{display:flex;align-items:center;gap:10px;margin:2px 0 12px}
.prog .bar{flex:1;height:10px;border-radius:999px;background:#dfeaff;overflow:hidden}
.prog .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));transition:width .35s ease}
.prog .n{font-family:var(--disp);font-weight:900;color:var(--sky2);font-size:14px;white-space:nowrap}
.qtext{font-family:var(--round);font-weight:900;font-size:19px;margin:4px 2px 14px;color:#10294e}
.opts{display:grid;gap:11px}
.opt{display:flex;gap:12px;align-items:center;text-align:left;background:#fff;border:2px solid var(--line);
  border-radius:14px;padding:14px 14px;font-size:15.5px;font-weight:700;color:var(--ink);cursor:pointer;
  font-family:var(--sans);transition:border-color .12s,background .12s,transform .1s}
.opt:hover{border-color:var(--sky)}
.opt:active{transform:scale(.99)}
.opt .dot{width:26px;height:26px;border-radius:50%;flex:0 0 26px;background:#eef4ff;border:2px solid #cfe0fb}
.backrow{margin-top:14px;text-align:center}
.linkback{background:none;border:0;color:var(--mut);font-size:13.5px;cursor:pointer;text-decoration:underline}
.quiz-top{text-align:center;margin:0 0 10px}
.quiz-kicker{display:inline-block;background:#eaf3ff;color:var(--sky2);font-family:var(--round);font-weight:900;
  font-size:12.5px;padding:5px 14px;border-radius:999px}

/* result */
#result{display:none}
.rcard{border-radius:24px;overflow:hidden;box-shadow:0 16px 40px rgba(22,45,90,.22);background:#fff;
  border:1px solid rgba(255,255,255,.6)}
.rhead{padding:22px 18px 24px;color:#fff;position:relative;text-align:center;overflow:hidden}
.rhead::before{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 80% at 50% -20%, rgba(255,255,255,.42), rgba(255,255,255,0) 60%);
  pointer-events:none}
.confetti{position:absolute;top:12px;left:0;right:0;padding:0 46px;box-sizing:border-box;height:18px;
  pointer-events:none;font-size:13px;letter-spacing:6px;opacity:.85;white-space:nowrap;overflow:hidden;text-align:center}
.r-kicker{position:relative;font-family:var(--round);font-weight:900;font-size:13px;letter-spacing:.04em;
  background:rgba(255,255,255,.22);display:inline-block;padding:4px 14px;border-radius:999px;margin:10px 0 6px}
/* ジャージ（背番号） */
.jersey{position:relative;width:160px;height:160px;margin:2px auto 4px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.22))}
.jersey svg{width:100%;height:100%;display:block}
.rname{position:relative;font-family:var(--round);font-weight:900;font-size:24px;margin:6px 0 4px}
.rname .pill{display:inline-block;background:rgba(255,255,255,.9);color:#16233a;border-radius:999px;
  padding:3px 16px;box-shadow:0 4px 10px rgba(0,0,0,.15)}
.rcatch{position:relative;margin:8px auto 0;font-size:14.5px;opacity:.97;max-width:30em}
.rbody{padding:18px 16px 20px}
.rblock{margin:0 0 14px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--accent,#2E7BE6);
  border-radius:14px;padding:13px 14px}
.rblock h3{font-size:15.5px;margin:0 0 6px;display:flex;align-items:center;gap:7px;color:#13294c}
.rblock p{margin:0;font-size:14.5px}
.rblock ul{margin:0;padding-left:1.15em}
.rblock li{font-size:14.5px;margin:4px 0}
.match{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#f7faff,#eef4ff);
  border-radius:14px;padding:12px 14px;margin-top:4px}
.match .badge-num{flex:0 0 auto;width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-weight:900;font-size:26px;color:#fff;box-shadow:0 5px 12px rgba(0,0,0,.18)}
.match .mtxt b{font-family:var(--round);font-size:16px}
.match .mtxt p{margin:4px 0 0;font-size:13.5px;color:#33425e}
.players .pchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.pchip{background:#fff;border:1.5px solid var(--accent,#2E7BE6);color:var(--accent,#2E7BE6);
  border-radius:999px;padding:5px 12px;font-size:13px;font-weight:800;font-family:var(--round)}
.pnote{margin:9px 0 0;font-size:11.5px;color:var(--mut)}
.pimp{margin:10px 0 0;font-size:13px;color:#33425e;background:rgba(46,123,230,.06);
  border-radius:10px;padding:9px 11px;border:1px dashed var(--accent,#2E7BE6)}
/* パラメータカード */
.pcard{background:linear-gradient(180deg,#fbfdff,#f3f8ff)}
.params{display:grid;gap:9px;margin-top:2px}
.prow{display:grid;grid-template-columns:104px 1fr 30px;align-items:center;gap:8px;font-size:13px;font-weight:800}
.plab{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#3a4a66}
.ptrack{height:13px;border-radius:999px;background:#e7eef8;overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.06)}
.ptrack i{display:block;height:100%;border-radius:999px;transition:width .5s ease}
.pval{font-family:var(--disp);font-weight:900;text-align:right;color:#13294c;font-size:13px}
/* シェア／再診断ボタン */
.share-block{background:linear-gradient(180deg,#fff,#f7f5ff)}
.actions .btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;text-decoration:none;font-size:16px}
.actions .btn svg{width:19px;height:19px;fill:currentColor}
.btn-x,.btn-th{background:#000;color:#fff}
.btn-x:active,.btn-th:active{transform:translateY(1px)}
@media (max-width:380px){ .prow{grid-template-columns:88px 1fr 26px} }
.sharebox{background:#0f1f3a;color:#dce8ff;border-radius:14px;padding:13px;font-size:13px;white-space:pre-wrap;word-break:break-word}
.actions{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.copied{color:var(--g);font-weight:900;font-size:13px;text-align:center;height:16px;opacity:0;transition:opacity .2s}
.copied.on{opacity:1}
.rdisc{font-size:11.5px;color:var(--mut);text-align:center;margin:12px 2px 0}
.r-again{text-align:center;margin:14px 2px 0;font-family:var(--round);font-weight:900;color:var(--sky2)}

/* color themes (rhead bg + accent) */
.c-y{--accent:#E0A100} .c-y .rhead{background:linear-gradient(160deg,#FFD24A,#F2A705)} .c-y .rblock h3{color:#8a5d00}
.c-r{--accent:#E8324A} .c-r .rhead{background:linear-gradient(160deg,#FF5A6E,#D8243C)}
.c-b{--accent:#2360c9} .c-b .rhead{background:linear-gradient(160deg,#4f9bf2,#2360c9)}
.c-p{--accent:#7d4fd1} .c-p .rhead{background:linear-gradient(160deg,#a779e6,#7437c6)}
.c-g{--accent:#129a63} .c-g .rhead{background:linear-gradient(160deg,#27c187,#0e8a58)}
.c-n{--accent:#27457E} .c-n .rhead{background:linear-gradient(160deg,#3a63a8,#1f3260)}
.c-k{--accent:#ec4585} .c-k .rhead{background:linear-gradient(160deg,#ff77ab,#e23a7d)}
.c-o{--accent:#f0852c} .c-o .rhead{background:linear-gradient(160deg,#ffae5c,#ec7a1e)}

/* explain */
.exp h2{font-size:18px;margin:0 0 10px;color:#10294e}
.exp h3{font-size:15px;margin:14px 0 4px}
.exp p{font-size:14px;margin:0 0 8px}
.faq{border:1px solid var(--line);border-radius:12px;padding:0 14px;margin:8px 0;background:#fff}
.faq summary{cursor:pointer;font-weight:700;padding:12px 0;font-size:14.5px;color:#13294c}
.faq p{padding:0 0 12px;margin:0;font-size:14px;color:#33425e}

@media (max-width:380px){
  .qtext{font-size:18px}.jersey{width:128px;height:128px}.lead h1{font-size:19px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* common footer fallback (in case external css 404s) */
.tc-common-footer{margin-top:26px;background:#0f1f3a;color:#c7d6ef;padding:22px 14px;border-radius:18px}
.tc-common-footer-inner{max-width:680px;margin:0 auto;text-align:center}
.tc-common-footer-logo{font-family:var(--round);font-weight:900;color:#fff;font-size:18px;margin-bottom:8px}
.tc-common-footer-links{display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:center;margin-bottom:10px}
.tc-common-footer-links a{color:#9fc0ef;text-decoration:none;font-size:13px}
.tc-common-footer p{font-size:12px;margin:6px 0;color:#90a3c6}

.tcs-static{position:relative;z-index:2;max-width:680px;margin:26px auto;padding:0 16px}
  .tcs-card{background:rgba(255,255,255,.94);border:1px solid #2e7dd144;border-radius:18px;padding:20px 18px;margin:18px 0;box-shadow:0 8px 22px rgba(60,40,110,.10)}
  .tcs-card h2{margin:0 0 10px;color:#2b2735;font-size:1.25rem}
  .tcs-card h3{color:#2e7dd1;border-bottom:1px solid #2e7dd144;padding-bottom:6px;margin:24px 0 8px;font-size:1.05rem}
  .tcs-card p,.tcs-card li,.tcs-card dd{line-height:1.92;font-size:.94rem;color:#2b2735;margin:6px 0}
  .tcs-axes{display:grid;gap:12px;margin:14px 0}
  .tcs-axes dt{font-weight:800;color:#2e7dd1;margin-bottom:2px}
  .tcs-axes dd{margin:0;color:#6f687e}
  .tcs-item{border:1px solid #2e7dd144;border-radius:14px;padding:14px 16px;margin:12px 0;background:rgba(255,255,255,.75)}
  .tcs-item h4{margin:0 0 4px;font-size:1.03rem;color:#2b2735;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
  .tcs-sub{font-size:.72rem;font-weight:700;color:#6f687e;letter-spacing:.05em}
  .tcs-catch{font-weight:700;color:#2e7dd1;margin:2px 0 8px}
  .tcs-label{font-weight:700;margin:8px 0 2px;color:#2b2735}
  .tcs-item ul{margin:0;padding-left:1.2em;color:#6f687e}
  .tcs-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;padding:0;list-style:none}
  .tcs-tags li,.tcs-tag{font-size:.74rem;font-weight:700;color:#2e7dd1;border:1px solid currentColor;border-radius:999px;padding:2px 10px}
  .tcs-note{color:#6f687e;font-size:.86rem;border-top:1px dashed #2e7dd144;padding-top:8px;margin-top:10px}
  .tcs-column p{line-height:2}
.tc-diagnosis-shell{position:relative;z-index:2;width:min(680px,calc(100% - 32px));margin:32px auto 64px}
.tc-diagnosis-card{background:#fff;border:1px solid rgba(20,20,40,.12);border-radius:20px;padding:24px 20px;box-shadow:0 16px 40px rgba(20,20,40,.12)}
.tc-diagnosis-progress{height:10px;border-radius:999px;background:rgba(120,120,140,.18);overflow:hidden}.tc-diagnosis-progress>i{display:block;height:100%;width:0;background:var(--accent,#765bd8);transition:width .2s ease}
.tc-diagnosis-count{text-align:right;margin:8px 0 18px;font-weight:700}.tc-diagnosis-question{font-size:clamp(19px,5vw,26px);line-height:1.6;margin:0 0 20px;white-space:pre-line}
.tc-diagnosis-image{display:none;width:100%;max-height:300px;object-fit:cover;border-radius:12px;margin:0 0 18px}.tc-diagnosis-image[src]{display:block}
.tc-diagnosis-answer{display:flex;width:100%;min-height:52px;align-items:center;text-align:left;padding:14px 16px;margin:10px 0;border:1px solid rgba(20,20,40,.16);border-radius:12px;background:#fff;color:inherit;font:inherit;font-weight:700;cursor:pointer}
.tc-diagnosis-answer:hover,.tc-diagnosis-answer:focus-visible{border-color:var(--accent,#765bd8);outline:3px solid color-mix(in srgb,var(--accent,#765bd8) 22%,transparent)}
.tc-diagnosis-back{min-height:44px;margin-top:12px;border:0;background:transparent;color:inherit;text-decoration:underline;cursor:pointer}
.tc-result-card h1{font-size:clamp(25px,7vw,38px);line-height:1.45;margin:8px 0}.tc-result-catch{font-size:18px;font-weight:700}.tc-result-section{margin:20px 0;padding-top:18px;border-top:1px solid rgba(20,20,40,.12)}
.tc-result-section h2{font-size:18px;margin:0 0 8px}.tc-result-section p{white-space:pre-line}.tc-result-section ul{padding-left:1.3em}.tc-result-section li+li{margin-top:6px}
.tc-result-visual{display:block;width:min(220px,70%);height:auto;margin:0 auto 14px}.tc-result-number{display:grid;place-items:center;width:130px;aspect-ratio:1;margin:0 auto 14px;border-radius:50%;background:var(--accent,#765bd8);color:#fff;font-size:44px;font-weight:900}
.tc-result-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.tc-result-actions a,.tc-result-actions button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:10px 16px;border:1px solid rgba(20,20,40,.18);border-radius:999px;background:#fff;color:inherit;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.tc-result-actions .primary{background:#17171d;color:#fff}
@media(max-width:480px){.tc-diagnosis-shell{width:min(100% - 20px,680px);margin-top:20px}.tc-diagnosis-card{padding:20px 16px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.tc-diagnosis-progress>i{transition:none}}
