@font-face{
  font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;
  src:url(/assets/mont700.woff2) format('woff2');
}
:root{
  --paper:#f7f7f3; --sheet:#fdfdfb;
  --ink:#101512; --ink2:#3a423d; --mut:#707a73;
  --green:#39d353; --brand:#019444; --green-ink:#157a37; --green-deep:#0f5c2a;
  --rule:#dadfd9; --rule2:#c9cfc8;
  --blue:#1f5fae; --amber:#b45309; --slate:#475569;
  --sans:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --disp:'Montserrat','Helvetica Neue',Helvetica,Arial,sans-serif;
  --mono:ui-monospace,'SF Mono','Cascadia Mono',Consolas,'Courier New',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:74px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{color:var(--ink2);font-family:var(--sans);font-size:16px;line-height:1.62;background:var(--paper);-webkit-text-size-adjust:100%}
a{color:var(--green-ink)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,.flip:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.wrap{max-width:840px;margin:0 auto;padding-left:18px;padding-right:18px}
@media(min-width:700px){.wrap{padding-left:28px;padding-right:28px}}
.nav{position:sticky;top:0;z-index:10;background:rgba(247,247,243,.96);border-bottom:1.5px solid var(--ink)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:8px 14px;padding-top:9px;padding-bottom:8px;flex-wrap:wrap}
.lockup{display:flex;align-items:center;text-decoration:none}
.lockup img{height:36px;width:auto;display:block}
@media(min-width:700px){.lockup img{height:46px}}
.nav-links{display:flex;flex-wrap:wrap}
.nav-links a{font-family:var(--mono);font-size:10.5px;color:var(--mut);text-decoration:none;padding:8px 6px;letter-spacing:.02em;position:relative}
@media(min-width:700px){.nav-links a{padding:8px 10px;font-size:11px}}
.nav-links a::after{content:"";position:absolute;left:6px;right:6px;bottom:4px;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
@media(min-width:700px){.nav-links a::after{left:10px;right:10px}}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links a.active{color:var(--ink)}
@media(prefers-reduced-motion:reduce){.nav-links a::after{transition:none}}
.loghead{border-bottom:1.5px solid var(--ink);background:var(--sheet)}
.loghead .wrap{display:grid;grid-template-columns:1fr 1fr;font-family:var(--mono)}
@media(min-width:700px){.loghead .wrap{grid-template-columns:.8fr 1.55fr 1fr .65fr}}
.loghead .f{padding:9px 0;border-bottom:1px solid var(--rule);min-width:0}
.loghead .f+.f{padding-left:14px;border-left:1px solid var(--rule)}
@media(min-width:700px){.loghead .f{border-bottom:none}}
@media(max-width:699px){
  .loghead .f.span{grid-column:1/-1;border-left:none;padding-left:0}
  .loghead .f:nth-child(3){border-left:none;padding-left:0}
  .loghead .f:nth-child(n+3){border-bottom:none}
}
.loghead .k{font-size:9px;font-weight:700;letter-spacing:.18em;color:var(--mut)}
.loghead .v{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ink);margin-top:2px;white-space:nowrap}
.hero{background:var(--sheet);border-bottom:1.5px solid var(--ink)}
.hero .wrap{padding-top:56px;padding-bottom:8px}
@media(min-width:700px){.hero .wrap{padding-top:74px}}
.hero h1{font-family:var(--disp);font-weight:700;font-size:clamp(28px,6.6vw,48px);line-height:1.1;letter-spacing:-.02em;color:var(--ink);max-width:21ch}
.hero h1 em{font-style:normal;color:var(--brand)}
.hero .sub{margin-top:20px;font-size:clamp(16px,4.2vw,18px);max-width:56ch}
.btn-row{margin-top:28px;display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding-bottom:44px}
.btn{position:relative;display:inline-block;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.04em;padding:14px 24px;border:2px solid var(--ink);cursor:pointer;text-decoration:none;background:var(--ink);color:#fff;overflow:hidden;z-index:0}
.btn::before{content:"";position:absolute;inset:0;background:var(--green-deep);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;z-index:-1}
.btn:hover::before{transform:scaleX(1)}
.btn[disabled]{opacity:.6;cursor:default}
@media(prefers-reduced-motion:reduce){.btn::before{transition:none}}
.tels{display:flex;gap:18px;flex-wrap:wrap}
.tels a{font-family:var(--mono);font-weight:700;font-size:14px;color:var(--ink);text-decoration:none;display:block}
.tels small{display:block;font-size:9px;letter-spacing:.18em;color:var(--mut);font-weight:700;margin-bottom:1px}
.diag{background:var(--sheet);border-bottom:1.5px solid var(--ink)}
.diag .wrap{padding-top:22px;padding-bottom:26px}
.plabel{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--mut);margin-bottom:16px}
.dg-h{display:none}
@media(min-width:640px){.dg-h{display:block}.dg-v{display:none}}
.dg-v{list-style:none;max-width:320px;margin:0 auto}
.dg-v li{position:relative;padding:0 0 18px 30px;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--ink)}
.dg-v li::before{content:"";position:absolute;left:7px;top:7px;bottom:-7px;width:2px;background:var(--ink)}
.dg-v li:last-child{padding-bottom:0}
.dg-v li:last-child::before{display:none}
.dg-v li::after{content:"";position:absolute;left:2px;top:2px;width:9px;height:9px;background:var(--sheet);border:2px solid var(--ink)}
.dg-v li.hl::after{background:var(--green)}
.dg-v li small{display:block;font-size:10px;letter-spacing:.04em;color:var(--mut);margin-top:2px;font-weight:400;font-family:var(--sans);text-transform:none;line-height:1.45}
.dg-v li.brk{padding:2px 0 14px 30px;font-size:9px;letter-spacing:.2em;color:var(--mut)}
.dg-v li.brk::after{display:none}
section{border-bottom:1px solid var(--rule2)}
section:last-of-type{border-bottom:none}
section .wrap{padding-top:50px;padding-bottom:50px}
@media(min-width:700px){section .wrap{padding-top:62px;padding-bottom:62px}}
.fig{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.14em;color:var(--ink);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.fig::before{content:"";width:9px;height:9px;background:var(--green);border:1.5px solid var(--ink);flex:none}
h2{font-family:var(--disp);font-weight:700;font-size:clamp(20px,5vw,26px);letter-spacing:-.015em;line-height:1.22;color:var(--ink);max-width:30ch}
.lede{margin-top:11px;font-size:16px;max-width:60ch}
.fine{margin-top:16px;font-size:13px;color:var(--mut);max-width:64ch}
.rowlab{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.18em;color:var(--mut);margin:30px 0 0;display:flex;align-items:center;gap:10px}
.rowlab::after{content:"";flex:1;height:1px;background:var(--rule2)}
.bom{display:grid;gap:10px;margin-top:24px;grid-template-columns:1fr;align-items:stretch}
@media(min-width:760px){.bom{grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:0}}
.bom-cell{background:var(--sheet);border:1px solid var(--rule2);border-left:4px solid var(--ink);padding:14px 16px;display:flex;flex-direction:column}
.bom-cell.dev{border-left-color:var(--brand)}
.bom-cell.ppl{border-left-color:var(--blue)}
.bom-cell.add{border-left-color:var(--amber)}
.bom-cell.inf{border-left-color:var(--slate)}
.bom-cell .code{font-weight:700;color:var(--ink2)}
.bom-cell.dev .code{color:var(--brand)}
.bom-cell.ppl .code{color:var(--blue)}
.bom-cell.add .code{color:var(--amber)}
.bom-cell.inf .code{color:var(--slate)}
.bk2{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--ink);margin-bottom:6px}
.bv{font-size:13px;line-height:1.5;color:var(--ink2)}
.bu{margin-top:auto;padding-top:9px;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--green-deep)}
.bom-plus{font-family:var(--mono);font-weight:700;font-size:18px;color:var(--ink);text-align:center;align-self:center;padding:0 9px}
@media(max-width:759px){.bom-plus{padding:0;line-height:1}}
.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.js .reveal.rv{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
.tiers{display:grid;gap:22px;margin-top:24px;grid-template-columns:1fr}
@media(min-width:760px){.tiers{grid-template-columns:1fr 1fr 1fr}}
@media(min-width:760px){.tiers.duo{grid-template-columns:1fr 1fr}.tiers.quad{grid-template-columns:1fr 1fr}}
.flip{position:relative;perspective:1100px;cursor:pointer}
.fi{position:relative;transition:transform .55s;transform-style:preserve-3d;height:100%}
@media(prefers-reduced-motion:reduce){.fi{transition:none}}
.flip.on .fi{transform:rotateY(180deg)}
@media(hover:hover){.flip:hover .fi{transform:rotateY(180deg)}}
.face{backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--sheet);border:1.5px solid var(--ink)}
.tn,.hint,.ek,.bk{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.front{position:relative;display:flex;flex-direction:column;height:100%;min-height:312px;padding:18px;transform:rotateY(0deg)}
@media(min-width:760px){.front{min-height:354px}}
.tiers.compact .front{min-height:286px}
@media(min-width:760px){.tiers.compact .front{min-height:300px}}
.back{position:absolute;inset:0;transform:rotateY(180deg);padding:16px 17px;overflow:visible}
.tn{position:absolute;top:-12px;left:14px;background:var(--ink);color:#fff;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;padding:4px 10px;z-index:1}
.tn i{font-style:normal;color:var(--green)}
.tt{font-family:var(--disp);font-weight:700;font-size:15px;color:var(--ink);margin:8px 0 4px}
.plus{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--mut);margin:10px 0 2px}
.front ul,.back ul{list-style:none}
.front li{position:relative;padding:4px 0 4px 18px;font-size:13.8px;line-height:1.5}
.front li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;background:var(--ink)}
.term{margin-top:auto;padding-top:12px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--mut)}
.hint{position:absolute;right:12px;bottom:10px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--mut)}
.bk{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--green-deep);margin:6px 0 8px}
.back li{position:relative;padding:3px 0 3px 18px;font-size:12.5px;line-height:1.42;color:var(--ink2)}
.back li::before{content:"";position:absolute;left:0;top:10px;width:5px;height:5px;background:var(--brand)}
.svc{margin-top:26px;border-top:1.5px solid var(--ink)}
details{border-bottom:1px solid var(--rule);background:var(--sheet);position:relative}
details:last-child{border-bottom:1.5px solid var(--ink)}
details.srow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:52px;background:var(--ink)}
@media(min-width:560px){details.srow::before{width:62px}}
summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:13px;padding:16px 14px 16px 0;position:relative}
summary::-webkit-details-marker{display:none}
summary .sid{flex:none;width:52px;text-align:center;color:#fff;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;align-self:center;position:relative;z-index:1}
@media(min-width:560px){summary .sid{width:62px}}
summary .sid i{font-style:normal;color:var(--green)}
summary .t{flex:1;padding-left:2px}
summary .t b{font-family:var(--disp);font-size:15.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.pill{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--green-deep);border:1px solid var(--rule2);padding:2px 7px;margin-left:9px;vertical-align:2px;white-space:nowrap;background:var(--paper)}
summary .t .s{display:block;margin-top:4px;font-size:13.5px;color:var(--mut);line-height:1.55}
summary .arrow{flex:none;align-self:center;font-family:var(--mono);font-weight:700;color:var(--ink2);transition:transform .22s ease;padding-right:0}
details[open] .arrow{transform:rotate(90deg)}
@media(prefers-reduced-motion:reduce){summary .arrow{transition:none}}
.body{padding:2px 14px 18px 78px;position:relative;z-index:1}
@media(max-width:560px){.body{padding-left:66px}}
.body ul{list-style:none}
.body li{position:relative;padding:5px 0 5px 20px;font-size:14.5px;line-height:1.55}
.body li::before{content:"";position:absolute;left:0;top:13px;width:6px;height:6px;background:var(--ink)}
.egrid{display:grid;gap:22px;margin-top:18px;grid-template-columns:1fr}
@media(min-width:680px){.egrid{grid-template-columns:1fr 1fr}}
.egrid.tri,.egrid.solo{grid-template-columns:1fr}
@media(min-width:860px){.egrid.tri{grid-template-columns:1fr 1fr 1fr;gap:18px}}
.egrid.tri .ek{align-items:flex-start;min-height:50px;font-size:10px;letter-spacing:.06em;line-height:1.35}
.egrid .front{min-height:286px;padding:16px 17px}
@media(min-width:680px){.egrid .front{min-height:300px}}
.egrid .hint{bottom:auto;top:12px}
.ek{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--ink);margin-bottom:8px;padding-right:46px}
.egrid li{position:relative;padding:4px 0 4px 18px;font-size:13.8px;line-height:1.5}
.egrid .front li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;background:var(--ink)}
.cta .front{padding-top:0;border-width:2px}
.cta .ek{display:flex;align-items:center;gap:9px;background:var(--ink);color:#fff;margin:0 -17px 12px;padding:11px 17px;letter-spacing:.14em}
.cta .ek::before{content:"";width:8px;height:8px;background:var(--green);border:1.5px solid #fff;flex:none}
.cta .back{border-width:2px}
.cta .hint{color:#9aa39c}
.credit{margin-top:auto;border-top:1.5px solid var(--ink);padding-top:9px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--green-deep);line-height:1.55}
.pricetag{display:inline-flex;align-items:baseline;gap:9px;font-family:var(--mono);margin:20px 0 4px}
.pricetag b{font-size:36px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1}
.pricetag span{font-size:10.5px;font-weight:700;letter-spacing:.12em;color:var(--green-deep)}
.flowline{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--ink);margin:20px 0 6px;line-height:1.9}
.flowline span{color:var(--mut);font-weight:700}
.ledger{margin-top:26px;background:var(--sheet);border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.lrow{display:grid;grid-template-columns:1fr;border-bottom:1px solid var(--rule)}
.lrow:last-child{border-bottom:none}
@media(min-width:680px){.lrow{grid-template-columns:215px 1fr}}
.lrow .k{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--ink);padding:14px 14px 0}
@media(min-width:680px){.lrow .k{padding:15px 0 15px 14px}}
.lrow .v{padding:5px 14px 14px;font-size:14.5px}
@media(min-width:680px){.lrow .v{padding:15px 14px}}
.cadence{margin-top:24px;border-top:1.5px solid var(--ink)}
.cad{display:grid;grid-template-columns:1fr;gap:5px;padding:15px 0;border-bottom:1px solid var(--rule)}
@media(min-width:680px){.cad{grid-template-columns:185px 1fr;gap:20px}}
.cad:last-child{border-bottom:1.5px solid var(--ink)}
.cad-when{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--ink);display:flex;flex-direction:column;gap:6px}
.cad-tag{font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--green-deep)}
.cad-what{font-size:14px;line-height:1.55;color:var(--ink2)}
.cad-what b{color:var(--ink);font-weight:700}
.cad-list{display:block;margin-top:7px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--mut);line-height:1.7}
.cgrid{display:grid;gap:22px;margin-top:28px;grid-template-columns:1fr}
@media(min-width:680px){.cgrid{grid-template-columns:1fr 1fr}}
.ccell{background:var(--sheet);border:1.5px solid var(--ink);padding:15px 17px}
.ccell .k{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--ink);margin-bottom:9px}
.ccell .v{font-size:14.5px}
.ccell .v b{font-size:15.5px;color:var(--ink)}
.ccell .num b{font-size:17.5px}
.ccell .v small{font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--mut);font-weight:700}
.ccell a{text-decoration:none;color:var(--ink)}
.ccell .num{margin-bottom:15px}
.ccell .num:last-child{margin-bottom:0}
.cmap{padding:0;overflow:hidden;min-height:240px;position:relative}
.cmap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.csplit{display:grid;gap:22px;grid-template-columns:1fr}
@media(min-width:680px){.csplit{grid-template-columns:minmax(0,560px) 1fr}}
.csplit form{margin-top:28px;max-width:none}
.aside{margin-top:28px;display:flex;flex-direction:column}
.aside .k{margin-bottom:12px}
.aside-v{display:flex;flex-direction:column;justify-content:space-between;flex:1;max-width:none;margin:0;position:relative;padding:2px 0}
.aside-v::before{content:"";position:absolute;left:7px;top:9px;bottom:9px;width:2px;background:var(--ink)}
.aside-v li{font-size:11px;padding:0 0 16px 30px}
.aside-v li::before{display:none}
.aside-v li:last-child{padding-bottom:0}
.aside-v li small{font-size:12.5px;color:var(--ink2)}
form{margin-top:28px;max-width:560px;display:grid;gap:15px;background:var(--sheet);border:1.5px solid var(--ink);padding:20px 18px}
label{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.12em;color:var(--mut);display:block;margin-bottom:6px}
input,textarea{width:100%;background:var(--paper);border:1.5px solid var(--ink);color:var(--ink);font-family:var(--sans);font-size:16px;padding:12px;border-radius:0;-webkit-appearance:none}
textarea{min-height:96px;resize:vertical}
form .btn{width:100%;text-align:center}
.form-note{font-size:12.5px;color:var(--mut);font-family:var(--mono)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
footer{border-top:1.5px solid var(--ink);background:var(--sheet)}
footer .wrap{padding-top:15px;padding-bottom:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--mut)}

.srow-link{display:flex;align-items:center;gap:13px;padding:16px 14px 16px 0;position:relative;background:var(--sheet);border-bottom:1.5px solid var(--ink);text-decoration:none}
.srow-link::before{content:"";position:absolute;left:0;top:0;bottom:0;width:52px;background:var(--ink)}
@media(min-width:560px){.srow-link::before{width:62px}}
.srow-link .sid{flex:none;width:52px;text-align:center;color:#fff;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;position:relative;z-index:1}
@media(min-width:560px){.srow-link .sid{width:62px}}
.srow-link .sid i{font-style:normal;color:var(--green)}
.srow-link .t{flex:1;padding-left:2px}
.srow-link .t b{font-family:var(--disp);font-size:15.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.srow-link .t .s{display:block;margin-top:4px;font-size:13.5px;color:var(--mut);line-height:1.55}
.srow-link .arrow{flex:none;font-family:var(--mono);font-weight:700;color:var(--ink2)}
.srow-link:hover .t b{color:var(--green-deep)}
.winrow{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
.win{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;border:1.5px solid var(--ink);background:var(--paper);padding:6px 10px;cursor:pointer;transition:background .14s,color .14s,border-color .14s;-webkit-tap-highlight-color:transparent}
.win:not(.et):hover{background:#e9f7ee;border-color:var(--green-deep)}
.win.sel{background:var(--green);border-color:var(--green);color:#fff}
.win.et{cursor:default}
footer .idx{display:flex;flex-wrap:wrap;gap:4px 14px}
footer .idx a{color:var(--mut);text-decoration:none}
footer .idx a:hover{color:var(--ink)}
footer .idx a.cur{color:var(--ink)}
#toTop{position:fixed;right:16px;bottom:16px;z-index:60;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.12em;padding:10px 13px;background:var(--ink);color:#fff;border:1.5px solid var(--ink);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease,visibility .2s,background .15s}
#toTop.show{opacity:1;visibility:visible;transform:none}
#toTop:hover{background:var(--green-deep)}
@media(prefers-reduced-motion:reduce){#toTop{transition:none}}
