:root{
  --paper:#F4F1EA;
  --paper-2:#EAE5DA;
  --white:#FFFFFF;
  --ink:#16142E;
  --ink-2:#211F45;
  --blue:#3B41E0;
  --magenta:#E11A86;
  --gold:#C9982E;
  --muted:#5A576E;
  --line:#D8D2C6;
  --grad:linear-gradient(100deg,var(--blue),var(--magenta));
  --tint-blue:#EEF0FE;
  --tint-pink:#FDEDF5;
  /* colour roles: brand gradient = identity only / amber = action / blue = information & trust / magenta = emphasis & required */
  --cta:#FFB81C;
  --cta-hover:#FFA70A;
  --marker:rgba(255,184,28,.55);
  --ff-head:"Zen Kaku Gothic New",sans-serif;
  --ff-body:"Noto Sans JP",sans-serif;
  --header-h:60px;
  --shadow:0 18px 40px -28px rgba(22,20,46,.35);
  --pop:4px 4px 0 var(--ink);
  --dots:radial-gradient(rgba(59,65,224,.16) 1.4px,transparent 1.6px) 0 0/14px 14px;
}
@media (min-width:1180px){:root{--header-h:72px;}}

*,*::before,*::after{box-sizing:border-box;}
[hidden]{display:none !important;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--ff-body);font-size:16px;line-height:1.85;
  overflow-x:hidden;overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  line-break:strict;overflow-wrap:break-word;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--blue);text-underline-offset:3px;}
a:hover{color:var(--magenta);}
h1,h2,h3,h4{font-family:var(--ff-head);font-weight:900;margin:0;line-height:1.4;letter-spacing:.02em;}
p{margin:0;}
p,li,dd{text-wrap:pretty;}
ul,ol{margin:0;padding:0;list-style:none;}
b,strong{font-weight:700;}
.em{color:var(--magenta);}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
/* phrase-level line breaking: a phrase wraps as a unit, and still wraps inside if it is wider than the line */
.nw{display:inline-block;max-width:100%;}
section[id],#entry{scroll-margin-top:var(--hf-scroll);}
:focus-visible{outline:3px solid var(--magenta);outline-offset:3px;}

.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 20px;}
@media (min-width:600px){.wrap{padding:0 32px;}}
@media (min-width:1024px){.wrap{padding:0 48px;}}
.sec{padding:clamp(64px,8vw,120px) 0;}
.sec.alt{background:#fff;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:54px;padding:0 26px;border-radius:999px;
  font-family:var(--ff-head);font-weight:900;font-size:17px;letter-spacing:.04em;line-height:1.3;
  text-decoration:none;text-align:center;white-space:nowrap;
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease,background-color .15s;
}
.btn-grad{background:var(--cta);color:var(--ink);border:2px solid var(--ink);box-shadow:var(--pop);}
.btn-grad:hover{color:var(--ink);background:var(--cta-hover);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);}
.btn-grad:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink);}
.btn-grad::after{content:"";width:8px;height:8px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(-45deg);margin-left:2px;}
.btn-sub{background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:var(--pop);}
.btn-sub:hover{color:var(--ink);background:var(--tint-pink);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);}
.btn-sub:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink);}
.btn-line{background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:var(--pop);white-space:normal;}
.btn-line:hover{color:var(--ink);background:var(--tint-blue);}
.cta-pair{display:flex;flex-wrap:wrap;gap:14px 12px;align-items:center;}
.cta-pair .btn{flex:1 1 220px;}
.cta-pair .btn-sub{flex:1 1 160px;}
@media (min-width:600px){.cta-pair .btn{flex:0 0 auto;} .cta-pair .btn-grad{min-width:260px;}}
.cta-stack .btn{flex:1 1 100%;}

.brand{
  font-family:var(--ff-head);font-weight:900;color:var(--ink);text-decoration:none;
  font-size:13px;line-height:1.15;letter-spacing:.08em;min-width:0;margin-right:auto;
  display:flex;flex-direction:column;
}
.brand:hover{color:var(--ink);}
.brand .grad-text{display:block;}
@media (min-width:480px){.brand{flex-direction:row;gap:.35em;font-size:16px;}}
@media (min-width:1180px){.brand{font-size:17px;}}

/* ---------- section heads ---------- */
.eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--ff-head);font-weight:700;font-size:13px;line-height:1.4;letter-spacing:.2em;color:var(--blue);text-transform:uppercase;}
.eyebrow::before{content:"";width:24px;height:3px;border-radius:2px;background:var(--grad);flex-shrink:0;}
.ttl{font-size:clamp(26px,1.7vw + 19px,44px);line-height:1.42;margin-top:12px;}
.ttl-sm{font-size:clamp(22px,1.1vw + 17px,32px);}
.rule{width:56px;height:5px;border-radius:3px;background:var(--grad);margin-top:18px;}
.sec-head{margin-bottom:clamp(32px,4vw,56px);}
.sub-block{margin-top:clamp(64px,8vw,104px);}
.lead{font-size:clamp(16px,.3vw + 15px,18px);line-height:1.9;}
.note{font-size:13px;line-height:1.75;color:var(--muted);margin-top:18px;}

/* ---------- cards / grids ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 22px;box-shadow:var(--shadow);}
.sec.alt .card{background:var(--paper);border-color:transparent;box-shadow:none;}
@media (min-width:900px){.card{padding:30px 28px;}}
.grid{display:grid;gap:16px;}
@media (min-width:640px){.g2{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}}
@media (min-width:640px){.g3{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:960px){.g3{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}}
@media (min-width:640px){.g6{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1024px){.g6{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}}
.card-label{font-family:var(--ff-head);font-weight:700;font-size:13px;letter-spacing:.14em;color:var(--blue);}
.card h3{font-size:20px;line-height:1.45;margin:8px 0 10px;}
.card p{font-size:16px;line-height:1.85;color:var(--muted);}
.card p b{color:var(--ink);}
.num-badge{flex-shrink:0;width:40px;height:40px;border-radius:12px;background:var(--blue);color:#fff;font-family:var(--ff-head);font-weight:900;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;}
.num-badge.outline{background:#fff;color:var(--blue);border:2px solid var(--blue);}
.dotlist{display:grid;gap:10px;}
.dotlist li{position:relative;padding-left:22px;font-size:16px;line-height:1.75;}
.dotlist li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:10px;border-radius:50%;background:var(--blue);}
.tags{display:flex;flex-wrap:wrap;gap:8px;}
.tag{display:inline-flex;align-items:center;min-height:32px;padding:4px 14px;border-radius:999px;border:1.5px solid var(--gold);color:var(--ink);background:#fff;font-family:var(--ff-head);font-weight:700;font-size:14px;line-height:1.4;}
.tag.solid{background:var(--ink);border-color:var(--ink);color:#fff;}
.imgcard{border-radius:18px;overflow:hidden;border:2px solid var(--ink);background:#fff;box-shadow:6px 6px 0 var(--ink);}

/* ---------- hero ---------- */
.runby{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;}
.runby-lbl{font-size:13px;font-weight:700;letter-spacing:.18em;color:var(--muted);}
.runby .x{color:var(--muted);font-size:14px;}
.runby-logos{display:inline-flex;align-items:center;gap:10px;}
.logo-ino{height:18px;width:auto;}
.logo-jn{height:26px;width:auto;background:#fff;padding:4px 8px;border-radius:6px;border:1px solid var(--line);}
@media (min-width:900px){.logo-ino{height:24px;} .logo-jn{height:34px;padding:5px 10px;}}

.hero{position:relative;background:#fff;overflow:hidden;padding:24px 0 40px;isolation:isolate;}
.hero::before{content:"";position:absolute;z-index:-1;right:-10%;top:-20%;width:70%;height:90%;background:var(--dots);
  -webkit-mask:radial-gradient(closest-side,#000,transparent);mask:radial-gradient(closest-side,#000,transparent);}
.hero::after{content:"";position:absolute;z-index:-1;left:-20%;bottom:-30%;width:60%;height:70%;border-radius:50%;background:radial-gradient(closest-side,var(--tint-pink),transparent);}
.hero-grid{display:grid;gap:22px;grid-template-areas:"head" "cta" "art" "points";}
.hero-head{grid-area:head;display:grid;gap:12px;}
.hero-art{grid-area:art;position:relative;margin:8px 0 10px;}
.hero-points{grid-area:points;}
.hero-cta{grid-area:cta;}
.hero-brand{font-family:var(--ff-head);font-weight:900;font-size:14px;letter-spacing:.2em;margin-top:6px;}
.hero h1{font-size:clamp(32px,min(2.6vw + 22px,4.2vw),63px);line-height:1.28;letter-spacing:.01em;}
.mark{background:linear-gradient(transparent 58%,var(--marker) 58%);padding:0 .06em;}
.hero .lead{color:var(--ink);}
.panel{border-radius:20px;overflow:hidden;border:2.5px solid var(--ink);box-shadow:8px 8px 0 var(--ink);background:#fff;}
.panel img{width:100%;height:auto;}
.sticker{
  position:absolute;left:-6px;bottom:-22px;width:104px;height:104px;border-radius:50%;
  background:var(--cta);color:var(--ink);border:2.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:rotate(-10deg);
  font-family:var(--ff-head);line-height:1.2;
}
.sticker span{font-size:13px;font-weight:700;letter-spacing:.06em;}
.sticker b{font-size:22px;font-weight:900;}
.hero-points{display:grid;gap:8px;}
.hero-points li{display:flex;align-items:center;gap:10px;font-size:16px;line-height:1.5;padding:10px 14px;background:var(--paper);border-radius:12px;}
.hero-points .pk{flex-shrink:0;font-family:var(--ff-head);font-weight:700;font-size:13px;color:#fff;background:var(--ink);border-radius:6px;padding:2px 8px;}
.hero-points b{font-weight:700;}
.trust{margin-top:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:2px solid var(--ink);border-radius:18px;background:#fff;box-shadow:var(--pop);overflow:hidden;}
.trust li{padding:14px 8px;text-align:center;display:grid;gap:2px;border-left:1px solid var(--line);}
.trust li:first-child{border-left:0;}
.trust b{font-family:var(--ff-head);font-weight:900;font-size:clamp(18px,2.4vw + 8px,34px);line-height:1.2;color:var(--blue);}
.trust span{font-size:13px;color:var(--muted);line-height:1.5;}
@media (min-width:600px){.trust span{font-size:14px;}}
@media (max-width:899px){.hero h1{font-size:clamp(32px,6.4vw + 8px,56px);}}
@media (min-width:900px){
  .hero{padding:56px 0 64px;}
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"head art" "points art" "cta art";column-gap:56px;row-gap:26px;align-items:center;}
  .hero-head{align-self:end;}
  .hero-art{margin:0;}
  .hero-cta{align-self:start;}
  .sticker{width:132px;height:132px;left:-30px;bottom:-30px;}
  .sticker span{font-size:15px;}
  .sticker b{font-size:28px;}
  .trust{margin-top:56px;}
  .trust li{padding:20px 16px;}
}

/* ---------- concept ---------- */
.concept-grid{display:grid;gap:36px;align-items:center;}
.concept-text{display:grid;gap:18px;}
.concept-text p:last-child{color:var(--muted);}
@media (min-width:900px){.concept-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:64px;}}

/* ---------- team ---------- */
.team-card .tlogo{height:32px;width:auto;margin:14px 0 16px;}
.team-card .desc{font-size:15px;line-height:1.8;color:var(--muted);padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line);}

/* ---------- results ---------- */
.stats{display:grid;gap:12px;}
.stat{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);align-items:center;gap:16px;padding:18px 20px;border-radius:18px;background:var(--paper);}
.stat .fig{font-family:var(--ff-head);font-weight:900;font-size:44px;line-height:1;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;}
.stat .fig .u{font-size:18px;margin-left:3px;color:var(--blue);}
.stat .cap{font-size:16px;font-weight:700;line-height:1.5;}
.stat .sub{font-size:14px;color:var(--muted);line-height:1.6;margin-top:2px;}
@media (min-width:768px){
  .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
  .stat{display:block;padding:28px 26px;}
  .stat .fig{font-size:clamp(52px,5vw,84px);}
  .stat .fig .u{font-size:.34em;}
  .stat .cap{margin-top:14px;}
}
.results-body{margin-top:32px;max-width:52em;}
.works{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
@media (min-width:900px){.works{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}}
.work{background:#fff;border:2px solid var(--ink);border-radius:16px;overflow:hidden;box-shadow:var(--pop);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;}
.work:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink);}
.work-img{aspect-ratio:1090/795;background:var(--paper);display:flex;align-items:center;justify-content:center;border-bottom:2px solid var(--ink);}
.work-img img{width:100%;height:100%;object-fit:contain;}
.work-body{padding:12px 12px 14px;display:flex;flex-direction:column;gap:4px;flex:1;}
.work-vol{font-family:var(--ff-head);font-weight:700;font-size:13px;color:var(--blue);letter-spacing:.06em;}
.work-title{font-size:16px;line-height:1.45;}
.work-author{font-size:14px;color:var(--muted);line-height:1.5;}
.work-status{margin-top:auto;padding-top:8px;}
.status{display:inline-block;font-family:var(--ff-head);font-weight:700;font-size:13px;line-height:1.4;padding:4px 10px;border-radius:999px;background:var(--blue);color:#fff;}
.status.nft{background:var(--ink-2);}
@media (min-width:900px){.work-body{padding:18px 20px 20px;} .work-title{font-size:18px;}}

/* ---------- case ---------- */
.case-intro{position:relative;overflow:hidden;isolation:isolate;background:var(--tint-pink);padding:clamp(64px,8vw,112px) 0;}
.case-intro::before{content:"";position:absolute;z-index:-1;left:-10%;top:-10%;width:60%;height:80%;background:radial-gradient(rgba(225,26,134,.16) 1.4px,transparent 1.6px) 0 0/14px 14px;
  -webkit-mask:radial-gradient(closest-side,#000,transparent);mask:radial-gradient(closest-side,#000,transparent);}
.case-intro-grid{display:grid;gap:32px;align-items:center;}
.case-intro .banner{border-radius:18px;overflow:hidden;border:2.5px solid var(--ink);box-shadow:8px 8px 0 var(--ink);}
.case-intro .tags{margin-top:16px;}
.case-intro .body{margin-top:20px;line-height:1.95;}
.hl{background:linear-gradient(transparent 60%,var(--marker) 60%);}
.sign{margin-top:24px;padding-top:18px;border-top:1px solid rgba(22,20,46,.14);}
.sign-name{font-family:var(--ff-head);font-weight:900;font-size:18px;}
.sign-sub{font-size:14px;color:var(--muted);margin-top:4px;line-height:1.6;}
@media (min-width:900px){.case-intro-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;} .case-intro .banner{order:2;}}
.case-details{padding:clamp(56px,7vw,104px) 0 clamp(56px,6vw,88px);background:#fff;}
.details-grid{display:grid;gap:28px;align-items:start;}
@media (min-width:900px){.details-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:40px;}}
.kv{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);}
.kv > div{padding:14px 18px;border-bottom:1px solid var(--line);}
.kv > div:last-child{border-bottom:0;}
.kv dt{font-family:var(--ff-head);font-weight:700;font-size:14px;color:var(--blue);letter-spacing:.04em;line-height:1.5;}
.kv dd{margin:4px 0 0;font-size:16px;line-height:1.8;}
.kv .hl{color:var(--magenta);font-family:var(--ff-head);font-weight:900;background:none;}
@media (min-width:768px){
  .kv > div{display:grid;grid-template-columns:200px minmax(0,1fr);padding:0;}
  .kv dt{background:var(--tint-blue);color:var(--ink);padding:18px 22px;}
  .kv dd{margin:0;padding:16px 22px;}
}
.case-actions{margin-top:24px;}
.case-illust{max-width:340px;margin:0 auto;}

/* ---------- mid CTA band ---------- */
.band{padding:0 0 clamp(64px,8vw,112px);background:#fff;}
.band + section.sec:not(.alt){padding-top:clamp(64px,8vw,120px);}
.band-box{
  position:relative;border-radius:24px;padding:28px 20px;overflow:hidden;isolation:isolate;
  background:var(--tint-blue);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);display:grid;gap:20px;
}
.band-box::before{content:"";position:absolute;z-index:-1;right:-5%;top:-30%;width:50%;height:160%;background:var(--dots);
  -webkit-mask:radial-gradient(closest-side,#000,transparent);mask:radial-gradient(closest-side,#000,transparent);}
.band-copy{display:grid;gap:14px;}
.band-ttl{font-family:var(--ff-head);font-weight:900;font-size:clamp(21px,1.2vw + 16px,30px);line-height:1.45;}
@media (min-width:1024px){.band-box{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:40px 44px;gap:36px;} .band-box .cta-pair{flex-direction:column;align-items:stretch;}}

/* ---------- mini CTA (inline, between key points) ---------- */
.mini-cta{
  margin-top:clamp(40px,5vw,64px);padding:22px 20px;border-radius:20px;background:#FFF4D6;border:2px solid var(--ink);
  display:grid;gap:16px;justify-items:start;
}
.mini-ttl{font-family:var(--ff-head);font-weight:900;font-size:clamp(19px,.9vw + 15px,24px);line-height:1.5;}
.mini-cta .cta-pair{width:100%;}
@media (min-width:900px){.mini-cta{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:24px 32px;gap:24px;} .mini-cta .cta-pair{width:auto;flex-wrap:nowrap;}}

/* ---------- journey ---------- */
.journey{position:relative;display:grid;gap:0;}
.journey li{position:relative;padding:0 0 28px 60px;}
.journey li::before{content:"";position:absolute;left:19px;top:40px;bottom:0;width:3px;border-radius:2px;background:var(--blue);opacity:.35;}
.journey li:last-child{padding-bottom:0;}
.journey li:last-child::before{display:none;}
.journey .num-badge{position:absolute;left:0;top:0;border-radius:50%;border:2px solid var(--ink);}
.journey h3{font-size:19px;line-height:1.45;padding-top:6px;}
.journey p{font-size:16px;color:var(--muted);margin-top:6px;line-height:1.85;}
@media (min-width:900px){
  .journey{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
  .journey li{padding:28px 26px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);}
  .journey li::before{display:none;}
  .journey .num-badge{position:static;margin-bottom:16px;border-radius:12px;}
  .journey h3{padding-top:0;}
}

/* ---------- funding ---------- */
.fund-grid{display:grid;gap:16px;}
@media (min-width:768px){.fund-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .fund-grid .target{grid-column:1 / -1;}}
@media (min-width:1100px){.fund-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr);gap:22px;} .fund-grid .target{grid-column:auto;}}
.pillar{display:flex;flex-direction:column;}
.pillar .plogo{height:28px;width:auto;margin:12px 0 14px;align-self:flex-start;}
.pillar .amount{font-family:var(--ff-head);font-weight:900;font-size:26px;color:var(--ink);margin-top:14px;line-height:1.3;}
.pillar .amount small{font-size:16px;font-weight:700;color:var(--muted);}
.pillar .pnote{font-size:15px;margin-top:8px;}
.target{background:var(--blue);color:#fff;border-radius:18px;padding:28px 24px;display:flex;flex-direction:column;justify-content:center;border:2px solid var(--ink);box-shadow:var(--pop);}
.target .tl{font-size:14px;font-weight:700;letter-spacing:.08em;}
.target .tv{font-family:var(--ff-head);font-weight:900;font-size:clamp(36px,3vw + 20px,48px);line-height:1.2;margin:6px 0 14px;}
.target p{font-size:15px;line-height:1.8;}
.plans-head{display:none;}
.plans{display:grid;gap:12px;}
.plan{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);}
.plan-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.plan-name{font-family:var(--ff-head);font-weight:900;font-size:18px;line-height:1.4;}
.plan-price{font-family:var(--ff-head);font-weight:900;font-size:22px;color:var(--ink);white-space:nowrap;}
.plan-ret{font-size:16px;line-height:1.75;margin-top:8px;}
.plan-lim{font-size:14px;color:var(--muted);margin-top:8px;display:flex;gap:8px;align-items:center;}
.plan-lim .k{font-size:13px;border:1px solid var(--line);border-radius:4px;padding:0 6px;}
@media (min-width:900px){
  .plans-wrap{background:#fff;border:2px solid var(--ink);border-radius:18px;overflow:hidden;box-shadow:var(--pop);}
  .plans-head,.plan{display:grid;grid-template-columns:190px 110px minmax(0,1fr) 110px;gap:20px;align-items:center;padding:14px 26px;}
  .plans-head{background:var(--ink);color:#fff;font-family:var(--ff-head);font-weight:700;font-size:14px;letter-spacing:.06em;}
  .plans{gap:0;}
  .plan{border:0;border-radius:0;box-shadow:none;border-top:1px solid var(--line);}
  .plans:first-of-type .plan:first-child{border-top:0;}
  .plan-top{display:contents;}
  .plan-ret,.plan-lim{margin:0;}
  .plan-lim .k{display:none;}
}
.more{margin-top:12px;display:flex;flex-direction:column;}
.more > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;font-family:var(--ff-head);font-weight:700;font-size:16px;color:var(--ink);border:2px dashed var(--line);border-radius:12px;background:#fff;}
.more > summary::-webkit-details-marker{display:none;}
.more[open] > summary{order:2;margin-top:12px;}
.chev{width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s;}
details[open] > summary .chev{transform:rotate(-135deg) translate(-2px,0);}
.lbl-close{display:none;}
details[open] > summary .lbl-open{display:none;}
details[open] > summary .lbl-close{display:inline;}
@media (min-width:900px){.more{margin-top:0;} .more > summary{border-radius:0;border:0;border-top:1px solid var(--line);background:var(--paper);} .more[open] > summary{margin-top:0;}}
.nft-grid{display:grid;gap:24px;align-items:start;}
@media (min-width:900px){.nft-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;}}
.nft-img{border-radius:18px;overflow:hidden;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);max-width:400px;margin:0 auto;width:100%;}

/* ---------- support / contract ---------- */
.sup .sh{display:flex;align-items:center;gap:14px;}
.sup h3{margin:0;font-size:19px;}
.sup p{margin-top:12px;}
.sup .more-link{display:inline-flex;align-items:center;min-height:44px;margin-top:6px;font-weight:700;}
.cpt .cbig{font-family:var(--ff-head);font-weight:900;font-size:clamp(20px,.8vw + 17px,24px);line-height:1.35;margin:8px 0 10px;color:var(--ink);}

/* ---------- eligibility ---------- */
.elig{display:grid;gap:12px;}
@media (min-width:768px){.elig{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}}
.elig li{display:flex;gap:14px;align-items:flex-start;background:#fff;border-radius:16px;padding:18px;box-shadow:var(--shadow);border:1px solid var(--line);}
.elig h3{font-size:17px;line-height:1.5;}
.elig p{font-size:16px;color:var(--muted);margin-top:4px;line-height:1.8;}
.note-box{background:#fff;border-radius:14px;padding:18px 20px;margin-top:16px;border:1px dashed var(--line);}
.note-box .note{margin:0;font-size:14px;}

/* ---------- apply ---------- */
.apply{background:var(--tint-blue);position:relative;}
.steps3{display:grid;gap:12px;}
@media (min-width:900px){.steps3{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}}
.steps3 li{display:flex;gap:14px;align-items:flex-start;background:#fff;border-radius:16px;padding:18px;border:1px solid var(--line);}
.steps3 h3{font-size:17px;line-height:1.5;}
.steps3 p{font-size:16px;color:var(--muted);margin-top:4px;line-height:1.75;}
.apply .tags{margin-top:20px;}
.entry-cta{
  position:relative;margin-top:36px;background:var(--grad);color:#fff;border-radius:24px;overflow:hidden;isolation:isolate;
  padding:36px 20px 32px;text-align:center;display:grid;justify-items:center;gap:20px;border:2.5px solid var(--ink);box-shadow:8px 8px 0 var(--ink);
}
.entry-cta::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(rgba(255,255,255,.22) 1.4px,transparent 1.6px) 0 0/14px 14px;
  -webkit-mask:linear-gradient(135deg,#000,transparent 60%);mask:linear-gradient(135deg,#000,transparent 60%);}
.entry-cta h3{font-size:clamp(22px,1.4vw + 17px,34px);line-height:1.4;}
.entry-cta .cta-pair{justify-content:center;width:100%;}

@media (min-width:900px){.entry-cta{margin-top:56px;padding:60px 40px 56px;} .entry-cta .btn{min-height:64px;font-size:19px;padding:0 40px;}}
.after-form{text-align:center;margin-top:28px;font-size:16px;line-height:1.9;}
.rel-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 20px;margin-top:20px;}
.rel-links a{display:inline-flex;align-items:center;min-height:44px;font-size:15px;}

/* ---------- entry screen (form) ---------- */
.entry-screen{display:none;position:fixed;inset:0;z-index:100;background:var(--tint-blue);flex-direction:column;}
html:not(.js) .entry-screen:target,.entry-screen.is-open{display:flex;}
html.entry-open,html.entry-open body{overflow:hidden;}
.entry-bar{flex-shrink:0;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 8px 0 16px;background:#fff;border-bottom:1px solid var(--line);}
.entry-bar .brand{margin:0;}
.entry-close{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;border-radius:999px;color:var(--ink);text-decoration:none;font-family:var(--ff-head);font-weight:700;font-size:15px;border:2px solid var(--ink);}
.entry-close:hover{color:var(--ink);background:var(--tint-pink);}
.x-ico{position:relative;width:14px;height:14px;}
.x-ico::before,.x-ico::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;background:currentColor;border-radius:2px;}
.x-ico::before{transform:translate(-50%,-50%) rotate(45deg);}
.x-ico::after{transform:translate(-50%,-50%) rotate(-45deg);}
.entry-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:20px 12px calc(40px + env(safe-area-inset-bottom));}
@media (min-width:768px){.entry-bar{padding:0 20px 0 28px;} .entry-scroll{padding:48px 24px 72px;}}
.form-card{position:relative;background:#fff;border-radius:22px;overflow:hidden;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);max-width:760px;margin:0 auto;}
.form-card::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--grad);}
.form-head{padding:30px 20px 8px;}
.form-head h2{font-size:clamp(22px,1.2vw + 17px,30px);line-height:1.4;}
.form-body{padding:16px 20px 28px;}
@media (min-width:768px){.form-head{padding:44px 48px 8px;} .form-body{padding:20px 48px 44px;}}
#recruit-form{position:relative;}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.fields{display:grid;gap:24px;}
.field{display:grid;gap:8px;min-width:0;}
.flabel,.fieldset legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-weight:700;font-size:16px;line-height:1.5;color:var(--ink);}
.req{display:inline-flex;align-items:center;font-size:13px;font-weight:700;line-height:1;padding:4px 8px;border-radius:4px;background:var(--magenta);color:#fff;letter-spacing:.04em;}
.fhelp{font-size:14px;line-height:1.75;color:var(--muted);}
.input,.textarea{width:100%;font-family:var(--ff-body);font-size:16px;line-height:1.6;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;min-height:50px;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s,background .15s;}
.textarea{resize:vertical;min-height:120px;}
.input::placeholder,.textarea::placeholder{color:#8B879C;}
.input:focus,.textarea:focus{outline:none;border-color:var(--magenta);background:#fff;box-shadow:0 0 0 4px rgba(225,26,134,.14);}
.fieldset{border:0;padding:0;margin:0 0 28px;min-width:0;}
.fieldset legend{padding:0;margin-bottom:10px;}
.purpose{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.opt{position:relative;display:flex;align-items:center;gap:10px;min-height:60px;padding:10px 14px;border:2px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;font-family:var(--ff-head);font-weight:700;font-size:16px;line-height:1.35;transition:border-color .15s,background .15s,box-shadow .15s;}
.opt input{width:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--blue);}
.opt:has(input:checked){border-color:var(--ink);background:var(--tint-blue);box-shadow:3px 3px 0 var(--ink);}
.opt:has(input:focus-visible){outline:3px solid var(--magenta);outline-offset:2px;}
.file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;}
.file-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 22px;align-self:start;justify-self:start;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);cursor:pointer;font-family:var(--ff-head);font-weight:700;font-size:16px;box-shadow:3px 3px 0 var(--ink);}
.file-btn:hover{background:var(--tint-blue);}
.file-btn svg{width:20px;height:20px;}
.file-input:focus-visible + .file-btn{outline:3px solid var(--magenta);outline-offset:3px;}
#file-preview{display:grid;gap:8px;}
#file-preview:empty{display:none;}
.file-preview-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 6px 6px 14px;background:var(--paper);border:1px solid var(--line);border-radius:10px;}
.file-preview-name{font-size:15px;line-height:1.5;min-width:0;overflow-wrap:anywhere;}
.file-remove-btn{flex-shrink:0;min-height:44px;min-width:64px;padding:0 14px;border-radius:8px;cursor:pointer;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-family:var(--ff-body);font-weight:700;font-size:14px;}
.file-remove-btn:hover{border-color:var(--magenta);color:var(--magenta);}
.file-preview-count{font-size:14px;color:var(--muted);}
.file-error{font-size:14px;font-weight:700;color:#B0106A;line-height:1.6;}
.privacy{font-size:14px;line-height:1.75;color:var(--muted);margin:28px 0 14px;}
#form-status:empty{display:none;}
#form-status{margin-bottom:12px;font-size:15px;line-height:1.7;}
#form-status.is-error{padding:12px 16px;border-radius:10px;border:1.5px solid var(--magenta);background:rgba(225,26,134,.06);color:var(--ink);font-weight:700;}
.submit{width:100%;min-height:58px;border:2px solid var(--ink);border-radius:999px;cursor:pointer;background:var(--cta);color:var(--ink);font-family:var(--ff-head);font-weight:900;font-size:18px;letter-spacing:.08em;box-shadow:var(--pop);transition:transform .15s,box-shadow .15s;}
.submit:hover{background:var(--cta-hover);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);}
.submit:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink);}
.submit:disabled{opacity:.6;cursor:progress;transform:none;}
#form-success{padding:40px 20px 44px;text-align:center;}
#form-success h3{font-size:24px;}
#form-success p{margin-top:14px;}
#form-success .fhelp{margin-top:10px;}

/* ---------- faq ---------- */
.faq{display:grid;gap:12px;max-width:880px;}
.faq details{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);transition:border-color .2s;}
.faq details[open]{border-color:var(--ink);}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding:16px;min-height:56px;}
.faq summary::-webkit-details-marker{display:none;}
.qa{flex-shrink:0;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--ff-head);font-weight:900;font-size:15px;color:#fff;background:var(--blue);}
.qa.a{background:var(--ink);}
.faq .q{font-family:var(--ff-head);font-weight:700;font-size:17px;line-height:1.6;padding-top:2px;}
.faq .tg{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:48px;font-size:13px;color:var(--muted);padding-top:6px;white-space:nowrap;}
.faq .ans{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:0 16px 20px;}
.faq .ans p{font-size:16px;line-height:1.9;color:var(--muted);padding-top:2px;}
.faq .ans p b{color:var(--ink);}
@media (min-width:768px){.faq summary{padding:20px 24px;} .faq .ans{padding:0 24px 24px;}}
.faq-note{max-width:880px;margin-top:20px;background:var(--paper);border-radius:14px;padding:18px 20px;}
.faq-note .k{font-family:var(--ff-head);font-weight:700;font-size:13px;letter-spacing:.2em;color:var(--blue);}
.faq-note p{font-size:15px;color:var(--muted);margin-top:4px;line-height:1.8;}

/* ---------- closing ---------- */
.closing{position:relative;background:var(--grad);color:#fff;padding:clamp(56px,8vw,120px) 0;overflow:hidden;isolation:isolate;}
.closing::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(rgba(255,255,255,.2) 1.4px,transparent 1.6px) 0 0/16px 16px;
  -webkit-mask:radial-gradient(ellipse at 20% 30%,#000,transparent 60%);mask:radial-gradient(ellipse at 20% 30%,#000,transparent 60%);}
.closing-grid{display:grid;gap:32px;align-items:center;}
.closing .panel{box-shadow:8px 8px 0 var(--ink);}
.closing h2{font-size:clamp(28px,2.4vw + 18px,52px);line-height:1.38;text-shadow:0 2px 0 rgba(22,20,46,.25);}
.closing .lead{margin:16px 0 28px;}

.closing .runby{margin-top:32px;}
.closing .runby-lbl,.closing .runby .x{color:#fff;}
.closing .logo-ino{background:#fff;padding:5px 10px;border-radius:6px;height:30px;}
@media (min-width:900px){
  .closing-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;}
  .closing-art{order:2;}
  .closing .logo-ino{height:34px;}
}


/* ---------- motion ---------- */
@media (prefers-reduced-motion:no-preference){
  .hero .runby,.hero-brand{animation:fade-up .6s .05s cubic-bezier(.2,.8,.2,1) both;}
  .hero h1 .nw{animation:mask-up .8s cubic-bezier(.2,.8,.2,1) both;}
  .hero h1 .nw:nth-child(1){animation-delay:.15s;}
  .hero h1 .nw:nth-child(2){animation-delay:.3s;}
  .hero .mark{background-size:0 100%;background-repeat:no-repeat;animation:mark 0.8s .9s cubic-bezier(.7,0,.2,1) forwards;}
  .hero .lead{animation:fade-up .6s .45s cubic-bezier(.2,.8,.2,1) both;}
  .hero-art .panel{animation:panel-in .9s .2s cubic-bezier(.2,.9,.25,1.15) both;}
  .sticker{animation:sticker-in .7s .9s cubic-bezier(.2,.9,.25,1.5) both,bob 4s 1.8s ease-in-out infinite;}
  .hero-points li{animation:slide-in .6s cubic-bezier(.2,.9,.25,1.2) both;}
  .hero-points li:nth-child(1){animation-delay:.6s;}
  .hero-points li:nth-child(2){animation-delay:.7s;}
  .hero-points li:nth-child(3){animation-delay:.8s;}
  .hero-cta .btn{animation:pop .6s .55s cubic-bezier(.2,.9,.25,1.4) both;}
  .hero-cta .btn + .btn{animation-delay:.65s;}
  .trust{animation:fade-up .7s .9s cubic-bezier(.2,.8,.2,1) both;}

  .a-head.is-pending .eyebrow{opacity:0;transform:translateX(-24px);transition:opacity .6s,transform .6s cubic-bezier(.2,.8,.2,1);}
  .a-head.is-pending .ttl{clip-path:inset(0 0 100% 0);transform:translateY(40%);transition:clip-path .9s .1s cubic-bezier(.7,0,.2,1),transform .9s .1s cubic-bezier(.2,.8,.2,1);}
  .a-head.is-pending .rule{transform:scaleX(0);transform-origin:0 50%;transition:transform .8s .45s cubic-bezier(.7,0,.2,1);}
  .a-head.is-in .eyebrow,.a-head.is-in .ttl,.a-head.is-in .rule{opacity:1;transform:none;clip-path:inset(-10% -10% -10% -10%);}
  .a-up.is-pending{opacity:0;transform:translateY(56px) scale(.96);transition:opacity .6s calc(var(--i,0) * 80ms),transform .85s calc(var(--i,0) * 80ms) cubic-bezier(.2,.9,.25,1.15);}
  .a-up.is-pending.is-in{opacity:1;transform:none;}
  .a-wipe{overflow:hidden;}
  .a-wipe.is-pending{clip-path:inset(0 100% 0 0);transition:clip-path 1s calc(var(--i,0) * 80ms) cubic-bezier(.7,0,.2,1);}
  .a-wipe.is-pending img{transform:scale(1.15);transition:transform 1.4s calc(var(--i,0) * 80ms) cubic-bezier(.2,.8,.2,1);}
  .a-wipe.is-pending.is-in{clip-path:inset(0 0 0 0);}
  .a-wipe.is-pending.is-in img{transform:none;}
  .a-pop.is-pending{opacity:0;transform:scale(.85);transition:opacity .45s calc(var(--i,0) * 50ms),transform .7s calc(var(--i,0) * 50ms) cubic-bezier(.2,.9,.25,1.45);}
  .a-pop.is-pending.is-in{opacity:1;transform:none;}
  .journey li.is-pending::before{transform:scaleY(0);transform-origin:50% 0;transition:transform .8s calc(var(--i,0) * 80ms + .3s) cubic-bezier(.7,0,.2,1);}
  .journey li.is-pending.is-in::before{transform:none;}
  .journey li.is-pending .num-badge{transform:scale(0) rotate(-90deg);transition:transform .7s calc(var(--i,0) * 80ms) cubic-bezier(.2,.9,.25,1.4);}
  .journey li.is-pending.is-in .num-badge{transform:none;}
  .hl.is-pending{background-size:0 100%;background-repeat:no-repeat;transition:background-size 1s .5s cubic-bezier(.7,0,.2,1);}
  .hl.is-pending.is-in{background-size:100% 100%;}
  .entry-screen.is-open{animation:entry-in .65s cubic-bezier(.7,0,.2,1) both;}
  .entry-screen.is-open .form-card{animation:rise-pop .8s .22s cubic-bezier(.2,.9,.25,1.15) both;}
  .entry-screen.is-closing{animation:entry-out .45s cubic-bezier(.7,0,.2,1) both;}
}
@keyframes mask-up{from{clip-path:inset(0 0 100% 0);transform:translateY(40%);}to{clip-path:inset(-20% -10% -20% -10%);transform:none;}}
@keyframes mark{to{background-size:100% 100%;}}
@keyframes fade-up{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
@keyframes slide-in{from{opacity:0;transform:translateX(-30px);}to{opacity:1;transform:none;}}
@keyframes pop{from{opacity:0;transform:scale(.6);}to{opacity:1;transform:none;}}
@keyframes panel-in{from{opacity:0;transform:translateY(40px) scale(.94);}to{opacity:1;transform:none;}}
@keyframes sticker-in{from{opacity:0;transform:scale(0) rotate(-60deg);}to{opacity:1;transform:rotate(-10deg);}}
@keyframes bob{0%,100%{transform:rotate(-10deg) translateY(0);}50%{transform:rotate(-6deg) translateY(-6px);}}
@keyframes entry-in{from{clip-path:circle(0 at var(--cx,50%) var(--cy,50%));}to{clip-path:circle(150% at var(--cx,50%) var(--cy,50%));}}
@keyframes entry-out{from{clip-path:circle(150% at var(--cx,50%) var(--cy,50%));}to{clip-path:circle(0 at var(--cx,50%) var(--cy,50%));}}
@keyframes rise-pop{from{opacity:0;transform:translateY(60px) scale(.96);}to{opacity:1;transform:none;}}

/* ---------- line-break fixes ---------- */
.work-title.is-long{font-size:clamp(13px,3.6vw,16px);}
@media (min-width:900px){.work-title.is-long{font-size:18px;}}
@media (max-width:420px){.opt{padding:10px 8px;gap:6px;font-size:15px;} .input::placeholder{font-size:14px;}}
@media (max-width:380px){.input::placeholder{font-size:13px;}}

/* ---------- narrow screens (below 900px) ----------
   Rules below apply only under 900px, so the desktop layout is unchanged.
   Text box edges: section content at the .wrap padding, card content 17px inside the card's outer edge
   (padding + border = 17px on every card type). */
.nb{white-space:nowrap;}
@media (max-width:899px){
  /* line breaking: break only at <wbr> phrase boundaries, spaces and punctuation; overflow-wrap is the fallback for a phrase wider than the line */
  /* body copy fills the line; headings, labels, buttons and emphasised phrases break only at phrase boundaries */
  main,.entry-screen{word-break:normal;overflow-wrap:break-word;}
  main :is(h1,h2,h3,h4,.ttl,.eyebrow,.band-ttl,.card-label,.cbig,.plan-name,.plan-price,.work-vol,.work-title,.work-author,.status,.tag,.btn,.q,.cap,.pk,.sign-name,.trust li,.hero .lead,.amount,.tl,.tv,.more-link,.work-link),main :is(p,li,dd) :is(b,strong,.hl,.em),.entry-screen :is(h2,h3,legend,.flabel,.opt,.submit,.file-btn){word-break:keep-all;overflow-wrap:anywhere;}
  main :is(h1,h2,h3,h4,.band-ttl,.card-label,.cbig,.plan-name,.cap),.entry-screen :is(h2,h3,legend,.flabel){text-wrap:balance;}

  /* vertical rhythm */
  .sec{padding:48px 0;}
  .sub-block{margin-top:48px;}
  .sec-head{margin-bottom:24px;}
  .rule{margin-top:14px;}
  .ttl{margin-top:10px;}
  .note{margin-top:14px;}
  .grid,.fund-grid,.plans,.elig,.steps3,.faq{gap:12px;}
  .case-intro{padding:48px 0;}
  .case-intro-grid{gap:24px;}
  .case-details{padding:48px 0;}
  .details-grid,.nft-grid{gap:24px;}
  .band{padding:0 0 48px;}
  .band + section.sec:not(.alt){padding-top:48px;}
  .closing{padding:48px 0;}
  .closing-grid{gap:28px;}

  /* card insets: padding + border = 17px */
  .card{padding:20px 16px;}
  .card h3{margin:6px 0 8px;}
  .plan{padding:14px 16px;}
  .kv > div{padding:12px 16px;}
  .stat{padding:16px 17px;}
  .target{padding:22px 15px;}
  .elig li,.steps3 li{padding:16px;}
  .note-box{padding:14px 16px;}
  .faq-note{padding:14px 17px;}
  .band-box{padding:20px 15px;gap:14px;}
  .hero-points li{padding:10px 17px;}
  .work-body{padding:12px 15px 14px;}
  .status{font-size:12px;padding:3px 8px;}
  .case-actions .nw{display:inline;}
  .btn-line{text-wrap:balance;}

  /* S01 figures: one row per item so each caption stays on one line */
  .trust{grid-template-columns:minmax(0,1fr);margin-top:28px;}
  .trust li{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 10px;text-align:left;padding:10px 15px;border-left:0;border-top:1px solid var(--line);}
  .trust li:first-child{border-top:0;}
  .trust b{font-size:24px;}
  .trust span{font-size:14px;}

  /* S06 / S08 images: text banner shown whole at a reduced size */
  .case-intro .banner{width:min(100%,300px);margin:0;box-shadow:6px 6px 0 var(--ink);}
  .case-illust{max-width:200px;margin:0;}
  .nft-img{max-width:240px;margin:0;}

  /* S08 pillar labels: the reading is set as small plain text so the label stays on one line */
  .pillar .card-label .nw{font-size:12px;font-weight:500;letter-spacing:.02em;color:var(--muted);}
  .pillar .plogo{margin:10px 0 12px;}

  /* mid-page CTA bands (mid-case / mid-contract): compact strip */
  .band .tags{display:none;}
  .band-copy{gap:0;}
  .band-ttl{font-size:clamp(19px,1.2vw + 14px,24px);}
  .band .cta-pair{gap:10px;}
  .band .cta-pair .btn{min-height:48px;}

  /* S12: body copy left-aligned; only button labels stay centred */
  .entry-cta{margin-top:28px;padding:24px 14.5px;text-align:left;justify-items:stretch;gap:16px;}
  .after-form{text-align:left;margin-top:24px;}
  .rel-links{justify-content:flex-start;gap:0 20px;margin-top:12px;}

  /* S13 FAQ: icon-only toggle; the open/close words stay available to screen readers */
  .faq summary{padding:14px 16px;gap:10px;}
  .faq .q{font-size:16px;}
  .faq .ans{padding:0 16px 18px;gap:10px;}
  .faq .tg{min-width:16px;padding-top:12px;}
  .faq .tg .lbl-open,.faq .tg .lbl-close{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

  /* lighter one-shot motion */
  .a-head.is-pending .eyebrow,.a-head.is-pending .ttl,.a-head.is-pending .rule{clip-path:none;opacity:0;transform:translateY(10px);transition:opacity .45s,transform .45s ease-out;}
  .a-head.is-pending.is-in .eyebrow,.a-head.is-pending.is-in .ttl,.a-head.is-pending.is-in .rule{opacity:1;transform:none;}
  .a-up.is-pending{transform:translateY(16px);transition:opacity .45s,transform .45s ease-out;}
  .a-wipe.is-pending{clip-path:none;opacity:0;transition:opacity .5s;}
  .a-wipe.is-pending img{transform:none;transition:none;}
  .a-wipe.is-pending.is-in{opacity:1;}
  .a-pop.is-pending{transform:none;transition:opacity .4s;}
  .journey li.is-pending::before,.journey li.is-pending .num-badge{transform:none;transition:none;}
}
@media (max-width:599px){
  .card p,.journey p,.elig p,.steps3 p,.faq .ans p,.plan-ret,.kv dd,.dotlist li{font-size:15px;line-height:1.75;}
  .team-card .desc{font-size:14px;line-height:1.75;}
}
/* S05 work cards: shared row tracks so title, author and status line up across a row */
@supports (grid-template-rows:subgrid){
  @media (min-width:600px) and (max-width:899px){
    .works{row-gap:0;}
    .work{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:0;margin-bottom:12px;}
    .work-body{display:contents;}
    .work-body > *{padding-left:15px;padding-right:15px;}
    .work-vol{padding-top:12px;}
    .work-title,.work-author{padding-top:4px;}
    .work-status{margin-top:0;padding-top:8px;padding-bottom:14px;align-self:end;}
  }
}
/* entry form: full-bleed sheet so fields use the whole width */
@media (max-width:767px){
  .entry-screen{background:#fff;}
  .entry-scroll{padding:0 0 calc(32px + env(safe-area-inset-bottom));}
  .form-card{border:0;border-radius:0;box-shadow:none;max-width:none;}
  .form-head{padding:26px 20px 4px;}
  .form-body{padding:12px 20px 28px;}
}
@media (max-width:480px){
  .purpose{grid-template-columns:minmax(0,1fr);gap:8px;}
  .opt{min-height:52px;padding:10px 14px;gap:10px;font-size:16px;}
}
/* ---------- work card link (all widths) ---------- */
.work{position:relative;}
.work-link{padding-top:8px;}
.work-link a{display:inline-flex;align-items:center;gap:6px;min-height:32px;font-family:var(--ff-head);font-weight:700;font-size:14px;color:var(--blue);text-decoration:none;}
.work-link a::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);}
.work-link a::before{content:"";position:absolute;inset:0;z-index:1;}
.work:hover .work-link a{color:var(--magenta);}
.work-link a:focus-visible{outline:none;}
.work:has(.work-link a:focus-visible){outline:3px solid var(--magenta);outline-offset:3px;}
@media (min-width:600px) and (max-width:899px){.work-link{padding:0 15px 14px;} .work-status{padding-bottom:4px !important;}}

/* ---------- narrow screens: revisions ---------- */
/* header: smaller wordmark so the tag text sits on one line (overrides css/site-chrome.css) */
@media (max-width:700px){
  header.gh .gh-logo{gap:9px !important;}
  header.gh .gh-logo img{height:17px !important;}
  header.gh .gh-tag{padding-left:9px !important;white-space:nowrap;}
}
/* sub-nav: chevron cue at the right edge; hidden once scrolled to the end (.is-end set by main.js) */
@media (max-width:700px){
  div.sub-nav.show::after{content:"" !important;display:block !important;position:absolute;top:50%;right:12px;width:8px;height:8px;margin-top:-4px;border-right:2.5px solid #16142E;border-top:2.5px solid #16142E;transform:rotate(45deg);pointer-events:none;transition:opacity .2s;}
  div.sub-nav.show::before{width:44px !important;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,#fff 55%) !important;transition:opacity .2s;}
  div.sub-nav.show .sub-nav-in{padding-right:40px !important;}
  div.sub-nav.show.is-end::after,div.sub-nav.show.is-end::before{opacity:0;}
}
/* hero lead: always one line */
.hero .lead{white-space:nowrap;}
@media (min-width:900px){.hero .lead{font-size:min(clamp(16px,.3vw + 15px,18px),calc((50vw - 76px) / 23.5));}}
@media (max-width:899px){
  .hero .lead{font-size:min(17px,calc((100vw - 40px) / 23.5));letter-spacing:0;}
  .hero-grid{grid-template-areas:"head" "art" "cta" "points";}
  .hero-art{margin:4px 0 26px;}
}
/* every CTA pair sits side by side; labels never wrap */
@media (max-width:599px){
  .cta-pair{flex-wrap:nowrap;gap:8px;}
  .cta-pair .btn,.cta-pair .btn-sub{flex:1 1 auto;min-width:0;padding:0 10px;gap:6px;font-size:clamp(13px,3.9vw,16px);letter-spacing:.02em;}
  .cta-pair .btn-grad{flex-grow:1.25;}
  .btn-grad::after{width:7px;height:7px;margin-left:0;}
}
/* S05 work cards on phones: two columns, image on top; rows aligned across each pair */
@media (max-width:599px){
  .works{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;}
  .work{container-type:normal;}
  .work-body{padding:10px 12px 12px;gap:2px;}
  .work-vol{font-size:12px;letter-spacing:.04em;}
  .work-title{font-size:min(15px,3.7vw);line-height:1.4;letter-spacing:0;font-feature-settings:"palt";}
  .work-title.is-long{font-size:min(15px,3.3vw);letter-spacing:0;}
  .work-author{font-size:13px;line-height:1.45;}
  .status{font-size:11.5px;padding:3px 8px;white-space:nowrap;}
  .work-link a{font-size:13px;min-height:28px;}
}
@supports (grid-template-rows:subgrid){
  @media (max-width:599px){
    .works{row-gap:0;}
    .work{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:0;margin-bottom:12px;}
    .work-body{display:contents;}
    .work-body > *{padding-left:12px;padding-right:12px;}
    .work-vol{padding-top:10px;}
    .work-title{padding-top:2px;align-self:start;}
    .work-author{padding-top:2px;}
    .work-status{padding-top:6px;align-self:end;}
    .work-link{padding-top:4px;padding-bottom:8px;}
  }
}

/* ---------- funding: supporter-facing details (collapsible) ---------- */
.fund-more{margin-top:clamp(40px,6vw,72px);}
.fund-more > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:12px 16px;border:1.5px solid var(--line);border-radius:14px;background:#fff;font-family:var(--ff-head);font-weight:700;font-size:16px;line-height:1.5;color:var(--ink);}
.fund-more > summary::-webkit-details-marker{display:none;}
.fund-more .fm-tg{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:13px;color:var(--muted);}
.fund-more[open] > summary{margin-bottom:8px;}
.fund-more > .sub-block:first-of-type{margin-top:32px;}
@media (min-width:900px){.fund-more > summary{display:none;} .fund-more > .sub-block:first-of-type{margin-top:0;} .fund-more{margin-top:clamp(56px,6vw,96px);}}

/* ---------- sticky entry button (narrow screens) ---------- */
.sticky-cta{display:none;}
@media (max-width:899px){
  .sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:70;padding:10px 20px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s ease;}
  .sticky-cta.is-on{transform:none;}
  .sticky-cta .btn{width:100%;min-height:50px;font-size:17px;}
  .ftr-gs{padding-bottom:calc(80px + env(safe-area-inset-bottom)) !important;}
}

/* ---------- narrow screens: visual clean-up ----------
   Colour roles: amber = tap targets, blue = information, magenta = heading emphasis only.
   The offset "pop" shadow is kept for the primary button and images only. */
@media (max-width:899px){
  .tag{border:1px solid var(--line);background:#fff;}
  .case-intro{background:var(--paper);}
  .case-intro::before{display:none;}
  .card,.plan,.kv,.elig li,.steps3 li,.faq details,.note-box{box-shadow:none;}
  .work{box-shadow:none;border:1px solid var(--line);}
  .work-img{border-bottom:1px solid var(--line);}
  .work:hover{transform:none;box-shadow:none;}
  .target{box-shadow:none;border:0;}
  .trust{box-shadow:none;border:1.5px solid var(--line);}
  .band-box{box-shadow:none;border:1.5px solid var(--line);background:#fff;}
  .band-box::before{display:none;}
  .entry-cta{box-shadow:none;border:0;}
  .btn-line{box-shadow:none;border-width:1.5px;}
  /* secondary action: outline only, visibly lighter than the primary */
  .btn-sub{box-shadow:none;border:1.5px solid var(--ink);background:#fff;font-weight:700;}
  .btn-sub:hover,.btn-sub:active{transform:none;box-shadow:none;}
  .entry-cta .btn-sub{background:rgba(255,255,255,.92);}
  /* hero: fewer competing elements */
  .sticker,.hero-brand{display:none;}
  .hero .runby{gap:6px 10px;}
  .runby-lbl{font-size:11px;}
  .hero-points{gap:6px;}
  .hero-points li{background:none;padding:0;gap:10px;}
  .hero-points .pk{min-width:52px;text-align:center;background:var(--tint-blue);color:var(--blue);}
  .hero::before,.hero::after{display:none;}
}
@media (max-width:599px){
  .cta-pair .btn-grad{flex-grow:1.7;}
}

/* ---------- section backgrounds for the page order ---------- */
#eligibility{background:var(--paper);}
#team{background:#fff;}
#team .card{border-color:var(--line);}
.band[data-cta-location="mid-contract"]{background:var(--paper);}
@media (max-width:899px){
  .band[data-cta-location="mid-contract"] + section{padding-top:48px;}
}



/* ---------- sticky bar: two actions ---------- */
@media (max-width:899px){
  .sticky-cta{display:flex;gap:8px;}
  .sticky-cta .btn{width:auto;min-width:0;min-height:48px;padding:0 10px;gap:6px;font-size:clamp(13px,3.9vw,16px);letter-spacing:.02em;}
  .sticky-cta .btn-grad{flex:1.7 1 0;}
  .sticky-cta .btn-sub{flex:1 1 0;}
}

/* ---------- sub-nav scroll cue: round arrow button ---------- */
@media (max-width:700px){
  div.sub-nav.show::after{content:"" !important;display:block !important;top:50%;right:8px;width:26px;height:26px;margin-top:-13px;border:1px solid var(--line) !important;border-radius:50%;transform:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316142E' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center/14px 14px no-repeat;box-shadow:0 2px 6px rgba(22,20,46,.18);}
  div.sub-nav.show::before{width:64px !important;}
  div.sub-nav.show .sub-nav-in{padding-right:48px !important;}
}

/* ---------- case details: illustration first on narrow screens ---------- */
@media (max-width:899px){.details-grid .case-illust{order:-1;}}

/* ---------- works carousel (all widths); newest work is first in the DOM ---------- */
.works.is-carousel{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-template-rows:repeat(6,auto);grid-auto-columns:calc((100% - 40px) / 3.25);column-gap:20px;row-gap:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 8px 12px 2px;margin:0 -8px 0 -2px;}
.works.is-carousel::-webkit-scrollbar{display:none;}
.works.is-carousel .work{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:0;margin:0;scroll-snap-align:start;}
.works.is-carousel .work-body{display:contents;}
.works.is-carousel .work-body > *{padding-left:16px;padding-right:16px;}
.works.is-carousel .work-vol{padding-top:14px;}
.works.is-carousel .work-title{padding-top:2px;align-self:start;}
.works.is-carousel .work-author{padding-top:2px;}
.works.is-carousel .work-status{padding-top:8px;margin:0;align-self:end;}
.works.is-carousel .work-link{padding-top:4px;padding-bottom:12px;}
.car-nav{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;}
.car-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316142E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center/18px 18px no-repeat;cursor:pointer;padding:0;}
.car-btn[data-dir="-1"]{transform:scaleX(-1);}
.car-btn:hover{background-color:var(--tint-blue);}
.car-btn:disabled{opacity:.3;cursor:default;background-color:#fff;}
@media (max-width:899px){
  .works.is-carousel{grid-auto-columns:calc((100% - 12px) / 2.3);column-gap:12px;margin:0 -20px;padding:2px 20px 12px;scroll-padding-inline:20px;}
}
@media (max-width:599px){
  .works.is-carousel{grid-auto-columns:68%;}
  .works.is-carousel .work-body > *{padding-left:14px;padding-right:14px;}
  .works.is-carousel .work-title,.works.is-carousel .work-title.is-long{font-size:16px;letter-spacing:0;}
}

/* ---------- revisions: sub-nav cue, sticky labels, carousel side arrows ---------- */
@media (max-width:700px){
  div.sub-nav.show::after{animation:none !important;width:18px;height:18px;margin-top:-9px;right:8px;border:0 !important;border-radius:0;box-shadow:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A576E' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center/16px 16px no-repeat;}
  div.sub-nav.show::before{width:48px !important;}
  div.sub-nav.show .sub-nav-in{padding-right:32px !important;}
}
@media (max-width:899px){
  .sticky-cta .btn{white-space:nowrap;}
  .sticky-cta .btn-sub{flex:0 0 auto;padding:0 14px;}
  .sticky-cta .btn-grad{flex:1 1 auto;}
}
@media (max-width:599px){
  .cta-pair .btn{white-space:nowrap;}
  .cta-pair .btn-sub{flex:0 0 auto;padding:0 12px;}
  .cta-pair .btn-grad{flex:1 1 auto;}
}
.car{position:relative;}
.car .car-btn{position:absolute;top:calc(50% - 22px);z-index:2;width:44px;height:44px;border:1px solid var(--line);background-color:rgba(255,255,255,.94);background-size:16px 16px;box-shadow:0 2px 8px rgba(22,20,46,.16);transition:opacity .2s;}
.car .car-btn[data-dir="-1"]{left:-6px;}
.car .car-btn[data-dir="1"]{right:-6px;}
.car .car-btn:disabled{opacity:0;pointer-events:none;}
@media (max-width:899px){
  .car .car-btn{width:44px;height:44px;top:calc(50% - 22px);}
  .car .car-btn[data-dir="-1"]{left:-12px;}
  .car .car-btn[data-dir="1"]{right:-12px;}
}
.works.is-carousel{touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;}

/* CTA labels never wrap: nowrap must win over the phrase-break fallback */
.btn:not(.btn-line),.sticky-cta .btn{overflow-wrap:normal;word-break:keep-all;}
@media (max-width:599px){
  .cta-pair .btn-grad{min-width:max-content;}
  .cta-pair .btn-sub{flex:1 1 auto;min-width:max-content;padding:0 8px;}
  .cta-pair .btn{font-size:clamp(12.5px,3.6vw,16px);}
  .band .cta-pair .btn{font-size:clamp(12.5px,3.6vw,15px);}
  .band .cta-pair .btn-grad{padding:0 10px;}
}

/* ---------- S08 pillar labels: the reading is small plain text at all widths (was narrow screens only) ---------- */
.pillar .card-label .nw{font-size:12px;font-weight:500;letter-spacing:.02em;color:var(--muted);}

/* ---------- footer: PROJECT / SERVICES / SUPPORT side by side below the brand block (overrides site-chrome.css at <=1080px;
   site-chrome.css loads after this file, so the selectors carry footer.ftr-gs to win) ---------- */
@media (max-width:1080px){
  footer.ftr-gs .ftr-gs-top{grid-template-columns:repeat(3,minmax(0,1fr)) !important;column-gap:24px !important;}
  footer.ftr-gs .ftr-gs-brand{grid-column:1 / -1;}
  footer.ftr-gs .ftr-gs-col a{word-break:keep-all;overflow-wrap:anywhere;}
  footer.ftr-gs .ftr-gs-col li{line-height:1.5;}
}
@media (max-width:560px){
  footer.ftr-gs .ftr-gs-top{grid-template-columns:repeat(3,auto) !important;justify-content:space-between;column-gap:14px !important;}
}
@media (max-width:340px){
  footer.ftr-gs .ftr-gs-top{column-gap:8px !important;}
  footer.ftr-gs .ftr-gs-col a{font-size:11.5px !important;}
}

/* ---------- horizontal scrollers (sub-nav / works carousel): no vertical movement inside ---------- */
.sub-nav .sub-nav-in{overflow-y:hidden;overscroll-behavior-x:contain;}
.works.is-carousel{overflow-y:hidden;}

/* ---------- narrow screens (cards in one column): card headings wrap naturally ----------
   (no forced <br> in the big card headings and no balanced wrapping; heights no longer need to match) */
@media (max-width:639px){
  .cbig br{display:none;}
  main :is(.card,.work,.elig li,.journey li,.steps3 li,.plan,.kv,.target,.note-box,.band-box) :is(h3,h4,.cbig,.card-label,.plan-name,.work-title,.band-ttl){text-wrap:wrap;}
}

/* ---------- narrow screens: body copy is justified so every line ends at the right edge ----------
   (left alignment left 64 of 113 non-final lines short of the edge at 390px; justified: 3).
   Headings, labels, figures, prices, tags, work-card text and intentionally broken lines are excluded.
   Emphasised phrases inside body copy may break mid-phrase so they do not leave a gap at the end of the previous line. */
@media (max-width:899px){
  main :is(p,.dotlist li,dd):not(.eyebrow,.card-label,.cbig,.band-ttl,.fig,.cap,.sub,.amount,.plan-name,.plan-price,.plan-lim,.tl,.tv,.sticker,.hero-brand,.sign-name,.work-vol,.work-author,.work-status,.work-link,.after-form){text-align:justify;text-justify:inter-character;}
  main :is(p,.dotlist li,dd):not(.eyebrow,.card-label,.cbig,.band-ttl,.fig,.cap,.sub,.amount,.plan-name,.plan-price,.plan-lim,.tl,.tv,.sticker,.hero-brand,.sign-name,.work-vol,.work-author,.work-status,.work-link,.after-form) :is(b,strong,.hl,.em){word-break:normal;overflow-wrap:break-word;}
  /* short bullet items: the phrase marks already keep the last line from being 1-2 characters, and pretty wrapping would
     break earlier lines short, which justification then stretches (360px: 4.2px per character -> 2.9px) */
  main .dotlist li{text-wrap:wrap;}
}

/* ---------- INO Fine support NFT: image first in the HTML (above the table on narrow screens); on PC it stays in the right column ---------- */
@media (min-width:900px){.nft-grid > .nft-img{grid-column:2;grid-row:1;} .nft-grid > .kv{grid-column:1;grid-row:1;}}

/* ---------- merged section (support + contract): group headings ---------- */
.grp-ttl{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-family:var(--ff-head);font-weight:900;font-size:clamp(18px,.8vw + 15px,22px);line-height:1.4;color:var(--ink);}
.grp-ttl::before{content:"";flex-shrink:0;width:6px;height:1.2em;border-radius:3px;background:linear-gradient(180deg,var(--blue),var(--magenta));}
.grid + .grp-ttl{margin-top:clamp(40px,5vw,64px);}
.cpt .more-link{display:inline-flex;align-items:center;min-height:44px;margin-top:6px;font-weight:700;}
@media (prefers-reduced-motion:no-preference){.hero-points li:nth-child(4){animation-delay:.9s;}}

/* ---------- icons in card badges (eligibility / support / contract) ---------- */
.num-badge.ico i{font-size:18px;line-height:1;}
.cpt > .num-badge.ico{margin-bottom:14px;}

/* ---------- works carousel: mouse drag on PC (touch keeps native scrolling) ---------- */
@media (hover:hover) and (pointer:fine){.works.is-carousel{cursor:grab;}}
.works.is-carousel.is-dragging{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none;}
.works.is-carousel.is-dragging *{pointer-events:none;}
.works.is-carousel img{-webkit-user-drag:none;}

/* ---------- entry form: small back link under the submit button ---------- */
.entry-back{display:flex;align-items:center;justify-content:center;gap:8px;width:fit-content;min-height:44px;margin:12px auto 0;padding:0 18px;border-radius:999px;font-family:var(--ff-head);font-weight:700;font-size:14px;color:var(--muted);text-decoration:none;}
.entry-back::before{content:"";width:7px;height:7px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);}
.entry-back:hover{color:var(--ink);background:var(--paper);}
.entry-back:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}

/* ---------- back to top ---------- */
.to-top{position:fixed;right:22px;bottom:calc(22px + var(--tt-lift,0px));z-index:75;width:56px;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink);font-family:inherit;cursor:pointer;box-shadow:0 6px 18px -6px rgba(22,20,46,.28);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease,visibility .25s,background .2s ease,bottom .25s ease;}
.to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
.to-top:hover{background:var(--paper);}
.to-top:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
.to-top i{font-size:.95rem;line-height:1;color:var(--blue);}
.to-top-label{font-family:"Oswald",var(--ff-head);font-size:.58rem;font-weight:700;letter-spacing:.08em;line-height:1;}
@media (max-width:700px){
  .to-top{right:14px;bottom:calc(14px + var(--tt-lift,0px));width:50px;height:50px;}
  .to-top i{font-size:.88rem;}
}
@media (prefers-reduced-motion:reduce){
  .to-top{transition:opacity .01s linear;}
}
/* 11/10 「どこで知りましたか」の選択肢（.opt を小さめに2列）と「その他」の記入欄 */
.src-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.opt.opt-sm{min-height:48px;padding:8px 12px;gap:8px;font-size:15px;}
.src-other{margin-top:12px;}
.src-other .fhelp{display:block;margin-bottom:6px;}
@media (max-width:420px){.opt.opt-sm{padding:8px 8px;gap:6px;font-size:14px;}}
@media (max-width:360px){.src-opts{grid-template-columns:minmax(0,1fr);}}
