:root{
  --paper:#F7F6F1; --paper2:#EFEEE7;
  --ink:#0F1A2B; --ink-dim:#4C5563;
  --rule:#C9CBC4; --mark:#3E6E8E; --mark-soft:rgba(62,110,142,0.10); --err:#B3352E;
  --sp-major:96px; --sp-sec:68px;
}
@media(max-width:700px){:root{--sp-major:60px; --sp-sec:44px;}}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.6;}
h1,h2,h3,h4{font-family:'Archivo',sans-serif; font-weight:700; letter-spacing:-0.018em; color:var(--ink);}
.mono{font-family:'IBM Plex Mono',monospace; font-variant-numeric:tabular-nums;}
a{color:inherit;} button{font:inherit;}
::selection{background:var(--mark); color:var(--paper);}
:focus-visible{outline:2px solid var(--mark); outline-offset:3px;}
h1[tabindex="-1"]:focus{outline:none;}
.skip{position:absolute; left:-9999px; top:12px; z-index:300; background:var(--ink); color:var(--paper);
  font-family:'IBM Plex Mono'; font-size:0.78rem; padding:10px 16px; text-decoration:none;}
.skip:focus{left:12px;}
#route-announce{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

.t-display{font-size:clamp(2.5rem,5.6vw,4.6rem); line-height:1.0;}
.t-h1{font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.05;}
.t-h2{font-size:clamp(1.6rem,3vw,2.4rem); line-height:1.15;}
.t-cap{font-family:'IBM Plex Mono'; font-size:0.8rem; letter-spacing:0.11em; text-transform:uppercase; color:var(--ink-dim);}

.level-hud{position:fixed; right:26px; top:50%; transform:translateY(-50%); z-index:95; text-align:right;
  font-family:'IBM Plex Mono'; mix-blend-mode:difference; color:#fff; pointer-events:none;}
.level-hud .cap{font-size:0.62rem; letter-spacing:0.2em;}
.level-hud .lv{font-size:1.45rem; font-weight:600; line-height:1.1;}
.level-hud .of{font-size:0.64rem; letter-spacing:0.1em; opacity:0.8;}
@media(max-width:760px){.level-hud{display:none;}}

nav{position:fixed; top:0; left:0; right:0; z-index:94; background:var(--paper); border-bottom:1px solid var(--rule);}
.nav-in{max-width:1340px; margin:0 auto; padding:16px clamp(16px,4vw,48px); display:flex; justify-content:space-between; align-items:center; gap:14px;}
nav .logo{font-family:'IBM Plex Mono'; font-weight:600; font-size:0.95rem; letter-spacing:0.15em; text-decoration:none;}
nav .logo em{font-style:normal; color:var(--mark);}
nav .links{display:flex; gap:4px; align-items:center;}
nav .links a{font-family:'IBM Plex Mono'; font-size:0.76rem; letter-spacing:0.08em; text-decoration:none; padding:8px 12px; position:relative; color:var(--ink);}
nav .links a::after{content:''; position:absolute; left:12px; right:100%; bottom:4px; height:1px; background:var(--mark); transition:right .3s cubic-bezier(.6,0,.2,1);}
nav .links a:hover::after, nav .links a.active::after{right:12px;}
nav .links a.active{color:var(--mark);}
nav .links a.nav-cta{border:1px solid var(--ink); margin-left:10px; padding:9px 16px;}
nav .links a.nav-cta::after{display:none;}
nav .links a.nav-cta:hover,nav .links a.nav-cta:focus-visible{background:var(--ink); color:var(--paper);}
#menu-btn{display:none; background:none; border:1px solid var(--ink); font-family:'IBM Plex Mono'; font-size:0.72rem; letter-spacing:0.08em; padding:9px 13px; cursor:pointer;}
@media(max-width:900px){
  nav .links{position:absolute; top:100%; right:16px; flex-direction:column; align-items:stretch; background:var(--paper);
    border:1px solid var(--ink); padding:8px; opacity:0; transform:translateY(-8px); visibility:hidden; pointer-events:none;
    transition:opacity .25s, transform .25s, visibility 0s .25s;}
  nav .links.open{opacity:1; transform:translateY(0); visibility:visible; pointer-events:auto; transition:opacity .25s, transform .25s, visibility 0s;}
  nav .links a.nav-cta{margin-left:0; margin-top:6px; text-align:center;}
  #menu-btn{display:block;}
}

.page{min-height:100vh; padding:104px clamp(16px,4vw,48px) 60px; max-width:1340px; margin:0 auto;}
.sheet-band{display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  border-bottom:1px solid var(--ink); padding-bottom:14px; margin-bottom:8px; flex-wrap:wrap;}
.sheet-band .rt{font-family:'IBM Plex Mono'; font-size:0.72rem; color:var(--ink-dim); letter-spacing:0.08em;}
.dim-rule{height:14px; margin:8px 0 clamp(28px,4vw,44px); position:relative;}
.dim-rule svg{position:absolute; inset:0; width:100%; height:100%;}
.dim-rule path{stroke:var(--mark); stroke-width:1.1; fill:none;}

/* mounted-plate photos with ink gradient scrim */
.ph{position:relative; overflow:hidden; background:var(--paper2);}
.ph img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(0.85) brightness(1.01);}
.ph::after{content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(15,26,43,0.06) 0%, rgba(15,26,43,0) 30%, rgba(15,26,43,0) 55%, rgba(15,26,43,0.32) 100%);}
.plate{border:1px solid var(--ink); background:var(--paper);}
.plate>.ph{margin:12px; border:1px solid var(--rule);}
.pcard>.ph,.pcard>.noimg{margin:10px; border:1px solid var(--rule);}
.capbar{display:flex; justify-content:space-between; gap:10px; font-family:'IBM Plex Mono'; font-size:0.7rem;
  letter-spacing:0.06em; color:var(--ink-dim); padding:9px 12px; border-top:1px solid var(--ink); background:var(--paper);}

.prop{display:grid; grid-template-columns:1.15fr 0.85fr; gap:44px; align-items:start; margin-bottom:clamp(34px,5vw,54px);}
@media(max-width:900px){.prop{grid-template-columns:1fr;}}
.prop h1 em{font-style:normal; color:var(--mark);}
.prop .lead-p{color:var(--ink-dim); font-size:1.02rem; max-width:520px; margin-top:20px;}
.cta-row{display:flex; gap:12px; margin-top:26px; flex-wrap:wrap;}
.hero-tb{border:1px solid var(--ink); font-family:'IBM Plex Mono'; font-size:0.72rem;}
.hero-tb .r{display:flex; border-bottom:1px solid var(--rule); flex-wrap:wrap;}
.hero-tb .r:last-child{border-bottom:none;}
.hero-tb .k{flex:0 0 112px; padding:9px 11px; border-right:1px solid var(--rule); color:var(--ink-dim);}
.hero-tb .v{padding:9px 11px; overflow-wrap:anywhere;}
.hero-stage{position:relative; margin-bottom:var(--sp-major); overflow:hidden;}
.hero-stage .ph{aspect-ratio:16/8;}
@media(max-width:700px){.hero-stage .ph{aspect-ratio:4/3;}}
.hero-grid{position:absolute; inset:13px; z-index:3; pointer-events:none; opacity:0.14;}
.hero-grid line,.hero-grid rect{stroke:var(--ink); stroke-width:1; fill:none;}

.stat-strip{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--ink); margin-bottom:var(--sp-major);}
.stat-strip>div{padding:20px 22px; border-right:1px solid var(--rule);}
.stat-strip>div:last-child{border-right:none;}
.stat-strip .n{font-family:'Archivo'; font-weight:800; font-size:clamp(1.5rem,2.8vw,2.2rem);}
.stat-strip .n em{font-style:normal; color:var(--mark);}
.stat-strip .l{font-family:'IBM Plex Mono'; font-size:0.68rem; letter-spacing:0.1em; color:var(--ink-dim); text-transform:uppercase;}
@media(max-width:760px){.stat-strip{grid-template-columns:1fr 1fr;} .stat-strip>div:nth-child(2){border-right:none;} .stat-strip>div:nth-child(-n+2){border-bottom:1px solid var(--rule);}}

.feat-break{margin:0 calc(-1*clamp(16px,4vw,48px)) var(--sp-major); background:var(--ink); color:var(--paper); padding:64px clamp(16px,4vw,48px);}
.feat-break .t-cap{color:rgba(247,246,241,0.65);}
.feat-break h2,.feat-break h3{color:var(--paper);}
.feat-inner{max-width:1244px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center;}
@media(max-width:900px){.feat-inner{grid-template-columns:1fr;}}
.feat-inner .plate{border-color:rgba(247,246,241,0.4); background:transparent;}
.feat-inner .capbar{background:transparent; color:rgba(247,246,241,0.7); border-top-color:rgba(247,246,241,0.4);}
.feat-inner .ph{aspect-ratio:4/3;}
.feat-inner .fdata{margin:24px 0 28px; border-top:1px solid rgba(247,246,241,0.25);}
.feat-inner .fr{display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid rgba(247,246,241,0.25);
  font-family:'IBM Plex Mono'; font-size:0.76rem; flex-wrap:wrap;}
.feat-inner .fr span:first-child{color:rgba(247,246,241,0.55);}
.feat-inner .fr span:last-child{overflow-wrap:anywhere; text-align:right;}
.feat-inner .fr .red{color:#8FB6D0; font-weight:600;}
.feat-inner p{color:rgba(247,246,241,0.78); max-width:460px;}
.feat-inner a.go{font-family:'IBM Plex Mono'; font-size:0.76rem; letter-spacing:0.06em; text-decoration:none; color:var(--paper); border-bottom:1px solid var(--mark);}

.wstrip{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--ink); margin-bottom:var(--sp-sec);}
@media(max-width:900px){.wstrip{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.wstrip{grid-template-columns:1fr;}}
.wstrip a{padding:24px 22px; border-right:1px solid var(--rule); text-decoration:none; transition:background .25s;}
.wstrip a:last-child{border-right:none;}
.wstrip a:hover,.wstrip a:focus-visible{background:var(--mark-soft);}
.wstrip .ref{font-family:'IBM Plex Mono'; font-size:0.7rem; color:var(--mark); letter-spacing:0.1em;}
.wstrip h3{font-size:1.05rem; margin:7px 0 5px;}
.wstrip p{font-size:0.84rem; color:var(--ink-dim);}
@media(max-width:900px){.wstrip a{border-bottom:1px solid var(--rule);} .wstrip a:nth-child(2n){border-right:none;}}
@media(max-width:520px){.wstrip a{border-right:none;}}

.seq{position:relative; margin-bottom:var(--sp-major); padding-left:26px; border-left:2px solid var(--ink); list-style:none;}
.seq-step{position:relative; padding:0 0 30px 24px;}
.seq-step:last-child{padding-bottom:4px;}
.seq-step::before{content:''; position:absolute; left:-33px; top:6px; width:12px; height:12px; background:var(--paper); border:2px solid var(--ink);}
.seq-step.hot::before{background:var(--mark); border-color:var(--mark);}
.seq-step .st{font-family:'IBM Plex Mono'; font-size:0.72rem; color:var(--mark); letter-spacing:0.08em;}
.seq-step h3{font-size:1.1rem; margin:6px 0 5px;}
.seq-step p{font-size:0.9rem; color:var(--ink-dim); max-width:560px;}

.register{border:1px solid var(--ink); margin-bottom:var(--sp-sec);}
.register .rr{display:grid; grid-template-columns:110px 1fr 130px 34px; align-items:center;
  border-bottom:1px solid var(--rule); text-decoration:none; transition:background .2s;}
.register .rr:last-child{border-bottom:none;}
.register .rr:hover,.register .rr:focus-visible{background:var(--mark-soft);}
.register .rr>*{padding:15px 18px; font-family:'IBM Plex Mono'; font-size:0.76rem;}
.register .rr .nm{font-family:'Archivo'; font-weight:600; font-size:1.02rem;}
.register .rr .no{color:var(--ink-dim);}
.register .rr .st{color:var(--mark);}
.register .rr .arrow{color:var(--ink-dim); transition:transform .25s, color .25s;}
.register .rr:hover .arrow{transform:translateX(5px); color:var(--mark);}
@media(max-width:720px){.register .rr{grid-template-columns:86px 1fr 30px;} .register .rr .st{display:none;}}

.ops{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; margin-bottom:var(--sp-major);}
@media(max-width:900px){.ops{grid-template-columns:1fr;}}
.ops-svg{border:1px solid var(--ink); background:var(--paper); max-width:480px;}
.ops-svg svg{display:block; width:100%; height:auto;}
.ops-copy p{color:var(--ink-dim); margin:16px 0; max-width:440px;}
.ops-copy .keyline{font-family:'IBM Plex Mono'; font-size:0.74rem; line-height:2.2;}
.ops-copy .keyline .sq{display:inline-block; width:10px; height:10px; margin-right:8px; vertical-align:middle;}

.rfi-band{border:1px solid var(--ink); background:var(--ink); color:var(--paper); padding:44px 38px;
  display:flex; justify-content:space-between; align-items:center; gap:26px; flex-wrap:wrap; margin-bottom:16px;}
.rfi-band h2{color:var(--paper); font-size:clamp(1.5rem,3vw,2.3rem); max-width:560px;}
.rfi-band .sub{font-family:'IBM Plex Mono'; font-size:0.72rem; letter-spacing:0.1em; color:rgba(247,246,241,0.65); margin-top:10px;}

.btn{display:inline-block; font-family:'IBM Plex Mono'; font-size:0.78rem; letter-spacing:0.08em;
  padding:14px 26px; text-decoration:none; cursor:pointer; border:1px solid var(--ink); transition:background .25s, color .25s, border-color .25s; background:none; color:var(--ink);}
.btn.primary{background:var(--ink); color:var(--paper);}
.btn.primary:hover,.btn.primary:focus-visible{background:var(--mark); border-color:var(--mark); color:var(--paper);}
.btn.secondary:hover,.btn.secondary:focus-visible{background:var(--ink); color:var(--paper);}
.btn.on-dark{border-color:var(--paper); color:var(--paper);}
.btn.on-dark:hover,.btn.on-dark:focus-visible{background:var(--mark); border-color:var(--mark); color:var(--paper);}
.btn[disabled]{opacity:0.55; cursor:wait;}

.filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:34px;}
.fbtn{font-family:'IBM Plex Mono'; font-size:0.72rem; letter-spacing:0.06em; border:1px solid var(--ink);
  background:transparent; padding:9px 15px; cursor:pointer; transition:background .25s, color .25s;}
.fbtn:hover,.fbtn:focus-visible{background:var(--ink); color:var(--paper);}
.fbtn.on{background:var(--ink); color:var(--paper);}
.pgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr)); gap:28px;}
.pcard{border:1px solid var(--ink); background:var(--paper); text-decoration:none; display:flex; flex-direction:column;
  transition:transform .3s cubic-bezier(.4,0,.2,1);}
.pcard:hover,.pcard:focus-visible{transform:translateY(-4px);}
.pcard .p-head{display:flex; justify-content:space-between; gap:8px; font-family:'IBM Plex Mono'; font-size:0.7rem; color:var(--ink-dim); padding:9px 13px; border-bottom:1px solid var(--ink);}
.pcard .ph{aspect-ratio:4/3;}
.pcard .noimg{aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(45deg, var(--paper) 0 14px, var(--paper2) 14px 15px);}
.pcard .noimg span{font-family:'IBM Plex Mono'; font-size:0.7rem; color:var(--ink-dim); background:var(--paper); padding:6px 10px; border:1px solid var(--rule);}
.pcard .p-body{padding:17px; display:flex; flex-direction:column; gap:8px; flex:1;}
.pcard h3{font-size:1.14rem;}
.pcard .p-meta{font-family:'IBM Plex Mono'; font-size:0.72rem; color:var(--ink-dim); line-height:1.9; margin-top:auto; overflow-wrap:anywhere;}
.pcard .p-meta .val{color:var(--mark); font-weight:600;}
.count-note{font-family:'IBM Plex Mono'; font-size:0.74rem; color:var(--ink-dim); margin-bottom:20px;}

.pd-hero{position:relative; overflow:hidden;}
.pd-hero .ph{aspect-ratio:16/7;}
@media(max-width:700px){.pd-hero .ph{aspect-ratio:4/3;}}
.pd-hero .blueprint{position:absolute; inset:0; background:var(--paper); z-index:3; display:none; align-items:center; justify-content:center;}
.pd-hero .blueprint svg{width:88%; height:82%;}
.pd-hero .blueprint line,.pd-hero .blueprint rect{stroke:var(--ink); fill:none; stroke-width:1;}
.anno-chip{position:absolute; z-index:2; transform:translate(-50%,-100%); font-family:'IBM Plex Mono'; font-size:0.68rem;
  letter-spacing:0.05em; color:var(--paper); background:rgba(15,26,43,0.85); border-left:2px solid var(--mark); padding:5px 9px; white-space:nowrap;}
@media(max-width:700px){.anno-chip{display:none;}}
.pd-pending{aspect-ratio:16/7; display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(45deg, var(--paper) 0 14px, var(--paper2) 14px 15px); margin:12px;}
@media(max-width:700px){.pd-pending{aspect-ratio:4/3;}}
.pd-pending span{font-family:'IBM Plex Mono'; font-size:0.72rem; color:var(--ink-dim); background:var(--paper); padding:8px 12px; border:1px solid var(--rule);}
.spec-strip{display:flex; flex-wrap:wrap; border:1px solid var(--ink); border-top:none; margin-bottom:48px;}
.spec-strip>div{flex:1 1 180px; padding:14px 18px; border-right:1px solid var(--rule); min-width:0;}
.spec-strip>div:last-child{border-right:none;}
.spec-strip .k{font-family:'IBM Plex Mono'; font-size:0.66rem; letter-spacing:0.12em; color:var(--ink-dim); text-transform:uppercase;}
.spec-strip .v{font-family:'IBM Plex Mono'; font-size:0.85rem; font-weight:600; margin-top:3px; overflow-wrap:anywhere;}
.spec-strip .v.red{color:var(--mark);}
@media(max-width:640px){.spec-strip>div{flex:1 1 100%; border-right:none; border-bottom:1px solid var(--rule);} .spec-strip>div:last-child{border-bottom:none;}}

.tabs{display:flex; border:1px solid var(--ink); border-bottom:none; width:max-content; max-width:100%; overflow-x:auto;}
.tab{font-family:'IBM Plex Mono'; font-size:0.72rem; letter-spacing:0.08em; padding:12px 22px; background:transparent;
  border:none; border-right:1px solid var(--ink); cursor:pointer; color:var(--ink-dim); min-height:44px;}
.tab:last-child{border-right:none;}
.tab[aria-selected="true"]{background:var(--ink); color:var(--paper);}
.tabpanel{border:1px solid var(--ink); padding:26px; margin-bottom:44px;}
.tabpanel[hidden]{display:none;}
.tabpanel p{color:var(--ink-dim); max-width:640px; margin-bottom:14px;}
.scope-table{border:1px solid var(--ink);}
.scope-table .sr{display:grid; grid-template-columns:64px 1fr; border-bottom:1px solid var(--rule);}
.scope-table .sr:last-child{border-bottom:none;}
.scope-table .sr>*{padding:12px 15px;}
.scope-table .sr .ref{font-family:'IBM Plex Mono'; font-size:0.72rem; color:var(--ink-dim); border-right:1px solid var(--rule);}
.scope-table .sr .it{font-size:0.95rem;}
.keyplan{border:1px solid var(--ink); padding:16px; margin:18px 0 22px; max-width:440px;}
.keyplan svg{width:100%; height:auto; display:block;}
.keyplan .cap{margin-top:10px;}
.keyplan rect,.keyplan path{stroke:var(--ink); fill:none; stroke-width:1;}
.keyplan .hl{fill:var(--mark-soft); stroke:var(--mark);}
.related{border:1px solid var(--ink); padding:20px; margin-bottom:56px;}
.related .row{display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:12px;}
.related a{font-family:'IBM Plex Mono'; font-size:0.74rem; text-decoration:none; padding:8px 0;}
.related a:hover,.related a:focus-visible{color:var(--mark);}
.pd-nav{display:flex; justify-content:space-between; gap:14px; border-top:1px solid var(--ink); padding-top:24px;}
.pd-nav a{font-family:'IBM Plex Mono'; font-size:0.76rem; text-decoration:none; letter-spacing:0.05em; padding:8px 0; min-height:44px; display:inline-flex; align-items:center;}
.pd-nav a:hover,.pd-nav a:focus-visible{color:var(--mark);}
.placeholder-note{border:1px dashed var(--ink-dim); padding:14px 18px; font-family:'IBM Plex Mono'; font-size:0.72rem;
  color:var(--ink-dim); margin:0 0 18px; letter-spacing:0.03em;}

.cap-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:24px;}
.cap-card{border:1px solid var(--ink); padding:22px; transition:background .25s;}
.cap-card:hover{background:var(--paper2);}
.cap-card .ref{font-family:'IBM Plex Mono'; font-size:0.7rem; color:var(--mark); letter-spacing:0.1em;}
.cap-card h3{font-size:1.15rem; margin:8px 0 6px;}
.cap-card p{font-size:0.88rem; color:var(--ink-dim);}
.cap-card .sys{margin-top:12px; font-family:'IBM Plex Mono'; font-size:0.7rem; line-height:1.9; color:var(--ink); border-top:1px solid var(--rule); padding-top:10px;}
.group-cap{margin:0 0 18px;}

.about-cols{display:grid; grid-template-columns:1.1fr 0.9fr; gap:52px; margin-bottom:var(--sp-sec);}
@media(max-width:900px){.about-cols{grid-template-columns:1fr;}}
.about-cols p{color:var(--ink-dim); margin-bottom:18px; max-width:560px;}
.fact-table{border:1px solid var(--ink); font-family:'IBM Plex Mono'; font-size:0.76rem;}
.fact-table .fr{display:flex; border-bottom:1px solid var(--rule); flex-wrap:wrap;}
.fact-table .fr:last-child{border-bottom:none;}
.fact-table .fk{flex:0 0 150px; padding:12px 15px; border-right:1px solid var(--rule); color:var(--ink-dim);}
.fact-table .fv{padding:12px 15px; overflow-wrap:anywhere; flex:1; min-width:140px;}
.pending{border:1px dashed var(--ink-dim); padding:22px; margin-bottom:22px;}
.pending .t-cap{margin-bottom:8px;}
.pending p{font-family:'IBM Plex Mono'; font-size:0.74rem; color:var(--ink-dim); letter-spacing:0.02em;}

.faq{border:1px solid var(--ink); margin-bottom:56px;}
.faq details{border-bottom:1px solid var(--rule);}
.faq details:last-child{border-bottom:none;}
.faq summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:14px;
  padding:18px 20px; font-family:'Archivo'; font-weight:600; font-size:1.02rem; min-height:44px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+'; font-family:'IBM Plex Mono'; color:var(--mark); font-size:1.1rem; transition:transform .25s; flex:0 0 auto;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq .fa{padding:0 20px 18px; color:var(--ink-dim); font-size:0.93rem; max-width:700px;}

.rfi-wrap{display:grid; grid-template-columns:1fr 340px; gap:52px;}
@media(max-width:920px){.rfi-wrap{grid-template-columns:1fr;}}
.rfi{border:1px solid var(--ink);}
.rfi .e-head{display:flex; justify-content:space-between; gap:10px; padding:13px 20px; border-bottom:1px solid var(--ink);
  font-family:'IBM Plex Mono'; font-size:0.72rem; letter-spacing:0.06em; flex-wrap:wrap;}
.rfi form{padding:26px 20px; display:grid; grid-template-columns:1fr 1fr; gap:22px;}
@media(max-width:640px){.rfi form{grid-template-columns:1fr;}}
.rfi .full{grid-column:1/-1;}
.rfi label{display:block; font-family:'IBM Plex Mono'; font-size:0.68rem; letter-spacing:0.1em; color:var(--ink-dim);
  margin-bottom:7px; text-transform:uppercase;}
.rfi label .req{color:var(--err);}
.rfi input,.rfi textarea,.rfi select{width:100%; background:transparent; border:none; border-bottom:1px solid var(--ink);
  font-family:'Inter'; font-size:0.98rem; color:var(--ink); padding:9px 2px; border-radius:0;}
.rfi select{appearance:none; -webkit-appearance:none; cursor:pointer; min-height:44px;
  background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6"><path d="M0,0 L5,6 L10,0" fill="none" stroke="%233E6E8E" stroke-width="1.4"/></svg>');
  background-repeat:no-repeat; background-position:right 4px center; padding-right:22px;}
.rfi input:focus-visible,.rfi textarea:focus-visible,.rfi select:focus-visible{border-bottom-color:var(--mark);}
.rfi [aria-invalid="true"]{border-bottom:2px solid var(--err);}
.rfi .ferr{display:none; font-family:'IBM Plex Mono'; font-size:0.68rem; color:var(--err); margin-top:6px;}
.rfi .ferr.show{display:block;}
.rfi textarea{min-height:88px; resize:vertical;}
.rfi button{grid-column:1/-1; justify-self:start; min-height:46px;}
.rfi .btn{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.rfi .consent{grid-column:1/-1; font-family:'IBM Plex Mono'; font-size:0.7rem; color:var(--ink-dim); letter-spacing:0.02em;}
.rfi .consent a{border-bottom:1px solid var(--mark); text-decoration:none;}
.rfi .status{grid-column:1/-1; font-family:'IBM Plex Mono'; font-size:0.76rem; min-height:1.2em;}
.rfi .status.ok{color:#2c6b34;} .rfi .status.err{color:var(--err);}
.contact-side .blockrow{border:1px solid var(--ink); padding:20px; margin-bottom:20px;}
.contact-side .blockrow .t-cap{margin-bottom:8px;}
.contact-side a{text-decoration:none; border-bottom:1px solid var(--mark);}
.contact-side .mono{font-size:0.85rem; line-height:2.1;}

.legal{max-width:760px;}
.legal h2{font-size:1.3rem; margin:34px 0 12px;}
.legal p,.legal li{color:var(--ink-dim); font-size:0.94rem; margin-bottom:12px;}
.legal ul{padding-left:20px;}
.legal .gap{background:var(--mark-soft); border:1px dashed var(--mark); padding:2px 8px; font-family:'IBM Plex Mono'; font-size:0.8rem; color:var(--mark);}

footer{border-top:1px solid var(--rule); margin-top:56px;}
.foot-in{max-width:1340px; margin:0 auto; padding:36px clamp(16px,4vw,48px) 44px;}
footer .f-top{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:24px;}
footer .f-top .t-cap{color:var(--ink);}
footer .f-mid{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:18px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); margin-bottom:18px;}
footer .f-mid .mono{font-size:0.78rem; line-height:2.1;}
footer .f-mid a{text-decoration:none;}
footer .f-mid a:hover,footer .f-mid a:focus-visible{color:var(--mark);}
footer .f-bot{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-family:'IBM Plex Mono'; font-size:0.7rem; color:var(--ink-dim);}
footer .f-bot a{text-decoration:none;}
footer .f-bot a:hover,footer .f-bot a:focus-visible{color:var(--mark);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation:none !important; transition:none !important;}
}
