/* 結婚16タイプ診断 — site styles */
:root{
  --bg:#F7F1E3; --paper:#FCF8EE; --ink:#3A3022; --terra:#C46A4A; --deep:#8E4630;
  --sage:#8FA27A; --muted:#6B5A44; --line:#D2C4A6; --edge:#6B5A44; --blue:#5F7F95; --blue-deep:#3F5A6B;
  --pink:#F6E3D3; --sky:#E3ECEF; --green:#5E7A3E; --green-pale:#E6EEDB;
  --mincho:'Zen Old Mincho',serif;
  --sans:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Sans','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;
  --col:480px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.8;overflow-wrap:anywhere}
img{max-width:100%}
a{color:var(--terra)}
button{font-family:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mincho{font-family:var(--mincho);font-weight:700}
.wrap{max-width:var(--col);margin:0 auto}
main{display:block;padding-bottom:8px}

/* ---------- header ---------- */
.hd{border-bottom:1.5px dashed #8A7A62;background:var(--bg);position:relative;z-index:20}
.hd-in{max-width:960px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink)}
.brand svg{flex:0 0 auto}
.brand b{display:block;font-family:var(--mincho);font-size:16px;letter-spacing:.03em;line-height:1.15}
.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:.22em;color:var(--deep);line-height:1.4}
.nav{display:flex;gap:18px;font-size:13px;font-weight:500}
.nav a{color:var(--ink);text-decoration:none;white-space:nowrap}
.nav a:hover{color:var(--terra)}
.nav a[aria-current="page"]{color:var(--terra);font-weight:700}
.menu-btn{display:none;background:none;border:0;padding:8px;margin:-8px -6px -8px 0;cursor:pointer}
@media (max-width:760px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--paper);border-bottom:1.5px solid var(--edge);padding:6px 0;box-shadow:0 8px 16px rgba(58,48,34,.08)}
  .nav.open{display:flex}
  .nav a{padding:12px 22px;font-size:15px;border-top:1px dashed var(--line)}
  .nav a:first-child{border-top:0}
}

/* ---------- sections & cards ---------- */
.sec{padding:22px 20px 4px}
.card{background:var(--paper);border:1.5px solid var(--edge);border-radius:255px 18px 225px 18px/18px 225px 18px 255px;padding:22px 18px;display:flex;flex-direction:column;gap:14px}
.h2{margin:0;font-family:var(--mincho);font-size:19px;font-weight:700;text-align:center;line-height:1.5}
.h2::before{content:"❦ ";color:var(--sage)}
.h2::after{content:" ❦";color:var(--sage)}
.lead-p{margin:0;font-size:15px;line-height:1.95}
.note{margin:0;font-size:12px;line-height:1.7;opacity:.85}
.center{text-align:center}
.small{font-size:12px}
.muted{color:var(--muted)}
.more{align-self:flex-end;font-size:13px;font-weight:700;color:var(--terra);text-decoration:none}
.more:hover{text-decoration:underline}
.dash{border-top:1.5px dashed var(--line);padding-top:12px}
.bul{display:flex;gap:8px;font-size:13px;line-height:1.75}
.bul::before{content:"●";color:var(--terra);flex:0 0 auto}
.hero p,.t-lead h2,.catch{text-wrap:balance}
.hero{padding:28px 24px 4px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.hero h1{margin:0;font-family:var(--mincho);font-weight:700;font-size:31px;letter-spacing:.04em;line-height:1.45}
.kicker{margin:0;font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--deep)}
.page-h{padding:28px 24px 4px;display:flex;flex-direction:column;gap:12px}
.page-h h1{margin:0;font-family:var(--mincho);font-weight:700;font-size:27px;line-height:1.45}
.pills{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.pills span{border:1px dashed #8A7A62;border-radius:999px;padding:3px 10px}

/* ---------- buttons ---------- */
.btns{padding:14px 24px 4px;display:flex;flex-direction:column;gap:12px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:8px 18px;font-size:16px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer;
  background:var(--terra);color:var(--paper);border:1.5px solid var(--ink);border-radius:28px 24px 30px 22px/24px 30px 22px 28px;line-height:1.4;width:100%}
.btn:hover{filter:brightness(1.04)}
.btn:active{transform:translateY(1px)}
.btn.sub{min-height:50px;font-size:15px;background:var(--paper);color:var(--ink);border-radius:24px 30px 22px 28px/30px 22px 28px 24px}
.btn.sub:hover{background:#fff}
.btn.line{background:#06C755;color:#fff;border-color:#06C755}
.btn[disabled]{opacity:.45;cursor:default;filter:none;transform:none}
.btn-row{display:flex;gap:12px}
.btn-row .btn.sub{flex:0 0 110px}
.btn-row .btn:not(.sub){flex:1 1 auto}

/* ---------- characters ---------- */
.pt{border-radius:50%;overflow:hidden;border:1.5px solid var(--edge);background:var(--bg);flex:0 0 auto;position:relative;display:block}
.pt img,.art img{position:absolute;max-width:none;display:block}
.art{overflow:hidden;position:relative;flex:0 0 auto}
.res{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--ink);text-align:center}
.res .nm{font-size:12px;line-height:1.4}
.res .cd{font-size:10px;letter-spacing:.1em;color:var(--terra);line-height:1.2}
.res-row{display:flex;justify-content:space-between;gap:4px}
.res-row .res{width:25%}

/* ---------- type page ---------- */
.t-hero{position:relative;overflow:hidden;height:400px;margin:0 auto;max-width:var(--col)}
.t-hero .art{position:absolute;left:50%;top:-6px;transform:translateX(-50%)}
.t-hero .ttl{position:absolute;left:0;right:0;top:10px;display:flex;justify-content:center;align-items:baseline;gap:10px}
.t-hero h1{margin:0;font-family:var(--mincho);font-weight:700;font-size:36px;letter-spacing:.08em;line-height:1.3;text-shadow:0 0 6px var(--bg),0 0 12px var(--bg)}
.t-hero .code{font-family:var(--mincho);font-weight:700;font-size:17px;letter-spacing:.16em;color:var(--terra);text-shadow:0 0 6px var(--bg)}
.t-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:44px;background:linear-gradient(rgba(247,241,227,0),var(--bg))}
.t-lead{padding:4px 24px 4px;display:flex;flex-direction:column;gap:12px}
.t-lead h2{margin:0;font-family:var(--mincho);font-weight:700;font-size:20px;line-height:1.6;text-align:center}
.strong{display:flex;gap:10px;align-items:baseline;font-size:15px;line-height:1.75}
.strong::before{content:"●";color:var(--terra);font-weight:700;flex:0 0 auto}
.scene{display:flex;flex-direction:column;gap:4px;padding-top:4px}
.scene b{font-size:15px;color:var(--deep)}
.scene span{font-size:14px;line-height:1.85}
.axis-row{display:flex;align-items:center;gap:12px;border-top:1.5px dashed var(--line);padding-top:10px}
.axis-row .lt{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--ink);background:var(--pink);display:flex;align-items:center;justify-content:center;font-family:var(--mincho);font-weight:700;font-size:14px;color:var(--deep)}
.axis-row .an{display:block;font-size:11px;color:var(--muted);line-height:1.4}
.axis-row b{font-size:15px;line-height:1.5}
.axis-row b small{font-weight:400;font-size:13px;margin-left:8px;opacity:.85}
.chip-d{align-self:center;font-size:12px;font-weight:700;color:var(--deep);border:1px solid #B8A88A;border-radius:999px;padding:3px 12px;background:var(--paper);text-decoration:none}

/* ---------- lists of types ---------- */
.tgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tcard{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--ink);background:var(--paper);border:1.5px solid var(--edge);border-radius:14px 10px 16px 8px/10px 16px 8px 14px;padding:12px 8px;text-align:center}
.tcard:hover{background:#fff}
.tcard b{font-family:var(--mincho);font-size:16px}
.tcard .cd{font-size:11px;letter-spacing:.12em;color:var(--terra);font-weight:700}
.tcard .ld{font-size:11.5px;line-height:1.6;opacity:.9}
.dist-h{display:flex;flex-direction:column;gap:1px}
.dist-h b{font-family:var(--mincho);font-size:16px;color:var(--deep)}
.dist-h span{font-size:11px;color:var(--muted)}

/* ---------- town / maps ---------- */
.map{position:relative;display:block;border:1.5px solid var(--edge);border-radius:14px;overflow:hidden;background:#DCE9EC}
.map img{display:block;width:100%;height:auto}
.map a.hot{position:absolute;border-radius:12px}
.map a.hot:focus-visible{outline:3px solid var(--terra);outline-offset:-3px}
.mx{display:grid;grid-template-columns:44px 1fr 1fr;gap:6px;font-size:12px;text-align:center;align-items:stretch}
.mx b{align-self:center}
.mx a,.mx div{border:1.5px solid var(--ink);border-radius:10px;padding:10px 4px;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;gap:2px;line-height:1.45}
.mx a b{font-size:13px}
.mx a span{font-size:10.5px}
.thumb{display:block;border:1.5px solid var(--edge);border-radius:12px;overflow:hidden}
.thumb img{display:block;width:100%;height:auto}
.dist-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dist-links a{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);text-align:center}
.dist-links b{font-size:13px}
.dist-links span{font-size:10.5px;line-height:1.5;opacity:.85}
.poles2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.poles2 div{border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:3px}
.poles2 b{font-size:15px}
.poles2 span{font-size:12px;line-height:1.6}
.poles2 .l{background:var(--pink)} .poles2 .l b{color:var(--deep)}
.poles2 .r{background:var(--sky)} .poles2 .r b{color:var(--blue-deep)}
.res4{display:grid;grid-template-columns:auto 1fr 1fr;gap:8px;align-items:stretch}
.res4>b{font-size:11.5px;align-self:center;text-align:center;line-height:1.5}
.res4>b small{display:block;font-weight:400;font-size:10px;opacity:.8}
.res4 .rl{writing-mode:vertical-rl;font-size:11.5px;letter-spacing:.06em;align-self:center;justify-self:center}
.res4 a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:10px 6px;text-align:center}
.res4 a b{font-family:var(--mincho);font-size:15px}
.res4 a .cd{font-size:10px;letter-spacing:.12em;color:var(--terra)}
.res4 a .ld{font-size:11px;line-height:1.55}
.res4 a .go{font-size:11px;font-weight:700;color:var(--terra)}

/* ---------- pair pages ---------- */
.duo{padding:18px 12px 4px;display:flex;flex-direction:column;align-items:center;gap:10px}
.duo-in{display:flex;align-items:center;justify-content:center;gap:4px}
.duo .one{display:flex;flex-direction:column;align-items:center;gap:3px;width:136px;text-align:center}
.duo .one b{font-family:var(--mincho);font-size:18px;line-height:1.4}
.duo .one .cd{font-size:11px;letter-spacing:.12em;color:var(--terra);font-weight:700}
.duo .one .who{font-size:11px;color:var(--muted)}
.duo .x{font-family:var(--mincho);font-weight:700;font-size:26px;color:var(--terra);margin-top:-50px}
.ribbon{position:relative;display:flex;justify-content:center;align-items:center;height:48px;width:340px;max-width:100%}
.ribbon svg{position:absolute;inset:0;width:100%;height:100%}
.ribbon b{position:relative;font-family:var(--mincho);font-size:17px;color:var(--paper);letter-spacing:.04em}
.catch{margin:2px 24px 0;text-align:center;font-family:var(--mincho);font-weight:700;font-size:16px;line-height:1.6;color:var(--deep)}
.cmp{display:grid;grid-template-columns:88px 1fr 1fr 44px;align-items:center;gap:6px}
.cmp.hd2{font-size:12px;font-weight:700;text-align:center}
.cmp.row{border-top:1.5px dashed var(--line);padding-top:10px}
.cmp .an{font-size:12px;opacity:.8;line-height:1.4}
.chip{display:inline-block;font-size:12px;font-weight:700;border:1.5px solid #4A3B2A;border-radius:999px;padding:2px 10px;background:var(--pink)}
.cmp .same{font-size:12px;text-align:center;color:var(--terra);font-weight:700}
.cmp .diff{font-size:12px;text-align:center;color:var(--blue);font-weight:700}
.item{display:flex;flex-direction:column;gap:4px}
.item b{font-size:15px;line-height:1.6}
.item span.tx{font-size:14px;line-height:1.85}
.good b{color:var(--deep)} .care b{color:var(--blue)}
.badge{align-self:flex-start;font-size:11px;font-weight:700;border-radius:999px;padding:1px 9px;line-height:1.7}
.badge.blind{color:var(--blue);background:var(--sky)}
.badge.grow{color:var(--green);background:var(--green-pale)}
.badge.comp{color:var(--deep);background:var(--pink)}
.care .item.grow b{color:var(--green)}
.qlist{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;counter-reset:q}
.qlist li{display:flex;gap:10px;align-items:baseline;font-size:15px;line-height:1.7;counter-increment:q}
.qlist li::before{content:counter(q);font-family:var(--mincho);font-weight:700;font-size:16px;color:var(--terra);flex:0 0 auto}
.cta{background:var(--pink);border:1.5px solid #4A3B2A;border-radius:16px 12px 18px 10px/12px 18px 10px 16px;padding:16px;display:flex;flex-direction:column;gap:10px;text-align:center}
.cta b.t{font-family:var(--mincho);font-size:17px}
.cta span{font-size:13px;line-height:1.75}
.pickers{display:flex;align-items:center;gap:8px}
.pickers select{flex:1;min-width:0;height:46px;border:1.5px solid var(--ink);border-radius:10px;background:var(--paper);padding:0 10px;font-family:inherit;font-size:14px;color:var(--ink)}
.disc{margin:18px 24px 28px;font-size:11px;line-height:1.7;text-align:center;opacity:.75}
.lock{margin:14px 20px 0;display:flex;gap:8px;align-items:center;justify-content:center;font-size:11px;color:var(--muted);text-align:center}

/* bars (result + private pair) */
.bar-l{display:flex;justify-content:space-between;align-items:center}
.bar-l .an{font-size:12px;opacity:.8}
.half{font-size:11px;font-weight:700;color:var(--blue);border:1px solid var(--blue);border-radius:999px;padding:0 8px;line-height:1.7}
.bar-v{display:flex;justify-content:space-between;align-items:baseline;font-size:15px}
.bar-v .on{font-weight:700;color:var(--deep)}
.bar-v .off{opacity:.7}
.bar-v em{font-style:normal;font-size:18px}
.bar{display:flex;height:12px;border:1.5px solid var(--ink);border-radius:8px;overflow:hidden}
.bar i{display:block;background:#EE9A86}
.bar i+i{background:#DCE6EB;border-left:1.5px solid var(--ink)}
.tip{background:var(--pink);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.75}
.pbar{position:relative;height:12px;margin:28px 0 26px;border:1.5px solid #4A3B2A;border-radius:8px;background:linear-gradient(90deg,#F3D9CF,#FBF4E2 50%,#DCE6EB)}
.pbar::before{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;border-left:1px dashed #8A7A62}
.pin{position:absolute;margin-left:-11px;width:22px;height:22px;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--ink)}
.pin i{font-style:normal;display:inline-block}
.pin.a{top:-27px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#EE9A4E}
.pin.a i{transform:rotate(45deg)}
.pin.b{top:13px;border-radius:0 50% 50% 50%;transform:rotate(45deg);background:#9FB7C4}
.pin.b i{transform:rotate(-45deg)}
.legend{display:flex;gap:14px;font-size:11px;opacity:.85}
.legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid var(--ink);margin-right:4px;vertical-align:-1px}
.legend .a::before{background:#EE9A4E} .legend .b::before{background:#9FB7C4}
.tag{font-weight:700;color:var(--terra);font-size:12px}
.split{display:flex;flex-direction:column;gap:8px}
.split .qq{font-size:14px;line-height:1.7;font-weight:700}
.split dl{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:13px;margin:0}
.split dt{font-weight:700} .split dd{margin:0}
.split dt.a{color:var(--terra)} .split dt.b{color:var(--blue)}
.talk{background:var(--pink);border-radius:10px;padding:8px 12px;font-size:13px;line-height:1.7}

/* ---------- quiz ---------- */
.bx{word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}
.scale-head{display:flex;justify-content:space-between;padding:0 6px 2px;font-weight:700;font-size:15px}
.scale-sel{margin:6px 0 0;min-height:1.6em;text-align:center;font-size:13px;font-weight:700}
.prog{padding:14px 20px 0;display:flex;flex-direction:column;gap:6px}
.prog .pl{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.prog .pb{height:8px;border:1.5px solid var(--ink);border-radius:6px;overflow:hidden;background:var(--paper)}
.prog .pb i{display:block;height:100%;background:#E8C47A;transition:width .25s}
.qcard{padding:30px 20px 26px;gap:14px}
.qno{margin:0;font-family:var(--mincho);font-weight:700;font-size:14px;color:var(--sage);text-align:center}
.qtx{margin:0;font-family:var(--mincho);font-weight:700;font-size:19px;line-height:1.75;text-align:center}
.scale{display:grid;gap:2px;padding:6px 0 0;margin:0;border:0}
.scale label{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;padding:4px 0;position:relative}
.scale input{position:absolute;opacity:0;pointer-events:none}
.scale .dot{height:52px;display:flex;align-items:center}
.scale .dot i{display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid var(--c);background:var(--paper);color:var(--paper);font-size:15px;font-weight:700;font-style:normal;transition:transform .12s}
.scale label:hover .dot i{transform:scale(1.08)}
.scale input:checked+.dot i{background:var(--c)}
.scale input:checked+.dot i::after{content:"✓"}
.scale input:focus-visible+.dot i{outline:2px solid var(--ink);outline-offset:3px}
.scale .lb{font-size:11px;line-height:1.4;text-align:center;opacity:.85}
.scale input:checked~.lb{font-weight:700;color:var(--deep);opacity:1}
.ab{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}
.ab .opt{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 12px;background:var(--paper);border:1.5px solid var(--edge);border-radius:18px 22px 16px 24px/22px 16px 24px 18px;text-align:center}
.ab .opt span{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--mincho);font-weight:700;font-size:16px}
.ab .opt b{font-size:15px;line-height:1.6}
.ab .or{font-family:var(--mincho);font-weight:700;font-size:14px;color:var(--muted)}
.hint{margin:16px 20px 0;background:#E8EFE0;border:1.5px dashed var(--sage);border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.7;text-align:center}
.mascot{margin:16px 20px 24px;display:flex;align-items:center;gap:12px}
.mascot p{margin:0;font-size:13px;line-height:1.7;background:var(--paper);border:1.5px solid var(--edge);border-radius:16px 16px 16px 4px;padding:10px 14px}
.form-g{display:flex;flex-direction:column;gap:8px;border:0;margin:0;padding:0;min-width:0}
.form-g legend{font-size:14px;font-weight:700;padding:0;margin-bottom:8px}
.form-g legend small,.req{font-size:11px;font-weight:400;color:var(--terra);margin-left:6px}
.opt-tag{font-size:11px;font-weight:400;color:var(--muted);margin-left:6px}
.choices{display:grid;gap:8px}
.choices label{position:relative;display:block;cursor:pointer}
.choices input{position:absolute;opacity:0;pointer-events:none}
.choices span{display:block;white-space:nowrap;font-size:13px;line-height:1.4;padding:11px 4px;text-align:center;background:var(--paper);border:1.5px solid #B8A88A;border-radius:14px 10px 16px 8px/10px 16px 8px 14px}
/* selected state must not change the box size or text width (no border-width / font-weight change) */
.choices input:checked+span{background:var(--pink);border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);text-shadow:.3px 0 0 currentColor,-.3px 0 0 currentColor}
.choices input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}
.c1{grid-template-columns:1fr}.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.meta .card{gap:14px;padding:18px 16px}
.meta .form-g legend{margin-bottom:6px}
.meta .choices{gap:6px}
.meta .choices span{padding:8px 4px}
.err{color:#B0402A;font-size:12px;font-weight:700;margin:0}
.fade-in{animation:fi .25s ease}
@keyframes fi{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- feedback & share ---------- */
.rate{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.rate button{background:var(--paper);border:1.5px solid #B8A88A;border-radius:12px;padding:10px 2px;font-size:12px;min-height:48px;line-height:1.4;cursor:pointer}
.rate button[aria-pressed="true"]{background:var(--pink);border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);text-shadow:.3px 0 0 currentColor,-.3px 0 0 currentColor}
.rate-ends{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.thanks{margin:0;font-size:13px;text-align:center;color:var(--green);font-weight:700}
.line-slot{display:flex;flex-direction:column;gap:10px;background:#EAF7EF;border:1.5px solid #06C755;border-radius:16px;padding:16px;text-align:center}
.line-slot img{display:block;width:100%;height:auto;border-radius:10px}
.line-slot b{font-size:15px;line-height:1.6}
.line-slot span{font-size:13px;line-height:1.7}
.sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:rgba(58,48,34,.45)}
.sheet[hidden]{display:none}
.sheet .in{width:100%;max-width:var(--col);background:var(--paper);border-radius:22px 22px 0 0;padding:20px 20px 28px;display:flex;flex-direction:column;gap:12px}
.sheet h3{margin:0;font-family:var(--mincho);font-size:17px;text-align:center}
.sheet .url{font-size:12px;word-break:break-all;background:var(--bg);border:1px dashed var(--line);border-radius:8px;padding:8px 10px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:999px;font-size:13px;z-index:60}

/* ---------- prose (legal) ---------- */
.prose{padding:8px 24px 8px;font-size:14px;line-height:1.95}
.prose h2{font-family:var(--mincho);font-size:18px;margin:28px 0 8px;line-height:1.5}
.prose h3{font-size:15px;margin:20px 0 6px}
.prose p{margin:0 0 12px}
.prose ul,.prose ol{margin:0 0 12px;padding-left:1.4em}
.prose li{margin:2px 0}
.prose table{width:100%;border-collapse:collapse;font-size:13px;margin:0 0 14px;background:var(--paper)}
.prose th,.prose td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top;line-height:1.7}
.prose th{background:#F1E8D6;font-weight:700}
.prose .upd{font-size:12px;color:var(--muted)}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:14px;font-weight:700}
.field input,.field select,.field textarea{font-family:inherit;font-size:15px;color:var(--ink);background:var(--paper);border:1.5px solid #B8A88A;border-radius:10px;padding:10px 12px;width:100%}
.field textarea{min-height:160px;resize:vertical;line-height:1.7}
.field .hp{position:absolute;left:-9999px}

/* ---------- footer ---------- */
.ft{margin-top:30px;background:var(--ink);color:var(--paper)}
.ft-in{max-width:var(--col);margin:0 auto;padding:26px 22px 30px;display:flex;flex-direction:column;gap:18px}
.ft-brand{display:flex;align-items:center;gap:10px}
.ft-brand b{display:block;font-family:var(--mincho);font-size:18px}
.ft-brand small{display:block;font-size:10px;letter-spacing:.22em;color:#E8B9A3}
.ft-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;font-size:13px}
.ft-nav a{color:var(--paper);text-decoration:none}
.ft-line{display:flex;align-items:center;gap:10px;border:1px solid var(--edge);border-radius:12px;padding:10px 12px;color:var(--paper);text-decoration:none}
.ft-line i{width:28px;height:28px;border-radius:8px;background:#06C755;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;font-style:normal;flex:0 0 auto}
.ft-line span{font-size:12px;line-height:1.5}
.ft-line em{margin-left:auto;font-style:normal;font-size:12px;color:#E8B9A3;white-space:nowrap}
.ft-legal{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px}
.ft-legal a{color:#CFC3AC}
.ft p{margin:0;font-size:10.5px;line-height:1.7;color:#B9AA8E}

@media (min-width:761px){
  .hero h1{font-size:36px}
}
