/* llmhostingapi.com - Swiss spec-sheet leaflet. One ruled column, doubling stripe progression. */
:root{--ink:#0a0a0a;--paper:#fff;--g:#1ba738;--gd:#0c6e22;--mut:#474d48;--hair:#c8ccc8;--tint:#eef3ee;--plate:#0b0f0c;--err:#b3261e;
--sans:"Chivo",Helvetica,Arial,sans-serif;--mono:"Chivo Mono",ui-monospace,Menlo,Consolas,monospace}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%}
a{color:var(--gd);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
h1,h2,h3,p,ul,ol,dl,dd{margin:0}
ul,ol{padding:0}
.col{width:min(720px,100% - 40px);margin-inline:auto}
.skip{position:absolute;left:-9999px;top:0;z-index:50;background:var(--ink);color:#fff;padding:12px 18px;font-weight:700}
.skip:focus{left:0}

/* header: one ruled table row */
.hd{position:sticky;top:0;z-index:20;background:var(--paper)}
.hd-row{position:relative;display:flex;align-items:stretch;min-height:58px;border-bottom:2px solid var(--ink)}
.logo{display:flex;align-items:center;gap:11px;flex:1 1 auto;min-width:0;color:var(--ink);text-decoration:none;font-weight:800;font-size:1.02rem;letter-spacing:-.02em;line-height:1.1}
.logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mark{flex:none;display:block}
.nav{display:flex}
.nav a{display:flex;align-items:center;padding:0 13px;border-left:1px solid var(--hair);color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:500;min-height:56px}
.nav a:hover{background:var(--ink);color:#fff}
.nav a[aria-current]{box-shadow:inset 0 -6px 0 var(--g);font-weight:800}
.keycell{display:flex;align-items:center;flex:none;padding:0 18px;background:var(--g);color:var(--ink);text-decoration:none;font-weight:800;font-size:.92rem;white-space:nowrap;border-left:2px solid var(--ink)}
.keycell:hover{background:var(--ink);color:#fff}
.burger{display:none;flex:none;width:54px;border:0;border-left:2px solid var(--ink);background:var(--paper);cursor:pointer;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.burger i{display:block;height:2px;background:var(--ink)}
.burger i:nth-child(1){width:24px}.burger i:nth-child(2){width:18px}.burger i:nth-child(3){width:12px;height:4px;background:var(--g)}

/* stripe progression: 1-2-4-8-16-32, enters from the left screen edge */
.prog{margin-bottom:44px}
.prog i{display:block;background:var(--g);margin-top:6px;margin-left:calc(50% - 50vw);width:calc(50vw - 50% + var(--w))}
.prog i:nth-child(1){height:1px;--w:100%}
.prog i:nth-child(2){height:2px;--w:84%}
.prog i:nth-child(3){height:4px;--w:68%}
.prog i:nth-child(4){height:8px;--w:52%}
.prog i:nth-child(5){height:16px;--w:36%}
.prog i:nth-child(6){height:32px;--w:20%}

/* page top */
.top{padding:34px 0 8px}
.hero{padding-top:46px}
.path{display:flex;flex-wrap:wrap;gap:4px 9px;font:500 .74rem/1.5 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-bottom:22px}
.path a{color:var(--gd)}
.eyebrow{font:500 .78rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--gd);margin-bottom:18px}
h1{font-weight:800;font-size:clamp(2.1rem,7.2vw,3.5rem);line-height:.98;letter-spacing:-.04em;overflow-wrap:break-word;text-wrap:balance}
.hero h1,.nf h1{font-weight:900;font-size:clamp(2.55rem,10.2vw,4.9rem);line-height:.92;letter-spacing:-.05em}
.lead{font-size:1.2rem;line-height:1.48;margin-top:22px;max-width:36em;color:#1b1f1c}
.acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 24px;background:var(--g);color:var(--ink);border:2px solid var(--ink);border-radius:0;font:800 1rem/1.1 var(--sans);text-decoration:none;cursor:pointer;letter-spacing:-.01em}
.btn::after{content:"";width:14px;height:8px;background:linear-gradient(var(--ink),var(--ink)) 0 0/100% 2px no-repeat,linear-gradient(var(--ink),var(--ink)) 0 100%/50% 4px no-repeat;flex:none}
.btn:hover{background:var(--ink);color:#fff}
.btn:hover::after{background:linear-gradient(var(--g),var(--g)) 0 0/100% 2px no-repeat,linear-gradient(var(--g),var(--g)) 0 100%/50% 4px no-repeat}
.btn.ghost{background:var(--paper)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.sm{min-height:44px;padding:0 14px;font-size:.88rem}
.btn.sm::after,.btn.ghost.sm::after{display:none}
.btn.inv{background:var(--ink);color:#fff}
.btn.inv::after{background:linear-gradient(var(--g),var(--g)) 0 0/100% 2px no-repeat,linear-gradient(var(--g),var(--g)) 0 100%/50% 4px no-repeat}
.btn.inv:hover{background:var(--paper);color:var(--ink)}
.btn[disabled]{opacity:.55;cursor:progress}
.bul{list-style:none;margin-top:36px;border-bottom:1px solid var(--ink)}
.bul li{position:relative;padding:12px 0 12px 16.666%;border-top:1px solid var(--ink);font-weight:500}
.bul li::before{content:"";position:absolute;left:0;top:1.35em;width:calc(16.666% - 22px);min-width:14px;height:4px;background:var(--g)}
.bul li:nth-child(2)::before{height:8px;top:1.2em}
.bul li:nth-child(3)::before{height:16px;top:.95em}

/* sections */
main{counter-reset:sec;padding-bottom:10px}
.sec{margin-top:76px}
.sh{display:grid;grid-template-columns:1fr auto;align-items:end;gap:6px 16px;border-top:2px solid var(--ink);padding-top:12px;margin-bottom:28px;counter-increment:sec}
.sh .tick{grid-column:1/-1;width:56px;height:20px;background:linear-gradient(var(--g) 0 2px,transparent 2px 5px,var(--g) 5px 9px,transparent 9px 12px,var(--g) 12px 20px);margin-bottom:10px}
.sh::after{content:counter(sec,decimal-leading-zero);font:500 .78rem/1 var(--mono);color:var(--mut);padding-bottom:7px}
h2{font-weight:800;font-size:clamp(1.6rem,5vw,2.15rem);line-height:1.04;letter-spacing:-.035em;text-wrap:balance}
h3{font-weight:800;font-size:1.14rem;line-height:1.2;letter-spacing:-.015em}

/* facts */
.facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);margin-top:28px}
.facts>div{grid-column:span 2;display:flex;flex-direction:column;min-width:0;padding:14px 12px 14px 14px;border-left:1px solid var(--hair);border-top:1px solid var(--hair)}
.facts>div:nth-child(-n+2){grid-column:span 3;border-top:0}
.facts>div:nth-child(1),.facts>div:nth-child(3){border-left:0;padding-left:0}
.facts dd{font-weight:900;font-size:2rem;line-height:1;letter-spacing:-.045em}
.facts>div:nth-child(-n+2) dd{font-size:3.3rem}
.facts>div:nth-child(1) dd{color:var(--gd)}
.facts dt{font:500 .72rem/1.35 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin-top:9px;overflow-wrap:anywhere}
.facts.big{margin-top:36px}
.facts.big>div{padding-top:20px;padding-bottom:20px}
.facts.big>div:nth-child(-n+2) dd{font-size:clamp(3.4rem,13vw,5.4rem)}
.facts.big dd{font-size:2.5rem}
.facts.sm{margin-top:76px}
.sub{margin-top:14px;font:500 .8rem/1.5 var(--mono);color:var(--mut)}

/* matrices and rows */
.mx{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;counter-reset:f}
.mx>div{border-top:2px solid var(--ink);padding:12px 0 30px;counter-increment:f;min-width:0}
.mx>div::before{content:counter(f,decimal-leading-zero);display:block;font:500 .74rem/1 var(--mono);color:var(--gd);margin-bottom:22px}
.mx p,.rows p,.steps p{color:#222622;font-size:.98rem;line-height:1.55}
.mx h3{margin-bottom:8px}
.rows{border-bottom:1px solid var(--ink)}
.rows>div{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,4fr);gap:6px 20px;border-top:1px solid var(--ink);padding:18px 0 20px}
.steps{list-style:none;counter-reset:s;border-bottom:1px solid var(--ink)}
.steps li{display:grid;grid-template-columns:16.666% minmax(0,1fr);border-top:1px solid var(--ink);padding:20px 0 22px;counter-increment:s}
.steps li::before{content:counter(s);font-weight:900;font-size:4.4rem;line-height:.8;letter-spacing:-.06em;color:var(--g)}
.steps h3{margin-bottom:6px}

/* code */
.codebox{border:2px solid var(--ink);background:var(--plate);min-width:0}
.codetabs{display:flex;background:var(--paper);border-bottom:2px solid var(--ink);overflow-x:auto}
.codetabs button{flex:none;min-height:46px;padding:0 20px;border:0;border-right:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font:500 .82rem/1 var(--mono);cursor:pointer}
.codetabs button:hover{background:var(--tint)}
.codetabs button[aria-selected="true"]{background:var(--g);font-weight:700}
pre.code{position:relative;margin:0;background:var(--plate);color:#eef2ee;font:400 .84rem/1.65 var(--mono);overflow:hidden;max-width:100%;tab-size:2}
pre.code code{display:block;overflow-x:auto;padding:54px 18px 20px;font:inherit;white-space:pre;background:none;color:inherit}
pre.code:focus-visible{outline-offset:-5px;outline-color:var(--g)}
pre.code .k{color:#6fe88c;font-weight:500}
pre.code .s{color:#fff3b8}
pre.code .c{color:#98a29b}
.copy{position:absolute;top:0;right:0;min-height:44px;min-width:72px;padding:0 14px;border:0;border-left:1px solid #2e372f;border-bottom:1px solid #2e372f;border-radius:0;background:var(--plate);color:#fff;font:500 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
.copy:hover{background:var(--g);color:var(--ink)}
.copy:focus-visible{outline-color:#fff;outline-offset:-4px}
.try .facts{margin-top:0;border-top:0}

/* prose */
.prose{margin-top:76px;overflow-wrap:break-word}
.top+.prose{margin-top:40px}
.prose>*+*{margin-top:1.05em}
.prose h2{border-top:2px solid var(--ink);padding-top:16px;margin-top:2.3em}
.prose>h2:first-child{margin-top:0}
.prose h3{margin-top:1.9em;font-size:1.22rem}
.prose h2+*,.prose h3+*{margin-top:.75em}
.prose ul,.prose ol{padding-left:0;list-style:none}
.prose li{position:relative;padding-left:30px;margin-top:.5em}
.prose ul>li::before{content:"";position:absolute;left:0;top:.68em;width:16px;height:4px;background:var(--g)}
.prose ol{counter-reset:o}
.prose ol>li{counter-increment:o}
.prose ol>li::before{content:counter(o,decimal-leading-zero);position:absolute;left:0;top:.36em;font:500 .74rem/1.5 var(--mono);color:var(--gd)}
.prose :not(pre)>code{font:500 .86em var(--mono);background:var(--tint);padding:.12em .36em;overflow-wrap:anywhere}
.prose pre.code{margin-top:1.3em}
.prose strong{font-weight:800}
.prose blockquote{margin:1.3em 0 0;padding:4px 0 4px 20px;border-left:8px solid var(--g);font-weight:500}
.tw{overflow-x:auto;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.prose table{border-collapse:collapse;width:100%;max-width:100%;font-size:.94rem;line-height:1.45}
.tw table{min-width:500px}
.prose th{text-align:left;font:500 .72rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--ink);padding:11px 16px 11px 0;vertical-align:bottom}
.prose td{border-top:1px solid var(--hair);padding:11px 16px 11px 0;vertical-align:top;overflow-wrap:anywhere}
.prose td:first-child{font-weight:700}

/* faq */
.faq{border-bottom:1px solid var(--ink)}
.faq details{border-top:1px solid var(--ink)}
.faq summary{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;list-style:none;cursor:pointer;padding:17px 0;min-height:44px;font-weight:800;font-size:1.08rem;line-height:1.3;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:22px;height:22px;margin-top:2px;background:linear-gradient(var(--ink),var(--ink)) 50% 50%/100% 2px no-repeat,linear-gradient(var(--ink),var(--ink)) 50% 50%/2px 100% no-repeat}
.faq details[open] summary::after{background:linear-gradient(var(--g),var(--g)) 50% 50%/100% 8px no-repeat}
.faq summary:hover{color:var(--gd)}
.faq details p{padding:0 44px 22px 0;max-width:40em}

/* cta band */
.band{margin-top:84px;background:var(--g);color:var(--ink);padding:0 30px 34px}
.band-bars{height:63px;margin:0 -30px 30px;background:linear-gradient(90deg,var(--ink),var(--ink)) 0 0/100% 1px no-repeat,linear-gradient(90deg,var(--ink),var(--ink)) 0 7px/84% 2px no-repeat,linear-gradient(90deg,var(--ink),var(--ink)) 0 15px/68% 4px no-repeat,linear-gradient(90deg,var(--ink),var(--ink)) 0 25px/52% 8px no-repeat,linear-gradient(90deg,var(--ink),var(--ink)) 0 39px/36% 16px no-repeat}
.band h2{font-weight:900;font-size:clamp(1.9rem,6.4vw,3rem);line-height:.96;letter-spacing:-.045em}
.band p{margin-top:14px;font-weight:500;max-width:30em}
.band .btn{margin-top:24px}

/* toc */
.toc{margin-top:36px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding-top:12px}
.lbl,.take h2{font:500 .74rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.toc ol{list-style:none;counter-reset:t;columns:2;column-gap:28px;margin-top:10px}
.toc li{counter-increment:t;break-inside:avoid;border-top:1px solid var(--hair)}
.toc a{display:flex;align-items:center;gap:14px;min-height:46px;padding:8px 0;color:var(--ink);text-decoration:none;font-weight:500;font-size:.96rem;line-height:1.25}
.toc a::before{content:counter(t,decimal-leading-zero);font:500 .74rem/1 var(--mono);color:var(--gd);flex:none}
.toc a:hover{background:var(--ink);color:#fff}
.toc a:hover::before{color:var(--g)}
.side{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 24px;margin-top:36px;border:2px solid var(--ink);padding:18px 20px}
.prose+.side{margin-top:64px}
.side-h{font-weight:800;font-size:1.14rem;letter-spacing:-.015em}
.side p+p{color:var(--mut);font-size:.96rem;margin-top:2px}
.date{margin-top:20px;font:500 .76rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.take{margin-top:30px;background:var(--g);padding:20px 26px 24px}
.take h2{color:var(--ink);font-weight:700}
.take ul{list-style:none;margin-top:12px}
.take li{position:relative;padding:11px 0 11px 30px;border-top:1px solid var(--ink);font-weight:500;line-height:1.42}
.take li::before{content:"";position:absolute;left:0;top:1.25em;width:16px;height:4px;background:var(--ink)}

/* signup */
.signup{margin-top:28px}
.form{border:2px solid var(--ink);background:var(--paper)}
.tabs2{display:grid;grid-template-columns:1fr 1fr;border-bottom:2px solid var(--ink)}
.tabs2 button{min-height:50px;border:0;border-radius:0;background:var(--paper);color:var(--ink);font:500 .82rem/1.1 var(--mono);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;padding:0 10px}
.tabs2 button+button{border-left:2px solid var(--ink)}
.tabs2 button[aria-selected="true"]{background:var(--ink);color:#fff;font-weight:700}
.tabs2 button:focus-visible{outline-offset:-6px;outline-color:var(--g)}
.msg{margin:0}
.msg:empty{display:none}
.msg.err{background:var(--err);color:#fff;padding:13px 24px;font-weight:700;font-size:.96rem}
.form form{padding:22px 24px 24px}
.row{margin-bottom:16px}
.row label,.calc label{display:block;font:500 .74rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}
.row input,.calc input{display:block;width:100%;min-width:0;height:54px;padding:0 14px;border:2px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font:500 1.05rem var(--mono);-webkit-appearance:none;appearance:none}
.row input:focus,.calc input:focus{outline:0;box-shadow:inset 0 -8px 0 var(--g)}
.note{font-size:.86rem;line-height:1.45;color:var(--mut);margin-top:8px}
.form form>.btn{width:100%;min-height:60px;font-size:1.1rem;margin-top:4px}
.form form>.note{margin-top:12px}
.keyout{display:none;padding:22px 24px 24px}
.keyout.on{display:block}
.keyout h3{font-size:1.4rem;letter-spacing:-.03em;margin-bottom:14px}
.keybox{display:flex;align-items:stretch;border:2px solid var(--ink);background:var(--plate)}
.keybox [data-key]{flex:1;min-width:0;padding:14px 16px;font:500 .95rem/1.5 var(--mono);color:#6fe88c;overflow-wrap:anywhere;word-break:break-all}
.keybox .btn{border:0;border-left:2px solid var(--ink);min-height:52px}
.keyout>p{margin-top:14px;line-height:1.9;overflow-wrap:anywhere}
.keyout>p.note{line-height:1.45;margin-top:10px}
.keyout code{font:500 .9em var(--mono);background:var(--tint);padding:.15em .4em}
.keyout .mut{color:var(--mut)}
.acts .btn.sm{flex:0 1 auto}
.keyout .acts{margin-top:18px;gap:8px}

/* calculator */
.calc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:2px solid var(--ink)}
.calc>div{padding:18px 20px 20px;min-width:0}
.calc>div:nth-child(2){border-left:1px solid var(--ink)}
.calc>div:nth-child(3){grid-column:1/-1;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--g);border-top:2px solid var(--ink)}
.calc>div:nth-child(3) label{margin:0 0 10px}
.calc output{font-weight:900;font-size:clamp(3rem,13vw,5rem);line-height:.82;letter-spacing:-.05em;font-variant-numeric:tabular-nums}

/* 404 */
.nf{padding-bottom:40px}
.nf-links{margin-top:44px;border-bottom:1px solid var(--ink)}
.nf-links a{display:flex;align-items:center;min-height:50px;border-top:1px solid var(--ink);color:var(--ink);text-decoration:none;font-weight:700}
.nf-links a:hover{background:var(--ink);color:#fff;padding-left:12px}

/* footer */
.ft{margin-top:84px;padding-bottom:44px}
.ft .col{border-top:2px solid var(--ink);padding-top:22px}
.ft-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px}
.ft .logo{flex:0 1 auto;font-size:1.3rem;min-height:44px}
.ft-tag{font:500 .78rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.ft-links{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin-top:22px;border-bottom:1px solid var(--hair)}
.ft-links li{border-top:1px solid var(--hair);min-width:0}
.ft-links a{display:flex;align-items:center;min-height:46px;padding:6px 0;color:var(--ink);text-decoration:none;font-weight:500;font-size:.95rem;line-height:1.25}
.ft-links a:hover{color:var(--gd);text-decoration:underline}
.legal{margin-top:20px;font-size:.84rem;color:var(--mut)}

@media (max-width:640px){
body{font-size:16px}
.col{width:calc(100% - 36px)}
.burger{display:flex}
.nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--paper);border-bottom:2px solid var(--ink);border-top:2px solid var(--ink);z-index:5}
.nav.open{display:flex}
.nav a{border-left:0;border-top:1px solid var(--hair);min-height:52px;padding:0 4px;font-size:1rem}
.nav a:first-child{border-top:0}
.nav a[aria-current]{box-shadow:inset 8px 0 0 var(--g);padding-left:20px}
.keycell{padding:0 13px;font-size:.86rem}
.logo{font-size:.95rem;gap:9px}
.hero{padding-top:30px}
.prog{margin-bottom:32px}
.lead{font-size:1.08rem}
.sec,.prose,.facts.sm{margin-top:60px}
.mx{grid-template-columns:1fr}
.rows>div{grid-template-columns:1fr}
.steps li{grid-template-columns:64px minmax(0,1fr)}
.steps li::before{font-size:3.6rem}
.bul li{padding-left:40px}
.bul li::before{width:24px}
.facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.facts>div,.facts>div:nth-child(-n+2){grid-column:span 1;border-top:1px solid var(--hair);border-left:1px solid var(--hair);padding-left:14px}
.facts>div:nth-child(1){grid-column:1/-1;border-top:0;border-left:0;padding-left:0}
.facts>div:nth-child(3){border-left:1px solid var(--hair);padding-left:14px}
.facts>div:nth-child(2),.facts>div:nth-child(4){border-left:0;padding-left:0}
.facts>div:nth-child(2) dd,.facts.big>div:nth-child(2) dd{font-size:2rem}
.facts.big dd{font-size:2rem}
.toc ol{columns:1}
.side{grid-template-columns:1fr}
.calc{grid-template-columns:1fr}
.calc>div:nth-child(2){border-left:0;border-top:1px solid var(--ink)}
.band{padding:0 20px 28px}
.band-bars{margin:0 -20px 26px}
.form form,.keyout{padding:18px 16px 20px}
.msg.err{padding:12px 16px}
.keybox{flex-direction:column}
.keybox .btn{border-left:0;border-top:2px solid var(--ink)}
.ft-links{grid-template-columns:1fr}
.faq details p{padding-right:0}
pre.code{font-size:.78rem}
pre.code code{padding:52px 14px 16px}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*{transition:none!important}
}
