/* =====================================================================
   CROSS — 医療的ケア体制構築プラットフォーム
   Design tokens
   ===================================================================== */
:root{
  --navy:#0A1B33; --navy2:#11284B; --navy3:#1A3560;
  --blue:#1D5BD8; --blue2:#3E7BF2; --blue-l:#DCE7FB;
  --sky:#EAF1FB; --mist:#F3F6FA; --mist2:#F8FAFC;
  --line:#DDE4EE; --line2:#E9EEF5;
  --ink:#0A1B33; --ink2:#4A5A72; --ink3:#8292A8;
  --cyan:#13A9BC; --cyan-l:#DDF4F7;
  --alert:#D2483F; --alert-l:#FCEBEA;
  --ok:#1B8F63; --ok-l:#E3F4EC;
  --amber:#B7791F; --amber-l:#FBF1DF;
  --r:12px; --r-lg:20px; --r-xl:28px;
  --sh:0 1px 2px rgba(10,27,51,.05),0 10px 30px rgba(10,27,51,.07);
  --sh-lg:0 2px 4px rgba(10,27,51,.05),0 30px 70px rgba(10,27,51,.14);
  --f-disp:"IBM Plex Sans JP","Noto Sans JP",sans-serif;
  --f-body:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,monospace;
  --wrap:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{font-family:var(--f-body);color:var(--ink);background:#fff;line-height:1.8;font-size:16px;letter-spacing:.02em;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1}
img,svg{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;cursor:pointer;color:inherit}
:focus-visible{outline:3px solid var(--blue2);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.mono{font-family:var(--f-mono);font-feature-settings:"tnum";letter-spacing:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:760px){.wrap{padding:0 20px}}

/* ---------- status badges (config: CROSS.status) ---------- */
.st{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.04em;border-radius:999px;padding:2px 10px;white-space:nowrap;line-height:1.7}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st-live{background:var(--ok-l);color:var(--ok)}
.st-consult{background:var(--sky);color:var(--blue)}
.st-dev{background:#fff;color:var(--navy);border:1px solid var(--line)}
.st-plan{background:#fff;color:var(--ink3);border:1px dashed var(--ink3)}
.on-dark .st-dev{background:transparent;color:#C9D6EA;border-color:rgba(255,255,255,.25)}
.on-dark .st-plan{background:transparent;color:#9FB0CA;border-color:rgba(255,255,255,.3)}
.sample{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--ink3);letter-spacing:.06em}
.sample::before{content:"";width:14px;height:1px;background:currentColor}
.tbd{display:none}
body.draft .tbd{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;color:#7A5300;background:#FFF3D1;border:1px solid #EFD48B;border-radius:4px;padding:0 6px;margin-left:6px;line-height:18px;white-space:nowrap;vertical-align:middle;letter-spacing:.02em}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.88);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid transparent;transition:border-color .2s}
.hdr.scrolled{border-color:var(--line)}
.hdr .wrap{display:flex;align-items:center;height:68px;gap:28px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.brand svg{width:30px;height:30px}
.brand-name{font-family:var(--f-disp);font-weight:700;font-size:20px;letter-spacing:.18em}
.brand-sub{font-size:10.5px;color:var(--ink3);border-left:1px solid var(--line);padding-left:10px;line-height:1.35;letter-spacing:.04em}
.gnav{display:flex;gap:26px;margin-left:auto;font-size:13.5px;font-weight:500}
.gnav a{text-decoration:none;color:var(--ink2);transition:color .15s}
.gnav a:hover{color:var(--navy)}
.hdr-cta{display:flex;gap:10px;align-items:center}
@media(max-width:1080px){.gnav{display:none}.hdr-cta{margin-left:auto}}
@media(max-width:640px){.brand-sub{display:none}.hdr .wrap{height:58px}.hdr-cta .btn-text{display:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:10px;font-weight:700;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s,border-color .15s;white-space:nowrap;letter-spacing:.03em}
.btn-primary{background:var(--blue);color:#fff;padding:17px 28px;font-size:16px;box-shadow:0 8px 22px rgba(29,91,216,.28)}
.btn-primary:hover{background:#174FC2;transform:translateY(-1px);box-shadow:0 12px 28px rgba(29,91,216,.34)}
.btn-primary .ar{width:20px;height:20px}
.btn-line{background:#fff;color:var(--navy);padding:16px 24px;font-size:15px;border:1px solid var(--line)}
.btn-line:hover{border-color:var(--navy)}
.btn-text{background:none;color:var(--ink2);font-size:13.5px;padding:8px 6px}
.btn-sm{padding:10px 16px;font-size:13.5px;box-shadow:none}
.btn-light{background:#fff;color:var(--navy);padding:17px 28px;font-size:16px}
.btn-light:hover{transform:translateY(-1px)}
.btn-ghost-d{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);padding:16px 24px;font-size:15px}
.btn-ghost-d:hover{border-color:#fff}
@media(max-width:560px){.btn{white-space:normal;text-align:center}}

/* ---------- section scaffold ---------- */
section{position:relative}
.sec{padding:140px 0}
.sec-md{padding:110px 0}
.bg-mist{background:var(--mist)}
.bg-navy{background:var(--navy);color:#fff}
.eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.16em;color:var(--blue);text-transform:uppercase;margin-bottom:22px}
.eyebrow b{font-weight:500;color:var(--ink3)}
.bg-navy .eyebrow{color:#7FB0FF}.bg-navy .eyebrow b{color:#7F92B0}
.h2{font-family:var(--f-disp);font-weight:700;font-size:clamp(28px,3.6vw,46px);line-height:1.38;letter-spacing:.01em}
.h2 em{font-style:normal;color:var(--blue)}
.bg-navy .h2 em{color:#7FB0FF}
.lead{color:var(--ink2);font-size:17px;line-height:1.95;margin-top:22px;max-width:640px}
.bg-navy .lead{color:#B8C6DC}
.sec-head{margin-bottom:64px}
.sec-head.center{text-align:center}
.sec-head.center .lead,.sec-head.center .eyebrow{margin-left:auto;margin-right:auto;justify-content:center}
.note{font-size:12px;color:var(--ink3);line-height:1.8}
.bg-navy .note{color:#8C9EBB}
@media(max-width:760px){.sec{padding:88px 0}.sec-md{padding:72px 0}.sec-head{margin-bottom:40px}.lead{font-size:15.5px}}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
html.static .rv{opacity:1!important;transform:none!important}

/* =====================================================================
   HERO
   ===================================================================== */
.hero{padding:80px 0 0;overflow:hidden;background:
  linear-gradient(180deg,#fff 0,#fff 55%,var(--mist2) 100%)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(800px 520px at 78% 30%,#000 0,transparent 75%);-webkit-mask-image:radial-gradient(800px 520px at 78% 30%,#000 0,transparent 75%);opacity:.75;pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1fr 1.02fr;gap:56px;align-items:center}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px 6px 8px;margin-bottom:28px}
.hero-kicker i{width:22px;height:22px;border-radius:50%;background:var(--navy);display:grid;place-items:center}
.hero h1{font-family:var(--f-disp);font-weight:700;font-size:clamp(34px,5vw,66px);line-height:1.24;letter-spacing:-.005em}
.hero h1 span{display:block;white-space:nowrap}
.hero h1 .q{color:var(--blue)}
.hero-verbs{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:30px}
.hero-verbs li{list-style:none;display:flex;align-items:center;gap:10px;font-family:var(--f-disp);font-weight:600;font-size:16px;color:var(--navy)}
.hero-verbs li:not(:last-child)::after{content:"";width:18px;height:1px;background:var(--ink3)}
.hero-prod{margin-top:34px;padding-top:26px;border-top:1px solid var(--line);max-width:560px}
.hero-prod .nm{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.hero-prod .nm b{font-family:var(--f-disp);font-weight:700;letter-spacing:.2em;font-size:18px}
.hero-prod .nm span{font-size:13.5px;font-weight:700;color:var(--ink2)}
.hero-prod p{font-size:14.5px;color:var(--ink2);margin-top:10px;line-height:1.95}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.hero-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:12.5px;color:var(--ink3)}
.hero-meta span{display:flex;align-items:center;gap:6px}
.hero-meta svg{width:14px;height:14px;stroke:var(--ok)}

/* hero visual */
.hv{position:relative;height:600px}
.hv-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hv-lines path{fill:none;stroke:var(--blue);stroke-width:1.5;opacity:.35}
.hv-lines .flow{stroke:var(--cyan);stroke-width:2.2;opacity:1;stroke-dasharray:6 160;animation:flow 3.2s linear infinite}
.hv-lines .flow.f2{animation-delay:-1.1s}.hv-lines .flow.f3{animation-delay:-2.1s}
@keyframes flow{to{stroke-dashoffset:-332}}
.node{position:absolute;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px 10px 10px;box-shadow:var(--sh);z-index:2}
.node i{width:34px;height:34px;border-radius:9px;background:var(--navy);display:grid;place-items:center;flex:none}
.node i svg{width:18px;height:18px;stroke:#fff}
.node b{display:block;font-size:13px;line-height:1.3}
.node small{display:block;font-family:var(--f-mono);font-size:10px;color:var(--ink3);letter-spacing:.06em}
.node .pulse{width:7px;height:7px;border-radius:50%;background:var(--cyan);margin-left:4px;box-shadow:0 0 0 0 rgba(19,169,188,.5);animation:pulse 2.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(19,169,188,.45)}70%{box-shadow:0 0 0 8px rgba(19,169,188,0)}100%{box-shadow:0 0 0 0 rgba(19,169,188,0)}}
.n-fac{left:0;top:40px}.n-per{left:-24px;top:270px}.n-hos{left:10px;bottom:56px}
.dash{position:absolute;right:0;top:20px;width:430px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-lg);overflow:hidden;z-index:3}
.dash-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line2);background:var(--mist2)}
.dash-bar .dots{display:flex;gap:5px}.dash-bar .dots i{width:8px;height:8px;border-radius:50%;background:var(--line)}
.dash-bar b{font-family:var(--f-mono);font-size:11px;font-weight:500;color:var(--ink3);margin-left:8px;letter-spacing:.06em}
.dash-bar .live{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:var(--cyan)}
.dash-bar .live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan);animation:pulse 2.2s infinite}
.dash-body{padding:20px 20px 18px}
.dash-fac{display:flex;justify-content:space-between;align-items:flex-start}
.dash-fac b{font-size:17px;display:block}
.dash-fac small{font-size:11.5px;color:var(--ink3)}
.score{display:flex;align-items:center;gap:14px;margin-top:18px;padding:16px;border-radius:14px;background:var(--mist)}
.ring{width:76px;height:76px;flex:none;position:relative}
.ring svg{width:76px;height:76px;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:7}
.ring .bg{stroke:#fff}.ring .fg{stroke:var(--blue);stroke-linecap:round;transition:stroke-dashoffset 1.6s cubic-bezier(.2,.7,.2,1)}
.ring span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-mono);font-weight:600;font-size:22px}
.score-t small{font-size:11.5px;color:var(--ink2);display:block}
.score-t b{font-family:var(--f-mono);font-size:13px;font-weight:500;color:var(--ink3)}
.score-t b em{font-style:normal;color:var(--ink);font-size:22px;font-weight:600}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.kpi{border:1px solid var(--line2);border-radius:12px;padding:12px}
.kpi small{display:block;font-size:11px;color:var(--ink2);line-height:1.4}
.kpi b{display:block;font-family:var(--f-mono);font-weight:600;font-size:24px;margin-top:4px;line-height:1.1}
.kpi b u{text-decoration:none;font-family:var(--f-body);font-size:11px;font-weight:700;color:var(--ink2);margin-left:2px}
.kpi.gap{background:var(--alert-l);border-color:#F3C9C5}
.kpi.gap b{color:var(--alert)}
.kpi.gap small{color:var(--alert);font-weight:700}
.dash-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:12px 14px;border:1px solid var(--line2);border-radius:12px;font-size:12.5px}
.dash-row b{font-family:var(--f-mono);font-weight:600;font-size:15px}
.gapbar{margin-top:14px}
.gapbar .lbl{display:flex;justify-content:space-between;font-size:11px;color:var(--ink2);margin-bottom:6px}
.gapbar .track{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.gapbar .track i{height:10px;border-radius:3px;background:var(--blue);transition:background .4s}
.gapbar .track i.miss{background:transparent;border:1.5px dashed var(--alert)}
.hv-tag{position:absolute;right:20px;bottom:6px;font-size:11px;color:var(--ink3)}
.trust{position:relative;margin-top:72px;border-top:1px solid var(--line);background:#fff}
.trust .wrap{display:grid;grid-template-columns:1.2fr repeat(4,1fr);align-items:stretch}
.trust .t0{display:flex;align-items:center;font-size:12px;color:var(--ink2);font-weight:700;padding:22px 16px 22px 0;line-height:1.6}
.trust .ti{padding:22px 20px;border-left:1px solid var(--line)}
.trust .ti b{display:block;font-family:var(--f-mono);font-weight:600;font-size:24px;line-height:1.2}
.trust .ti b u{text-decoration:none;font-family:var(--f-body);font-size:12px;font-weight:700;margin-left:3px}
.trust .ti small{font-size:11.5px;color:var(--ink2)}
@media(max-width:1080px){
  .hero{padding-top:44px}
  .hero-grid{grid-template-columns:1fr;gap:20px}
  .hv{height:560px;max-width:620px;margin:0 auto;width:100%}
}
@media(max-width:900px){.trust .wrap{grid-template-columns:repeat(2,1fr)}.trust .t0{grid-column:1/-1;padding-bottom:0}.trust .ti{border-left:0;border-top:1px solid var(--line)}.trust .ti:nth-child(odd){border-left:1px solid var(--line)}}
@media(max-width:640px){
  .hero h1{font-size:clamp(28px,8.4vw,40px)}
  .hero-verbs li{font-size:14px}
  .hero-cta .btn{width:100%}
  .hv{height:auto;padding-top:0}
  .hv-lines,.node{display:none}
  .dash{position:relative;width:100%;top:0}
  .hv-mob{display:flex!important}
  .hv-tag{position:static;margin-top:10px;display:block;text-align:right}
  .trust{margin-top:48px}
  .trust .ti b{font-size:20px}
}
.hv-mob{display:none;gap:6px;margin-bottom:12px;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--navy)}
.hv-mob span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 12px}
.hv-mob i{width:14px;height:1px;background:var(--cyan)}

/* =====================================================================
   PROBLEM
   ===================================================================== */
.prob-grid{display:grid;grid-template-columns:1fr 380px 1fr;gap:28px;align-items:center}
.pcards{display:grid;gap:12px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;gap:14px;align-items:flex-start;font-size:14.5px;font-weight:500;line-height:1.6}
.pcard i{width:28px;height:28px;border-radius:8px;background:var(--mist);display:grid;place-items:center;flex:none}
.pcard i svg{width:16px;height:16px;stroke:var(--ink2)}
.pcard small{display:block;font-size:12px;color:var(--ink3);font-weight:400;margin-top:2px}
.split-stage{position:relative;height:420px}
.split-stage svg{width:100%;height:100%;overflow:visible}
.ss-node circle{fill:#fff;stroke:var(--navy);stroke-width:1.5}
.ss-node text{font-family:var(--f-disp);font-weight:700;font-size:15px;fill:var(--navy);text-anchor:middle}
.ss-node .sub{font-family:var(--f-mono);font-size:9px;font-weight:500;fill:var(--ink3);letter-spacing:1px}
.ss-broken{stroke:var(--ink3);stroke-dasharray:3 6;stroke-width:1.2;fill:none;transition:opacity .4s}
.ss-join{stroke:var(--blue);stroke-width:2;fill:none}
.ss-core{transition:opacity .4s, transform .4s;transform-box:fill-box;transform-origin:center}
.ss-msg{position:absolute;left:0;right:0;text-align:center;font-family:var(--f-disp);font-weight:700;font-size:22px;transition:opacity .4s}
.ss-msg.top{top:-6px}
.ss-msg.bot{bottom:-6px;color:var(--blue)}
.prob-foot{margin-top:56px;text-align:center;font-size:15px;color:var(--ink2)}
@media(max-width:1080px){.prob-grid{grid-template-columns:1fr 1fr}.split-stage{grid-column:1/-1;order:-1;max-width:420px;margin:0 auto 20px;width:100%;height:380px}}
@media(max-width:640px){.prob-grid{grid-template-columns:1fr}.split-stage{height:340px}.ss-msg{font-size:18px}}

/* =====================================================================
   CORE
   ===================================================================== */
.core{overflow:hidden}
.core::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 420px at 50% 55%,rgba(62,123,242,.18),transparent 70%);pointer-events:none}
.core-stage{position:relative;height:640px;max-width:1100px;margin:0 auto}
.core-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.core-svg .base{stroke:rgba(255,255,255,.14);stroke-width:1.5;fill:none}
.core-svg .live{stroke:#7FB0FF;stroke-width:2;fill:none;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.4s cubic-bezier(.6,.1,.2,1)}
.core-stage.on .core-svg .live{stroke-dashoffset:0}
.core-svg .pkt{fill:var(--cyan);opacity:0}
.core-stage.on .core-svg .pkt{opacity:1}
.dbcard{position:absolute;width:310px;background:var(--navy2);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-lg);padding:22px 22px 18px;z-index:2;transition:transform 1s cubic-bezier(.2,.7,.2,1),opacity 1s,border-color .3s}
.dbcard:hover{border-color:rgba(127,176,255,.5)}
.dbcard .tag{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:#7FB0FF}
.dbcard h3{font-family:var(--f-disp);font-size:24px;font-weight:700;margin-top:6px;display:flex;align-items:center;gap:12px}
.dbcard h3 i{width:40px;height:40px;border-radius:11px;background:rgba(127,176,255,.14);display:grid;place-items:center}
.dbcard h3 i svg{width:22px;height:22px;stroke:#BFD6FF}
.dbcard p{font-size:13px;color:#B8C6DC;margin-top:10px;line-height:1.8}
.dbcard ul{list-style:none;margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}
.dbcard li{font-size:11.5px;color:#D7E2F3;border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:2px 8px}
.dbcard a{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:12.5px;font-weight:700;color:#7FB0FF;text-decoration:none}
.db-fac{left:0;top:0}.db-per{right:0;top:0}.db-hos{left:50%;bottom:0;margin-left:-155px}
.core-stage:not(.on) .db-fac{transform:translate(-30px,-10px);opacity:.4}
.core-stage:not(.on) .db-per{transform:translate(30px,-10px);opacity:.4}
.core-stage:not(.on) .db-hos{transform:translateY(30px);opacity:.4}
.core-hub{position:absolute;left:50%;top:48%;width:220px;height:220px;margin:-110px 0 0 -110px;border-radius:50%;display:grid;place-items:center;text-align:center;z-index:3}
.core-hub::before,.core-hub::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(127,176,255,.35)}
.core-hub::after{inset:-26px;border-style:dashed;border-color:rgba(127,176,255,.18);animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.core-hub .in{width:170px;height:170px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;box-shadow:0 0 0 10px rgba(127,176,255,.08),0 20px 60px rgba(0,0,0,.35);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.core-stage:not(.on) .core-hub .in{transform:scale(.86)}
.core-hub svg{width:36px;height:36px;margin:0 auto 6px}
.core-hub b{display:block;font-family:var(--f-disp);font-weight:700;letter-spacing:.2em;font-size:19px}
.core-hub small{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;color:var(--ink3);margin-top:2px}
.core-out{margin-top:72px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);overflow:hidden}
.core-out div{background:var(--navy);padding:24px 26px}
.core-out small{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;color:#7FB0FF}
.core-out b{display:block;font-family:var(--f-disp);font-size:19px;margin-top:6px;line-height:1.5}
.core-out span{display:block;font-size:13px;color:#A9B8CF;margin-top:6px}
.core-eq{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;margin-top:28px;font-family:var(--f-disp);font-weight:700;font-size:15px;color:#DCE6F5}
.core-eq span{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 14px}
.core-eq i{font-style:normal;color:#7FB0FF}
@media(max-width:1080px){
  .core-stage{height:auto;display:grid;gap:14px;max-width:560px}
  .core-svg{display:none}
  .dbcard{position:relative;width:auto;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;margin:0!important;transform:none!important;opacity:1!important}
  .core-hub{position:relative;left:auto;top:auto;margin:10px auto;order:3;width:180px;height:180px}
  .core-hub .in{width:150px;height:150px}
  .db-fac{order:1}.db-per{order:2}.db-hos{order:4}
  .core-stage::before{content:"";position:absolute;left:50%;top:40px;bottom:40px;width:2px;margin-left:-1px;background:linear-gradient(180deg,rgba(127,176,255,.5),rgba(127,176,255,.1));z-index:0}
  .core-out{grid-template-columns:1fr}
}

/* =====================================================================
   APP WINDOW (shared for DB UIs)
   ===================================================================== */
.feat{display:grid;grid-template-columns:.78fr 1.22fr;gap:64px;align-items:center}
.feat.rev{grid-template-columns:1.22fr .78fr}
.feat.rev .feat-copy{order:2}
.feat-copy .h2{font-size:clamp(26px,3vw,38px)}
.feat-pts{list-style:none;margin-top:28px;display:grid;gap:14px}
.feat-pts li{display:grid;grid-template-columns:28px 1fr;gap:12px;font-size:14.5px;line-height:1.75;color:var(--ink2)}
.feat-pts li b{color:var(--ink);display:block;font-size:15px}
.feat-pts i{width:28px;height:28px;border-radius:8px;background:var(--sky);display:grid;place-items:center;font-family:var(--f-mono);font-size:11px;font-style:normal;font-weight:600;color:var(--blue)}
.feat-status{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:26px}
.app{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-lg);overflow:hidden}
.app-top{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line2);background:var(--mist2)}
.app-top .dots{display:flex;gap:5px}.app-top .dots i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.app-top .crumb{font-size:12px;color:var(--ink3);display:flex;gap:8px;align-items:center}
.app-top .crumb b{color:var(--ink);font-weight:700}
.app-top .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.app-in{display:grid;grid-template-columns:168px 1fr;min-height:470px}
.app-side{border-right:1px solid var(--line2);padding:16px 10px;background:#fff}
.app-side .logo{display:flex;align-items:center;gap:8px;padding:0 8px 14px;font-family:var(--f-disp);font-weight:700;letter-spacing:.16em;font-size:13px}
.app-side .logo svg{width:20px;height:20px}
.app-side a{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink2);text-decoration:none;padding:8px 10px;border-radius:8px;margin-bottom:2px}
.app-side a svg{width:15px;height:15px;stroke:currentColor}
.app-side a.on{background:var(--sky);color:var(--blue);font-weight:700}
.app-side .sep{font-size:10px;font-family:var(--f-mono);letter-spacing:.12em;color:var(--ink3);padding:14px 10px 6px}
.app-main{padding:22px 24px;min-width:0}
.app-h{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.app-h b{font-size:19px;display:block}
.app-h small{font-size:12px;color:var(--ink3)}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;border-radius:6px;padding:3px 9px;white-space:nowrap}
.chip.ok{background:var(--ok-l);color:var(--ok)}
.chip.warn{background:var(--amber-l);color:var(--amber)}
.chip.ng{background:var(--alert-l);color:var(--alert)}
.chip.info{background:var(--sky);color:var(--blue)}
.chip.mute{background:var(--mist);color:var(--ink2)}
@media(max-width:1080px){.feat,.feat.rev{grid-template-columns:1fr;gap:40px}.feat.rev .feat-copy{order:0}}
@media(max-width:760px){.app-in{grid-template-columns:1fr}.app-side{display:none}.app-main{padding:18px 16px}}

/* facility db */
.fac-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:12px}
.fbox{border:1px solid var(--line2);border-radius:14px;padding:16px}
.fbox h4{font-size:12px;color:var(--ink2);font-weight:700;display:flex;justify-content:space-between;align-items:center}
.big-gap{grid-row:span 2;display:flex;flex-direction:column}
.big-gap .nums{display:flex;align-items:flex-end;gap:16px;margin-top:10px}
.big-gap .nums b{font-family:var(--f-mono);font-weight:600;font-size:54px;line-height:1}
.big-gap .nums b small{font-size:22px;color:var(--ink3);font-weight:500}
.big-gap .short{margin-left:auto;text-align:right;background:var(--alert-l);border-radius:12px;padding:10px 14px}
.big-gap .short small{display:block;font-size:11px;font-weight:700;color:var(--alert)}
.big-gap .short b{font-size:30px;color:var(--alert)}
.big-gap .short b u{text-decoration:none;font-family:var(--f-body);font-size:13px;margin-left:2px}
.seats{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin-top:18px}
.seat{aspect-ratio:1/1.25;border-radius:8px;background:var(--blue);display:grid;place-items:center;transition:background .5s,border-color .5s}
.seat svg{width:58%;stroke:#fff}
.seat.miss{background:#fff;border:1.5px dashed var(--alert)}
.seat.miss svg{stroke:var(--alert);opacity:.6}
.seat-legend{display:flex;gap:16px;font-size:11.5px;color:var(--ink2);margin-top:12px}
.seat-legend span{display:flex;align-items:center;gap:6px}
.seat-legend i{width:12px;height:12px;border-radius:3px;background:var(--blue)}
.seat-legend i.m{background:#fff;border:1.5px dashed var(--alert)}
.big-gap .msg{margin-top:auto;padding-top:16px;font-size:13px;color:var(--ink2);border-top:1px dashed var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}
.big-gap .msg b{color:var(--alert)}
.fkpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fkpi{border:1px solid var(--line2);border-radius:14px;padding:14px}
.fkpi small{display:block;font-size:11.5px;color:var(--ink2)}
.fkpi b{display:block;font-family:var(--f-mono);font-weight:600;font-size:26px;line-height:1.2;margin-top:4px}
.fkpi b u{text-decoration:none;font-family:var(--f-body);font-size:12px;margin-left:2px;color:var(--ink2)}
.fkpi .bar{height:5px;border-radius:3px;background:var(--mist);margin-top:8px;overflow:hidden}
.fkpi .bar i{display:block;height:100%;background:var(--blue);border-radius:3px;width:0;transition:width 1.4s cubic-bezier(.2,.7,.2,1)}
.fstate{display:grid;gap:8px}
.fstate div{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line2);border-radius:12px;padding:12px 14px;font-size:13px;font-weight:500}
.night{margin-top:12px}
.night .days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:10px}
.night .days div{text-align:center;font-size:10.5px;color:var(--ink3)}
.night .days i{display:block;height:26px;border-radius:6px;background:var(--blue-l);margin-top:4px;position:relative}
.night .days i.ng{background:var(--alert-l);outline:1.5px dashed var(--alert);outline-offset:-1.5px}
@media(max-width:560px){.fac-grid,.fkpis{grid-template-columns:1fr}.big-gap .nums b{font-size:44px}.seats{gap:4px}}

/* personnel db */
.ptabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.ptab{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 11px;font-size:12px;font-weight:700;color:var(--ink2);display:flex;gap:6px;align-items:center}
.ptab span{font-family:var(--f-mono);font-weight:500;color:var(--ink3)}
.ptab.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.ptab.on span{color:#9FB6DA}
.ptable{width:100%;border-collapse:collapse;font-size:13px}
.ptable th{font-size:11px;font-weight:700;color:var(--ink3);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line2);white-space:nowrap}
.ptable td{padding:11px 10px;border-bottom:1px solid var(--line2);vertical-align:middle}
.ptable tr{transition:background .2s}
.ptable tr.pri{background:#F7FAFF}
.ptable tr.pri td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
.who{display:flex;align-items:center;gap:10px;white-space:nowrap}
.av{width:30px;height:30px;border-radius:50%;background:var(--sky);color:var(--blue);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.who small{display:block;font-size:11px;color:var(--ink3);line-height:1.2}
.prog{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;width:120px}
.prog i{height:6px;border-radius:2px;background:var(--line2)}
.prog i.d{background:var(--blue)}
.prog i.c{background:var(--ok)}
.prog-l{font-size:10px;color:var(--ink3);margin-top:3px;font-family:var(--f-mono)}
.pnext{margin-top:14px;display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;border-radius:12px;padding:12px 16px;font-size:13px}
.pnext b{font-family:var(--f-mono);font-size:20px}
.pnext small{color:#A9B8CF;font-size:11px;display:block}
.pnext .btn{margin-left:auto;padding:8px 14px;font-size:12px;background:#fff;color:var(--navy);border-radius:8px}
.ptable-wrap{overflow-x:auto}
@media(max-width:640px){.ptable .hide-s{display:none}.prog{width:84px}.pnext{flex-wrap:wrap}.pnext .btn{margin-left:0}}

/* hospital db */
.hos{display:grid;grid-template-columns:1fr 300px;gap:0;min-height:520px}
.hos-filters{display:flex;gap:8px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line2)}
.hf{display:flex;flex-direction:column;gap:2px}
.hf label{font-size:10px;font-family:var(--f-mono);letter-spacing:.1em;color:var(--ink3)}
.hf select{font:inherit;font-size:12.5px;font-weight:700;border:1px solid var(--line);border-radius:8px;padding:6px 26px 6px 10px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238292A8' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 9px center;appearance:none;-webkit-appearance:none;color:var(--ink)}
.hos-map{position:relative;background:linear-gradient(180deg,#F5F8FC,#EEF3F9);border-right:1px solid var(--line2);overflow:hidden}
.hos-map svg{width:100%;height:100%}
.hos-map .land path{fill:#fff;stroke:#C9D5E6;stroke-width:.8}
.hos-map .land path.hl{fill:#E3ECFB}
.pin{cursor:pointer;transform-box:fill-box;transform-origin:50% 100%}
.pin .halo{fill:var(--blue);opacity:.14}
.pin .dot{stroke:#fff;stroke-width:2}
.pin.ok .dot{fill:var(--blue)}
.pin.full .dot{fill:var(--ink3)}
.pin.dim{opacity:.18}
.pin.sel .halo{opacity:.3;animation:halo 1.8s infinite}
@keyframes halo{0%{r:10}60%{r:18}100%{r:10}}
.pin text{font-family:var(--f-body);font-size:11px;font-weight:700;fill:var(--navy);paint-order:stroke;stroke:#fff;stroke-width:3px}
.pin-drop{animation:drop .6s cubic-bezier(.3,1.6,.5,1) both}
@keyframes drop{from{transform:translateY(-14px);opacity:0}to{transform:none;opacity:1}}
.map-legend{position:absolute;left:14px;bottom:12px;display:flex;gap:12px;font-size:11px;color:var(--ink2);background:rgba(255,255,255,.85);border-radius:8px;padding:4px 10px}
.map-legend span{display:flex;align-items:center;gap:5px}
.map-legend i{width:9px;height:9px;border-radius:50%;background:var(--blue)}
.map-legend i.f{background:var(--ink3)}
.hos-list{padding:14px;display:flex;flex-direction:column;gap:8px;max-height:520px;overflow:auto;background:#fff}
.hos-list .cnt{font-size:12px;color:var(--ink2);padding:2px 4px 6px;display:flex;justify-content:space-between}
.hos-list .cnt b{font-family:var(--f-mono);font-size:15px;color:var(--ink)}
.hcard{border:1px solid var(--line2);border-radius:12px;padding:12px 14px;cursor:pointer;transition:border-color .2s,box-shadow .2s;background:#fff;text-align:left;width:100%}
.hcard:hover{border-color:#B9CBEA}
.hcard.sel{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,91,216,.12)}
.hcard .t{display:flex;justify-content:space-between;align-items:center;gap:8px}
.hcard b{font-size:14px}
.hcard .m{font-size:11.5px;color:var(--ink3);margin-top:2px}
.hcard .cap{display:flex;align-items:baseline;gap:4px;margin-top:8px;font-size:11.5px;color:var(--ink2)}
.hcard .cap strong{font-family:var(--f-mono);font-size:20px;color:var(--blue)}
.hcard.full .cap strong{color:var(--ink3)}
.hcard .items{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.hcard .items span{font-size:10.5px;background:var(--mist);border-radius:4px;padding:1px 6px;color:var(--ink2)}
.hos-empty{font-size:13px;color:var(--ink3);text-align:center;padding:30px 10px}
@media(max-width:900px){.hos{grid-template-columns:1fr}.hos-map{height:360px;border-right:0;border-bottom:1px solid var(--line2)}.hos-list{max-height:none}}

/* =====================================================================
   MATCHING
   ===================================================================== */
.match{background:var(--navy);color:#fff;overflow:hidden}
.mstage{display:grid;grid-template-columns:1fr 64px 1.1fr 64px 1fr;gap:0;align-items:stretch;position:relative;margin-top:8px}
.mcol{background:var(--navy2);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);padding:22px;position:relative;z-index:2}
.mcol .h{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:#7FB0FF;display:flex;justify-content:space-between;align-items:center}
.mcol h3{font-family:var(--f-disp);font-size:19px;margin-top:6px}
.mlink{position:relative;z-index:1;display:flex;align-items:center}
.mlink svg{width:100%;height:100%;overflow:visible}
.mfac .big{display:flex;align-items:baseline;gap:8px;margin-top:18px}
.mfac .big b{font-family:var(--f-mono);font-weight:600;font-size:56px;line-height:1;transition:color .4s}
.mfac .big small{font-size:14px;color:#A9B8CF}
.mfac .bar{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin-top:16px}
.mfac .bar i{height:12px;border-radius:3px;background:#7FB0FF;transition:all .5s}
.mfac .bar i.miss{background:transparent;border:1.5px dashed #F08A82}
.mfac .bar i.fill{background:var(--cyan)}
.mgap{margin-top:18px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.1);padding-top:16px}
.mgap small{font-size:12px;color:#A9B8CF}
.mgap b{font-family:var(--f-mono);font-size:34px;font-weight:600;color:#F08A82;transition:color .4s}
.mgap b.zero{color:var(--cyan)}
.mgap b u{text-decoration:none;font-family:var(--f-body);font-size:13px;margin-left:2px}
.mppl{display:grid;gap:8px;margin-top:16px}
.mp{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 12px;transition:all .5s}
.mp .av{background:rgba(127,176,255,.16);color:#BFD6FF}
.mp b{font-size:13.5px;display:block;line-height:1.3}
.mp small{font-size:11px;color:#A9B8CF}
.mp .chip{margin-left:auto;transition:all .4s}
.mp.lit{border-color:rgba(19,169,188,.6);background:rgba(19,169,188,.08)}
.mhos .hl{display:grid;gap:8px;margin-top:16px}
.mh{display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 12px;font-size:13px;transition:all .5s;opacity:.35}
.mh.show{opacity:1}
.mh.pick{border-color:var(--cyan);background:rgba(19,169,188,.1)}
.mh small{display:block;font-size:11px;color:#A9B8CF}
.mh .n{font-family:var(--f-mono);font-size:15px;font-weight:600;color:#BFD6FF}
.msteps{margin-top:40px;display:grid;grid-template-columns:repeat(8,1fr);gap:8px;list-style:none}
.msteps li{position:relative;border-top:2px solid rgba(255,255,255,.14);padding-top:14px;transition:border-color .4s}
.msteps li.on{border-color:var(--cyan)}
.msteps li.done{border-color:#7FB0FF}
.msteps .k{font-family:var(--f-mono);font-size:10.5px;color:#7F92B0;letter-spacing:.08em}
.msteps b{display:block;font-size:13.5px;margin-top:4px;line-height:1.45;color:#C9D6EA;transition:color .4s}
.msteps li.on b,.msteps li.done b{color:#fff}
.msteps .v{display:block;font-family:var(--f-mono);font-size:12.5px;color:var(--cyan);margin-top:4px;min-height:20px;opacity:0;transition:opacity .4s}
.msteps li.on .v,.msteps li.done .v{opacity:1}
.mresult{margin-top:48px;display:grid;grid-template-columns:1fr auto 1fr;gap:28px;align-items:center;justify-items:center;text-align:center}
.mresult .side small{display:block;font-size:13px;color:#A9B8CF}
.mresult .side b{font-family:var(--f-mono);font-weight:600;font-size:clamp(56px,8vw,108px);line-height:1}
.mresult .side b u{text-decoration:none;font-family:var(--f-body);font-size:20px;margin-left:4px}
.mresult .from b{color:#F08A82}
.mresult .to b{color:var(--cyan)}
.mresult .arrow{width:80px;height:2px;background:linear-gradient(90deg,#F08A82,var(--cyan));position:relative}
.mresult .arrow::after{content:"";position:absolute;right:-2px;top:-5px;border:6px solid transparent;border-left:9px solid var(--cyan)}
.mctrl{margin-top:28px;display:flex;justify-content:center;gap:12px;align-items:center;flex-wrap:wrap}
.mctrl button{background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:8px 14px;font-size:12.5px;font-weight:700;color:#fff;display:flex;gap:8px;align-items:center}
.mctrl button svg{width:14px;height:14px;stroke:#fff}
.mnote{margin-top:28px;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:16px 20px;display:flex;gap:14px;align-items:flex-start;font-size:13px;color:#B8C6DC;line-height:1.8}
.mnote svg{width:18px;height:18px;stroke:#7FB0FF;flex:none;margin-top:3px}
@media(max-width:1080px){
  .mstage{grid-template-columns:1fr;gap:0}
  .mlink{height:44px;justify-content:center}
  .mlink svg{display:none}
  .mlink::before{content:"";width:2px;height:100%;background:linear-gradient(180deg,#7FB0FF,var(--cyan))}
  .msteps{grid-template-columns:repeat(4,1fr);row-gap:20px}
}
@media(max-width:560px){.msteps{grid-template-columns:repeat(2,1fr)}.mresult{grid-template-columns:1fr;gap:10px}.mresult .arrow{transform:rotate(90deg);width:40px;margin:10px 0}}

/* =====================================================================
   LOOP
   ===================================================================== */
.loop{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.loop-vis{position:relative;aspect-ratio:1/1;max-width:600px;width:100%;justify-self:center}
.loop-vis svg{width:100%;height:100%;overflow:visible}
.loop-ring{fill:none;stroke:var(--line);stroke-width:2}
.loop-prog{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linecap:round;transition:stroke-dashoffset .9s ease}
.loop-n circle{fill:#fff;stroke:var(--line);stroke-width:1.5;transition:all .4s}
.loop-n text{font-family:var(--f-body);font-size:12.5px;font-weight:700;fill:var(--ink2);text-anchor:middle;transition:fill .4s}
.loop-n .no{font-family:var(--f-mono);font-size:9.5px;font-weight:500;fill:var(--ink3)}
.loop-n.on circle{fill:var(--blue);stroke:var(--blue)}
.loop-n.on .no{fill:#fff}
.loop-n.on text.lb{fill:var(--navy)}
.loop-n.done circle{stroke:var(--blue)}
.loop-n.done .no{fill:var(--blue)}
.loop-center text{text-anchor:middle}
.loop-dot{fill:var(--cyan)}
.loop-list{list-style:none;display:none}
.loop-copy .cur{margin-top:30px;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 24px;background:#fff;min-height:148px}
.loop-copy .cur small{font-family:var(--f-mono);font-size:11px;color:var(--blue);letter-spacing:.12em}
.loop-copy .cur b{display:block;font-family:var(--f-disp);font-size:22px;margin-top:4px}
.loop-copy .cur p{font-size:14px;color:var(--ink2);margin-top:6px}
.loop-phase{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.loop-phase span{font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 12px;border:1px solid var(--line);color:var(--ink2)}
.loop-phase span.on{background:var(--navy);color:#fff;border-color:var(--navy)}
@media(max-width:1080px){.loop{grid-template-columns:1fr}}
@media(max-width:640px){
  .loop-vis{display:none}
  .loop-list{display:grid;gap:0;margin-top:32px;position:relative}
  .loop-list li{display:grid;grid-template-columns:36px 1fr;gap:14px;padding-bottom:18px;position:relative}
  .loop-list li:not(:last-child)::before{content:"";position:absolute;left:17px;top:36px;bottom:0;width:2px;background:var(--line)}
  .loop-list .n{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--blue);color:var(--blue);display:grid;place-items:center;font-family:var(--f-mono);font-size:12px;background:#fff}
  .loop-list b{display:block;font-size:15px;padding-top:6px}
  .loop-list p{font-size:13px;color:var(--ink2)}
  .loop-list .back{grid-column:1/-1;display:flex;align-items:center;gap:10px;justify-content:center;font-size:12.5px;font-weight:700;color:var(--blue);border:1px dashed var(--blue);border-radius:10px;padding:10px;margin-top:4px}
  .loop-copy .cur{display:none}
}

/* =====================================================================
   VIDEO
   ===================================================================== */
.video-card{position:relative;max-width:980px;margin:0 auto;aspect-ratio:16/9;border-radius:var(--r-xl);overflow:hidden;background:var(--navy);box-shadow:var(--sh-lg);cursor:pointer;border:0;width:100%;display:block;color:#fff;text-align:left}
.video-card .vbg{position:absolute;inset:0;width:100%;height:100%}
.video-card .vplay{position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 14px rgba(255,255,255,.12);transition:transform .2s}
.video-card:hover .vplay{transform:scale(1.06)}
.video-card .vplay svg{width:30px;height:30px;fill:var(--navy);margin-left:5px}
.video-card .vmeta{position:absolute;left:32px;bottom:28px;right:32px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.video-card .vmeta b{font-family:var(--f-disp);font-size:22px;display:block}
.video-card .vmeta small{font-size:13px;color:#B8C6DC}
.video-card .vtime{font-family:var(--f-mono);font-size:12px;background:rgba(0,0,0,.35);border-radius:6px;padding:3px 8px}
.video-card .vthumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vmodal{position:fixed;inset:0;z-index:200;background:rgba(5,14,28,.82);display:none;align-items:center;justify-content:center;padding:24px}
.vmodal.open{display:flex}
.vmodal .box{width:min(1100px,100%);aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;position:relative}
.vmodal iframe,.vmodal video{width:100%;height:100%;border:0}
.vmodal .x{position:absolute;top:-44px;right:0;background:none;border:0;color:#fff;font-size:14px;font-weight:700}
.vmodal .soon{position:absolute;inset:0;display:grid;place-items:center;color:#fff;text-align:center;padding:24px}
.vmodal .soon b{font-family:var(--f-disp);font-size:22px;display:block}
.vmodal .soon p{font-size:14px;color:#B8C6DC;margin-top:8px}

/* =====================================================================
   SERVICES (orbit)
   ===================================================================== */
.orbit{position:relative;height:720px;max-width:1120px;margin:0 auto}
.orbit-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.orbit-svg circle{fill:none;stroke:var(--line);stroke-width:1.5}
.orbit-svg .spoke{stroke:var(--line);stroke-width:1.5;stroke-dasharray:3 5}
.orbit-c{position:absolute;left:50%;top:50%;width:250px;height:250px;margin:-125px 0 0 -125px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;text-align:center;box-shadow:0 0 0 14px var(--sky),var(--sh-lg);z-index:2}
.orbit-c small{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:#7FB0FF;display:block}
.orbit-c b{display:block;font-family:var(--f-disp);font-size:22px;line-height:1.45;margin-top:6px}
.orbit-c span{display:block;font-size:11.5px;color:#A9B8CF;margin-top:8px}
.svc{position:absolute;width:240px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:var(--sh);z-index:3;transition:transform .25s,box-shadow .25s,border-color .25s}
.svc:hover{transform:translateY(-3px);box-shadow:var(--sh-lg);border-color:#B9CBEA}
.svc .top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.svc .cat{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;color:var(--blue)}
.svc h3{font-size:16px;margin-top:8px;display:flex;align-items:center;gap:10px;line-height:1.4}
.svc h3 i{width:30px;height:30px;border-radius:8px;background:var(--sky);display:grid;place-items:center;flex:none}
.svc h3 i svg{width:17px;height:17px;stroke:var(--navy)}
.svc p{font-size:12.5px;color:var(--ink2);margin-top:6px;line-height:1.7}
.svc .px{font-size:11.5px;color:var(--ink2);margin-top:8px;font-weight:700}
.svc-legend{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:28px}
@media(max-width:1080px){
  .orbit{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .orbit-svg{display:none}
  .orbit-c{position:relative;left:auto;top:auto;margin:0 auto 18px;grid-column:1/-1;width:220px;height:220px}
  .svc{position:relative;width:auto;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;transform:none!important}
}
@media(max-width:560px){.orbit{grid-template-columns:1fr}}

/* =====================================================================
   BEFORE / AFTER
   ===================================================================== */
.ba{display:grid;grid-template-columns:1fr 72px 1fr;gap:20px;align-items:stretch}
.bacol{border-radius:var(--r-xl);padding:32px;display:flex;flex-direction:column}
.bacol.before{background:#fff;border:1px solid var(--line)}
.bacol.after{background:var(--navy);color:#fff}
.bacol .lbl{font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;color:var(--ink3)}
.bacol.after .lbl{color:#7FB0FF}
.bacol h3{font-family:var(--f-disp);font-size:22px;margin-top:6px}
.brows{margin-top:24px;display:grid;gap:10px}
.brow{display:grid;grid-template-columns:110px 34px 1fr;align-items:center;gap:6px}
.brow .a{font-size:14px;font-weight:700;background:var(--mist);border-radius:10px;padding:10px 12px;text-align:center}
.brow .arr{height:1px;background:var(--ink3);position:relative}
.brow .arr::after{content:"";position:absolute;right:0;top:-4px;border:4px solid transparent;border-left:6px solid var(--ink3)}
.brow .b{font-size:13.5px;color:var(--ink2);border:1.5px dashed var(--line);border-radius:10px;padding:9px 12px;display:flex;align-items:center;gap:8px}
.brow .b svg{width:16px;height:16px;stroke:var(--ink3);flex:none}
.bfoot{margin-top:auto;padding-top:22px;font-size:13px;color:var(--ink2)}
.aflow{margin-top:24px;display:flex;flex-direction:column;align-items:center;gap:0;flex:1}
.aflow .all{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.aflow .all span{font-size:12.5px;font-weight:700;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:6px 12px;color:#DCE6F5}
.aflow .vline{width:2px;height:30px;background:linear-gradient(180deg,rgba(127,176,255,.2),#7FB0FF);margin:8px 0}
.aflow .cx{background:#fff;color:var(--navy);border-radius:14px;padding:14px 26px;font-family:var(--f-disp);font-weight:700;letter-spacing:.2em;font-size:18px;display:flex;align-items:center;gap:10px}
.aflow .cx svg{width:24px;height:24px}
.aflow .dbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.aflow .dbs span{background:var(--navy2);border:1px solid rgba(127,176,255,.35);border-radius:10px;padding:10px 14px;font-size:13.5px;font-weight:700}
.aflow .dbs i{font-style:normal;color:#7FB0FF;font-weight:700}
.aflow .res{background:linear-gradient(180deg,rgba(19,169,188,.18),rgba(19,169,188,.06));border:1px solid rgba(19,169,188,.45);border-radius:14px;padding:16px 22px;text-align:center;font-family:var(--f-disp);font-size:20px;font-weight:700}
.ba-mid{display:grid;place-items:center}
.ba-mid span{width:56px;height:56px;border-radius:50%;background:var(--blue);display:grid;place-items:center;box-shadow:0 8px 20px rgba(29,91,216,.3)}
.ba-mid svg{width:24px;height:24px;stroke:#fff}
@media(max-width:980px){.ba{grid-template-columns:1fr}.ba-mid span{transform:rotate(90deg)}.bacol{padding:24px}}
@media(max-width:480px){.brow{grid-template-columns:86px 22px 1fr}.brow .a{font-size:12.5px;padding:8px}.brow .b{font-size:12.5px}}

/* =====================================================================
   USE CASE
   ===================================================================== */
.uc{display:grid;grid-template-columns:360px 1fr;gap:28px;align-items:start}
.uc-fac{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:28px;position:sticky;top:100px}
.uc-fac .t{display:flex;align-items:center;gap:12px}
.uc-fac .t i{width:44px;height:44px;border-radius:12px;background:var(--navy);display:grid;place-items:center}
.uc-fac .t i svg{width:22px;height:22px;stroke:#fff}
.uc-fac .t b{font-size:18px;display:block;line-height:1.3}
.uc-fac .t small{font-size:12px;color:var(--ink3)}
.uc-now{margin-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.uc-now div{background:var(--mist);border-radius:12px;padding:12px;text-align:center}
.uc-now small{display:block;font-size:11px;color:var(--ink2)}
.uc-now b{font-family:var(--f-mono);font-size:28px;font-weight:600;line-height:1.2}
.uc-now b u{text-decoration:none;font-family:var(--f-body);font-size:11px;margin-left:1px}
.uc-now .g{background:var(--alert-l)}.uc-now .g b,.uc-now .g small{color:var(--alert)}
.uc-meter{margin-top:20px}
.uc-meter .l{display:flex;justify-content:space-between;font-size:12px;color:var(--ink2)}
.uc-meter .l b{font-family:var(--f-mono);color:var(--ink);font-size:14px}
.uc-meter .tr{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin-top:8px}
.uc-meter .tr i{height:14px;border-radius:3px;background:var(--blue);transition:all .5s}
.uc-meter .tr i.miss{background:#fff;border:1.5px dashed var(--alert)}
.uc-meter .tr i.new{background:var(--cyan)}
.uc-steps{list-style:none;display:grid;gap:0;position:relative}
.uc-steps li{display:grid;grid-template-columns:56px 1fr;gap:18px;position:relative;padding-bottom:16px}
.uc-steps li:not(:last-child)::before{content:"";position:absolute;left:27px;top:56px;bottom:0;width:2px;background:var(--line)}
.uc-steps .n{width:56px;height:56px;border-radius:16px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-family:var(--f-mono);font-weight:600;color:var(--blue);font-size:15px;transition:all .4s;position:relative;z-index:1}
.uc-steps li.in .n{background:var(--blue);color:#fff;border-color:var(--blue)}
.uc-steps .c{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 20px;transition:border-color .4s}
.uc-steps li.in .c{border-color:#B9CBEA}
.uc-steps .c b{font-size:16px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.uc-steps .c p{font-size:13.5px;color:var(--ink2);margin-top:4px}
.uc-steps .who{gap:6px;margin-top:10px;flex-wrap:wrap}
.uc-steps .who span{display:flex;align-items:center;gap:6px;font-size:12px;background:var(--mist);border-radius:999px;padding:3px 10px 3px 3px}
.uc-steps .who span i{width:22px;height:22px;border-radius:50%;background:var(--sky);color:var(--blue);display:grid;place-items:center;font-size:10px;font-weight:700;font-style:normal}
@media(max-width:980px){.uc{grid-template-columns:1fr}.uc-fac{position:relative;top:0}}

/* =====================================================================
   WHY / VISION
   ===================================================================== */
.why{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
.why-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.why-stats div{background:#fff;padding:26px 24px}
.why-stats b{display:block;font-family:var(--f-mono);font-weight:600;font-size:clamp(30px,3.2vw,40px);line-height:1.15}
.why-stats b u{text-decoration:none;font-family:var(--f-body);font-size:14px;font-weight:700;margin-left:4px}
.why-stats small{font-size:13px;color:var(--ink2)}
.why-list{list-style:none;margin-top:32px;display:grid;gap:0;border-top:1px solid var(--line)}
.why-list li{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.why-list b{font-size:14.5px}
.why-list p{font-size:13.5px;color:var(--ink2);line-height:1.8}
.vision{text-align:center;padding:170px 0;overflow:hidden}
.vision::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 400px at 50% 100%,rgba(62,123,242,.22),transparent 70%)}
.vision h2{position:relative;font-family:var(--f-disp);font-weight:700;font-size:clamp(32px,5vw,62px);line-height:1.35}
.vision p{position:relative;color:#B8C6DC;margin:32px auto 0;font-size:17px;line-height:2.1;max-width:620px}
.vision .co{position:relative;margin-top:40px;font-size:13px;letter-spacing:.14em;color:#8C9EBB}
.vision-net{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none}
.roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:72px;position:relative;text-align:left}
.roadmap div{border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:20px 22px;background:rgba(255,255,255,.02)}
.roadmap b{display:block;font-size:15px;margin-top:10px}
.roadmap p{font-size:13px;color:#A9B8CF;margin-top:4px;line-height:1.8}
@media(max-width:980px){.why{grid-template-columns:1fr;gap:40px}.roadmap{grid-template-columns:1fr}.why-list li{grid-template-columns:1fr;gap:4px}}

/* =====================================================================
   FAQ / FINAL / FOOTER
   ===================================================================== */
.faq{max-width:880px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:24px 50px 24px 0;position:relative;font-weight:700;font-size:16px;line-height:1.6;display:flex;gap:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{font-family:var(--f-mono);color:var(--blue);font-weight:600;flex:none}
.faq summary::after{content:"";position:absolute;right:6px;top:30px;width:14px;height:14px;background:linear-gradient(var(--navy),var(--navy)) center/14px 2px no-repeat,linear-gradient(var(--navy),var(--navy)) center/2px 14px no-repeat;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 40px 26px 38px;color:var(--ink2);font-size:15px;line-height:1.95}
.final{background:var(--navy);color:#fff;padding:140px 0;overflow:hidden;text-align:center}
.final h2{position:relative;font-family:var(--f-disp);font-weight:700;font-size:clamp(28px,4.4vw,54px);line-height:1.4}
.final h2 em{font-style:normal;color:#7FB0FF}
.final .facts{position:relative;display:flex;justify-content:center;gap:12px;margin-top:30px;flex-wrap:wrap}
.final .facts span{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 16px}
.final .facts svg{width:16px;height:16px;stroke:var(--cyan)}
.final .btns{position:relative;margin-top:40px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.final .btn-primary{background:#fff;color:var(--navy);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.final .btn-primary:hover{background:#F1F5FC}
.final .steps3{position:relative;margin:56px auto 0;max-width:760px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:left}
.final .steps3 div{border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:16px 18px}
.final .steps3 small{font-family:var(--f-mono);font-size:11px;color:#7FB0FF;letter-spacing:.1em}
.final .steps3 b{display:block;font-size:15px;margin-top:4px}
.final .steps3 p{font-size:12.5px;color:#A9B8CF;margin-top:2px}
@media(max-width:640px){.final .steps3{grid-template-columns:1fr}.final .btns .btn{width:100%}}
.ftr{background:#06142A;color:#93A4C0;padding:72px 0 40px;font-size:13px}
.ftr-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:36px}
.ftr .brand{color:#fff}
.ftr h4{color:#fff;font-size:12px;margin-bottom:14px;letter-spacing:.12em;font-family:var(--f-mono);font-weight:500}
.ftr ul{list-style:none;display:grid;gap:9px}
.ftr a{text-decoration:none}
.ftr a:hover{color:#fff}
.ftr .co{margin-top:18px;line-height:1.9}
.ftr-bot{margin-top:56px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px}
.ftr .disc{margin-top:28px;font-size:11.5px;line-height:1.9;color:#7586A3;max-width:900px}
@media(max-width:900px){.ftr-grid{grid-template-columns:1fr 1fr}.ftr{padding-bottom:110px}}

/* SP fixed CTA */
.spbar{position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:none;transform:translateY(110%);transition:transform .25s}
.spbar.show{transform:none}
.spbar .btn{width:100%;padding:14px;font-size:15px}
@media(max-width:760px){.spbar{display:block}}

/* =====================================================================
   DIAGNOSIS FLOW
   ===================================================================== */
.dg{position:fixed;inset:0;z-index:150;background:var(--mist);overflow-y:auto;display:none}
body.dg-open{overflow:hidden}
body.dg-open .dg{display:block}
.dg-hdr{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}
.dg-hdr .wrap{display:flex;align-items:center;height:64px;gap:14px}
.dg-hdr .ttl{font-size:13px;font-weight:700;color:var(--ink2);border-left:1px solid var(--line);padding-left:14px}
.dg-close{margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;padding:7px 14px;font-size:13px;color:var(--ink2)}
.dg-body{max-width:1040px;margin:0 auto;padding:32px 20px 140px;display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}
.dg-prog{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:18px}
.dg-prog span{font-size:11.5px;font-weight:700;color:var(--ink3)}
.dg-prog span i{display:block;height:4px;border-radius:2px;background:var(--line);margin-bottom:8px}
.dg-prog span.on{color:var(--navy)}.dg-prog span.on i{background:var(--blue)}
.dg-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px}
.dg-card h2{font-family:var(--f-disp);font-size:24px;line-height:1.45}
.dg-card .sub{font-size:14px;color:var(--ink2);margin-top:6px}
.dg-q{margin-top:26px}
.dg-q>label,.dg-q>.lab{display:block;font-size:14px;font-weight:700;margin-bottom:10px}
.dg-q .rq{font-size:10.5px;color:#fff;background:var(--navy);border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:middle}
.dg-q .op{font-size:10.5px;color:var(--ink2);background:var(--mist);border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:middle}
.dg-q .hint{font-size:12px;color:var(--ink3);margin-top:6px;line-height:1.7}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt span{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;background:#fff}
.opt input:checked+span{border-color:var(--blue);background:var(--sky);color:var(--blue);font-weight:700}
.opt input:focus-visible+span{outline:3px solid var(--blue2);outline-offset:2px}
.num-in{display:flex;align-items:center;gap:10px}
.stepper{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.stepper button{width:44px;height:46px;border:0;background:var(--mist);font-size:20px;font-weight:700;color:var(--navy)}
.stepper input{width:70px;height:46px;border:0;text-align:center;font-family:var(--f-mono);font-size:20px;font-weight:600;-moz-appearance:textfield}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.num-in small{font-size:13px;color:var(--ink2)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:22px}
.fgrid .full{grid-column:1/-1}
.fld label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:15px;border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;color:var(--ink)}
.fld input:focus,.fld select:focus,.fld textarea:focus,.stepper input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,91,216,.14)}
.fld .err,.dg-q .err{display:none;font-size:12px;color:var(--alert);margin-top:4px}
.fld.bad input,.fld.bad select{border-color:var(--alert)}
.fld.bad .err,.dg-q.bad .err{display:block}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;margin-top:20px}
.agree input{width:18px;height:18px;margin-top:3px;accent-color:var(--blue)}
.dg-side{position:sticky;top:88px}
.dg-preview{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.dg-preview .hd{background:var(--navy);color:#fff;padding:14px 18px}
.dg-preview .hd small{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;color:#7FB0FF}
.dg-preview .hd b{display:block;font-size:15px;margin-top:2px}
.dg-preview .bd{padding:16px 18px;display:grid;gap:10px}
.dg-preview .row{display:flex;justify-content:space-between;gap:10px;font-size:13px;border-bottom:1px dashed var(--line2);padding-bottom:8px}
.dg-preview .row span{color:var(--ink2)}
.dg-preview .row b{font-family:var(--f-mono);font-weight:600;text-align:right}
.dg-preview .row b.e{color:var(--ink3);font-family:var(--f-body);font-weight:500;font-size:12px}
.dg-preview .gapbox{background:var(--alert-l);border-radius:12px;padding:12px 14px;display:none}
.dg-preview .gapbox.show{display:block}
.dg-preview .gapbox small{display:block;font-size:11px;color:var(--alert);font-weight:700}
.dg-preview .gapbox b{font-family:var(--f-mono);font-size:28px;color:var(--alert)}
.dg-preview .ft{font-size:11.5px;color:var(--ink3);padding:0 18px 16px;line-height:1.7}
.dg-foot{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);z-index:3}
.dg-foot .in{max-width:1040px;margin:0 auto;padding:12px 20px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:14px}
.dg-foot .sp{flex:1}
.dg-back{background:none;border:0;color:var(--ink2);font-size:14px;font-weight:700;padding:10px}
.dg-done{text-align:center;padding:16px 0}
.dg-done .ic{width:72px;height:72px;border-radius:50%;background:var(--blue);display:grid;place-items:center;margin:0 auto}
.dg-done .ic svg{width:34px;height:34px;stroke:#fff}
.dg-next{list-style:none;margin-top:26px;display:grid;gap:10px;text-align:left}
.dg-next li{display:grid;grid-template-columns:34px 1fr;gap:12px;background:var(--mist);border-radius:12px;padding:14px 16px;font-size:14px}
.dg-next .n{font-family:var(--f-mono);font-weight:600;color:var(--blue)}
.dg-next b{display:block}
.dg-next p{font-size:12.5px;color:var(--ink2)}
.dg-attr{display:none;margin-top:16px;font-family:var(--f-mono);font-size:11px;color:var(--ink3);background:var(--mist);border-radius:8px;padding:10px;word-break:break-all;text-align:left}
body.draft .dg-attr{display:block}
@media(max-width:900px){.dg-body{grid-template-columns:1fr}.dg-side{position:relative;top:0;order:-1}.dg-preview .bd{grid-template-columns:1fr 1fr}.dg-preview .row{flex-direction:column;gap:0}}
@media(max-width:560px){.dg-card{padding:22px 18px}.fgrid{grid-template-columns:1fr}.dg-prog span{font-size:10px}}

/* =====================================================================
   ADDITIONS — brief strip / tiers / states
   ===================================================================== */
.brief{border-bottom:1px solid var(--line);background:#fff}
.brief .wrap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.brief .wrap>div{padding:28px 22px;border-left:1px solid var(--line);min-width:0}
.brief .wrap>div:first-child{border-left:0;padding-left:0}
.brief small{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--blue)}
.brief b{display:block;font-size:14.5px;margin-top:6px;line-height:1.55}
.brief p{font-size:12.5px;color:var(--ink2);margin-top:4px;line-height:1.75}
@media(max-width:1080px){.brief .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.brief .wrap>div{border-left:0;border-top:1px solid var(--line);padding:20px 20px 20px 0}.brief .wrap>div:first-child{grid-column:1/-1;border-top:0}.brief .wrap>div:nth-child(odd):not(:first-child){padding-left:20px;border-left:1px solid var(--line)}}
@media(max-width:560px){.brief .wrap{grid-template-columns:minmax(0,1fr)}.brief .wrap>div,.brief .wrap>div:nth-child(odd):not(:first-child){padding:16px 0;border-left:0}}

/* problem split-stage states */
.split-stage .ss-join{opacity:0;transition:opacity .6s}
.split-stage .ss-core{opacity:0;transform:scale(.7)}
.split-stage .ss-msg.bot{opacity:0}
.split-stage.joined .ss-broken{opacity:0}
.split-stage.joined .ss-join{opacity:1}
.split-stage.joined .ss-core{opacity:1;transform:none}
.split-stage.joined .ss-msg.top{opacity:0}
.split-stage.joined .ss-msg.bot{opacity:1}
.ss-node{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.split-stage:not(.joined) .ss-node.a{transform:translate(-14px,-10px)}
.split-stage:not(.joined) .ss-node.b{transform:translate(14px,-10px)}
.split-stage:not(.joined) .ss-node.c{transform:translate(0,14px)}
html.static .split-stage .ss-broken{opacity:0}

/* tiers (二階建て) */
.tiers{margin-top:72px;display:grid;gap:10px;max-width:980px;margin-left:auto;margin-right:auto}
.tier{border-radius:var(--r-lg);padding:22px 26px;display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center}
.tier .lv{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em}
.tier h3{font-family:var(--f-disp);font-size:20px;letter-spacing:.06em;margin-top:2px}
.tier p{font-size:12.5px;margin-top:4px;line-height:1.7}
.tier .items{display:flex;flex-wrap:wrap;gap:6px}
.tier .items span{font-size:12.5px;font-weight:700;border-radius:8px;padding:6px 12px}
.tier.t2{background:rgba(255,255,255,.04);border:1px dashed rgba(127,176,255,.4)}
.tier.t2 .lv{color:#7FB0FF}.tier.t2 p{color:#A9B8CF}
.tier.t2 .items span{border:1px solid rgba(255,255,255,.18);color:#DCE6F5}
.tier.t1{background:#fff;color:var(--navy)}
.tier.t1 .lv{color:var(--blue)}.tier.t1 p{color:var(--ink2)}
.tier.t1 .items span{background:var(--sky);color:var(--navy)}
.tier-join{display:flex;justify-content:center;gap:120px}
.tier-join i{width:2px;height:18px;background:#7FB0FF;opacity:.6}
@media(max-width:760px){.tier{grid-template-columns:1fr;gap:12px;padding:20px}.tier-join{gap:60px}}

/* hospital map: pins live in a cropped viewBox (≈7px per unit) */
.hos-map .land path{vector-effect:non-scaling-stroke}
.hos-map .pin.sel .halo{animation:halo2 1.8s infinite;transform-box:fill-box;transform-origin:center}
@keyframes halo2{0%,100%{transform:scale(1)}60%{transform:scale(1.7)}}
.hos-map .pref-lbl{font-size:1.6px;fill:var(--ink3);font-weight:700;text-anchor:middle;letter-spacing:.1px}
.hos-map .sea{fill:#A9BAD2;font-style:italic;text-anchor:middle}
.hos-map .nomatch{position:absolute;inset:auto 14px 46px 14px;font-size:12px;color:var(--ink2);background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:none}
.hos-map.empty .nomatch{display:block}
.hcard .t .st{font-size:10px}

/* misc */
.feat-copy .lead{font-size:15.5px}
.app-note{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:11.5px;color:var(--ink3)}
.mcol .chip{font-size:10.5px}
.dg-q .chkline{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:10px;color:var(--ink2)}
.dg-q .chkline input{width:16px;height:16px;accent-color:var(--blue)}
.dg-err{display:none;margin-top:16px;background:var(--alert-l);color:var(--alert);border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.7}
.dg-err.show{display:block}
.dg-sum{margin-top:22px;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-align:left}
.dg-sum .hd{background:var(--mist);padding:10px 16px;font-size:12px;font-weight:700;color:var(--ink2);display:flex;justify-content:space-between}
.dg-sum dl{display:grid;grid-template-columns:150px 1fr;font-size:13.5px}
.dg-sum dt,.dg-sum dd{padding:9px 16px;border-top:1px solid var(--line2)}
.dg-sum dt{color:var(--ink2)}
.dg-sum dd{font-weight:700}
@media(max-width:560px){.dg-sum dl{grid-template-columns:1fr}.dg-sum dd{border-top:0;padding-top:0}}

/* hero layout refinements */
@media(min-width:1081px){.hero-grid{grid-template-columns:1fr 1.06fr}}
.hero h1{font-size:clamp(30px,3.5vw,50px);line-height:1.32}
.n-fac,.n-per,.n-hos{left:0;width:164px}
.n-fac{top:70px}.n-per{top:262px}.n-hos{top:454px;bottom:auto}
.dash{width:calc(100% - 206px);max-width:430px;min-width:330px}
@media(max-width:1080px){.dash{width:calc(100% - 206px)}}
@media(max-width:640px){.dash{width:100%;min-width:0;max-width:none}}
.score-t .smp{font-size:10.5px;color:var(--ink3);margin-top:2px;display:block}

/* fixes after PC review */
.gnav{gap:22px}.gnav a{white-space:nowrap}
@media(max-width:1320px){.brand-sub{display:none}}
@media(max-width:1180px){.gnav a:nth-child(5){display:none}}
.brief+.trust,.trust{margin-top:0}
.hos-map svg,.loop-vis svg,.split-stage svg,.core-svg,.orbit-svg{letter-spacing:0}
html.static{scroll-behavior:auto}

.match .lead{color:#B8C6DC}.match .eyebrow{color:#7FB0FF}.match .eyebrow b{color:#7F92B0}.match .h2 em{color:#7FB0FF}.match .note{color:#8C9EBB}
.hos-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end}
@media(max-width:900px){.hos-head{grid-template-columns:1fr;gap:16px}}
@media(max-width:640px){.hero-copy{min-width:0}.hv{margin-top:28px}.app-top .crumb span:not(:has(b)){display:none}.app-top .right .sample{display:none}}
.dg-card fieldset{border:0;min-width:0}
.dg-close{white-space:nowrap}
@media(max-width:640px){.dg-hdr .ttl{font-size:11.5px;line-height:1.4}.dg-hdr .brand-name{display:none}}
@media(max-width:900px){
  .dg-preview .bd{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;padding:12px 14px}
  .dg-preview .row{font-size:11px;padding-bottom:4px}
  .dg-preview .row:nth-child(1),.dg-preview .row:nth-child(2){display:none}
  .dg-preview .gapbox{grid-column:1/-1;padding:8px 12px;display:none}
  .dg-preview .gapbox.show{display:flex;align-items:center;justify-content:space-between}
  .dg-preview .gapbox b{font-size:20px}
  .dg-preview .ft{display:none}
  .dg-preview .hd{padding:10px 14px}
  .dg-body{padding-top:18px;gap:14px}
}
