/* ── 量子抽選 ──────────────────────────────────────────────
   これは計器ではなく「証書」。読む人は物理の人ではなく、
   プレゼント企画をやる人や、席順を決めたい人。
   だから本体は温かく、証明の部分だけを冷たく精密にする。 */
:root{
  --paper:#FBFAF7; --card:#FFFFFF; --sunk:#F1EFEA;
  --ink:#14161F; --muted:#4E5364; --faint:#8A8F9F; --line:#E0DDD6;
  --indigo:#2B3A8C; --indigo-soft:#E7EAF7;
  --gold:#9A711A; --gold-soft:#F6EFDC;
  --on-indigo:#FFFFFF;
  --disp:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Noto Sans JP",sans-serif;
  --body:"Noto Sans JP",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0B0D14; --card:#141824; --sunk:#101422;
    --ink:#E8E9F0; --muted:#9BA2B8; --faint:#6B7288; --line:#232838;
    --indigo:#8CA0FF; --indigo-soft:#161B33;
    --gold:#E3B95C; --gold-soft:#241D0E;
    --on-indigo:#0B0F1E;
  }
}
:root[data-theme="dark"]{
  --paper:#0B0D14; --card:#141824; --sunk:#101422;
  --ink:#E8E9F0; --muted:#9BA2B8; --faint:#6B7288; --line:#232838;
  --indigo:#8CA0FF; --indigo-soft:#161B33;
  --gold:#E3B95C; --gold-soft:#241D0E;
  --on-indigo:#0B0F1E;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased;}
.wrap{max-width:760px;margin:0 auto;padding:0 22px 90px;}
a{color:var(--indigo);}
h1,h2,h3{font-family:var(--disp);line-height:1.35;text-wrap:balance;}
h1{font-weight:700;font-size:clamp(28px,5.6vw,46px);margin:0 0 16px;}
h2{font-weight:700;font-size:clamp(19px,3.2vw,25px);margin:58px 0 12px;}
h3{font-weight:700;font-size:17px;margin:30px 0 6px;}
p{margin:0 0 15px;max-width:64ch;}
b,strong{font-weight:700;}

.top{padding:40px 0 6px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.back{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--faint);text-decoration:none;display:inline-flex;align-items:center;min-height:44px;}
.back:hover{color:var(--indigo);}
.langsw{margin-left:auto;display:flex;gap:2px;}
.langsw a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;padding:0 13px;
  min-height:44px;display:inline-flex;align-items:center;text-decoration:none;
  color:var(--faint);border:1px solid var(--line);border-radius:8px;}
.langsw a[aria-current]{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin:22px 0 14px;}
.lede{font-size:17.5px;color:var(--muted);max-width:56ch;}
.lede b{color:var(--ink);}

/* ── 引く道具 ── */
.tool{margin:34px 0 0;padding:24px;border:1px solid var(--line);
  border-radius:16px;background:var(--card);}
.f{margin-bottom:20px;}
.f label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);margin-bottom:8px;}
.f .hint{font-size:12.5px;color:var(--faint);margin:6px 0 0;line-height:1.7;}
input[type=text],textarea{width:100%;font:inherit;font-size:15.5px;color:var(--ink);
  background:var(--sunk);border:1px solid var(--line);border-radius:11px;padding:13px 15px;}
input[type=text]{min-height:48px;}
textarea{min-height:170px;resize:vertical;line-height:1.85;}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--indigo);outline-offset:1px;}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.num{width:88px;min-height:48px;font:600 16px/1 var(--body);color:var(--ink);
  background:var(--sunk);border:1px solid var(--line);border-radius:11px;padding:0 14px;
  text-align:center;font-variant-numeric:tabular-nums;}
.count{font-family:var(--mono);font-size:12.5px;color:var(--faint);}
.go{width:100%;min-height:58px;margin-top:4px;border:0;border-radius:13px;cursor:pointer;
  background:var(--indigo);color:var(--on-indigo);font:700 17px/1 var(--disp);letter-spacing:.03em;}
.go:disabled{opacity:.55;cursor:progress;}
.go:focus-visible{outline:2px solid var(--ink);outline-offset:3px;}
.err{color:#B3261E;font-size:14px;margin:12px 0 0;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .err{color:#FFB4A9;}}
:root[data-theme="dark"] .err{color:#FFB4A9;}

/* ── 証書 ── */
.cert{margin:30px 0 0;border:1px solid var(--gold);border-radius:18px;
  background:var(--card);overflow:hidden;}
.cert-h{padding:26px 26px 0;text-align:center;}
.cert-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold);}
.cert-t{font-family:var(--disp);font-weight:700;font-size:19px;margin:8px 0 0;}
.wins{display:grid;gap:10px;padding:22px 26px 26px;}
.win{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:13px;
  background:var(--gold-soft);border:1px solid var(--gold);}
.win-n{font-family:var(--mono);font-size:12px;color:var(--gold);min-width:2.2em;
  font-variant-numeric:tabular-nums;}
.win-name{font-family:var(--disp);font-weight:700;font-size:clamp(19px,4.4vw,26px);
  word-break:break-word;min-width:0;}
.share{display:flex;gap:9px;flex-wrap:wrap;padding:0 26px 24px;}
.sbtn{min-height:46px;padding:0 18px;border-radius:11px;cursor:pointer;
  border:1px solid var(--line);background:var(--sunk);color:var(--muted);
  font:600 14px/1 var(--body);display:inline-flex;align-items:center;gap:7px;}
.sbtn:hover{border-color:var(--indigo);color:var(--indigo);}
.sbtn:focus-visible{outline:2px solid var(--indigo);outline-offset:2px;}
.sbtn.primary{background:var(--indigo);border-color:var(--indigo);color:var(--on-indigo);}

/* ── 証明の中身。ここだけ冷たく、精密に ── */
.proof{border-top:1px solid var(--line);background:var(--sunk);padding:20px 26px 24px;}
.proof h4{margin:0 0 12px;font:600 10.5px/1 var(--mono);letter-spacing:.2em;
  text-transform:uppercase;color:var(--faint);}
.pr{display:grid;grid-template-columns:8.5em 1fr;gap:4px 14px;padding:8px 0;
  border-bottom:1px solid var(--line);font-size:13px;}
.pr:last-child{border-bottom:0;}
.pr dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--faint);
  text-transform:uppercase;padding-top:3px;}
.pr dd{margin:0;font-family:var(--mono);font-size:12px;word-break:break-all;color:var(--muted);}
.pr dd b{color:var(--ink);}
.pr dd .ibm{color:var(--indigo);font-weight:600;}
@media (max-width:560px){.pr{grid-template-columns:1fr;gap:2px;}}
.bits{font-family:var(--mono);font-size:10.5px;line-height:1.7;word-break:break-all;
  color:var(--faint);max-height:5.6em;overflow:hidden;position:relative;}
.bits.open{max-height:none;}
.bitsmore{background:none;border:0;color:var(--indigo);font:inherit;font-size:12px;
  cursor:pointer;padding:8px 0 0;min-height:44px;}
.ok{color:var(--indigo);font-weight:600;}

.note{border-left:3px solid var(--line);padding:2px 0 2px 18px;color:var(--muted);
  font-size:14.5px;margin:20px 0;}
.note b{color:var(--ink);}
.math{font-family:var(--mono);font-size:13px;background:var(--sunk);border-radius:10px;
  padding:14px 16px;overflow-x:auto;color:var(--ink);margin:14px 0 18px;line-height:1.9;}
footer{margin-top:64px;padding-top:24px;border-top:1px solid var(--line);
  font-size:13px;color:var(--faint);}
footer a{color:var(--muted);}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
