/* Bohemian Silicon — shared styles
   Layout: narrow column, terminal hero, machine cards, access, steps, terms, inquiry form */
:root{
  --bg:#eef1f4;
  --surface:#ffffff;
  --ink:#141a22;
  --muted:#5b6673;
  --line:#d5dbe2;
  --accent:#1f4fd1;
  --accent-ink:#ffffff;
  --term-bg:#10151c;
  --term-fg:#d8e1ec;
  --term-dim:#7d8a99;
  --term-hi:#7fb2ff;
  --ok:#17803d; --ok-bg:#e3f4e9;
  --warn:#9a5b00; --warn-bg:#fdf0d8;
  --soon:#4b5563; --soon-bg:#e7eaee;
  --danger:#c0362c;
  --f-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --f-body:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0d1117; --surface:#151b23; --ink:#e6ebf1; --muted:#97a3b1; --line:#283140;
  --accent:#6c9bff; --accent-ink:#0b1220; --term-bg:#070a0f; --term-fg:#d8e1ec; --term-dim:#6e7b8b; --term-hi:#8fbcff;
  --ok:#5fd38a; --ok-bg:#12301e; --warn:#f2b45a; --warn-bg:#352612; --soon:#b4bdc8; --soon-bg:#222a35; --danger:#ff7b6e;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0d1117; --surface:#151b23; --ink:#e6ebf1; --muted:#97a3b1; --line:#283140;
  --accent:#6c9bff; --accent-ink:#0b1220; --term-bg:#070a0f; --term-fg:#d8e1ec; --term-dim:#6e7b8b; --term-hi:#8fbcff;
  --ok:#5fd38a; --ok-bg:#12301e; --warn:#f2b45a; --warn-bg:#352612; --soon:#b4bdc8; --soon-bg:#222a35; --danger:#ff7b6e;
  color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--f-body);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
img{max-width:100%}
[hidden]{display:none!important}
.wrap{max-width:1040px;margin:0 auto}
h1,h2,h3{font-family:var(--f-display);line-height:1.1;text-wrap:balance;margin:0}
h2{font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:700;letter-spacing:-.01em;margin-top:10px}
h3{font-size:1.25rem;font-weight:700}
p{margin:0}
a{color:var(--accent)}
.label{font:500 .75rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
section{padding-block:56px;border-top:1px solid var(--line)}
.lead{color:var(--muted);max-width:62ch;margin-top:12px}

/* header */
header{display:flex;justify-content:space-between;align-items:center;padding-block:20px;gap:16px;flex-wrap:wrap}
.logo{font:800 1.3rem/1 var(--f-display);letter-spacing:-.02em;display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.logo i{width:22px;height:22px;border:2.5px solid var(--accent);border-radius:5px;display:grid;place-items:center;font-style:normal;flex:none}
.logo i::after{content:"";width:8px;height:8px;background:var(--accent);border-radius:1px}
.head-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
nav{display:flex;gap:20px;flex-wrap:wrap}
nav a{color:var(--muted);text-decoration:none;font-size:.95rem}
nav a:hover,nav a:focus-visible{color:var(--ink)}
.theme-toggle{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);cursor:pointer}
.theme-toggle:hover{border-color:var(--muted)}
.theme-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.theme-toggle .i-sun{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme-toggle .i-sun{display:block}
  :root:not([data-theme="light"]) .theme-toggle .i-moon{display:none}
}
:root[data-theme="dark"] .theme-toggle .i-sun{display:block}
:root[data-theme="dark"] .theme-toggle .i-moon{display:none}
header nav{margin-right:12px}
.lang-menu{position:relative}
.lang-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;font:500 .8rem/1 var(--f-mono);color:var(--ink);background:var(--surface)}
.lang-menu summary::-webkit-details-marker{display:none}
.lang-menu summary::after{content:"";width:6px;height:6px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-2px) rotate(45deg)}
.lang-menu[open] summary::after{transform:translateY(1px) rotate(-135deg)}
.lang-menu summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.lang-menu ul{position:absolute;right:0;top:calc(100% + 6px);z-index:10;list-style:none;margin:0;padding:6px;min-width:190px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px -12px rgba(10,20,40,.35)}
.lang-menu a{display:flex;gap:12px;align-items:center;padding:8px 10px;border-radius:6px;color:var(--ink);text-decoration:none;font-size:.95rem}
.lang-menu a span{font:500 .72rem/1 var(--f-mono);color:var(--muted);width:20px}
.lang-menu a:hover,.lang-menu a:focus-visible{background:var(--bg)}
.lang-menu a[aria-current="page"]{color:var(--accent);font-weight:600}

/* scripts without Bricolage glyphs: Cyrillic, Japanese, Chinese */
html:lang(uk){--f-display:var(--f-body)}
html:lang(ja){--f-body:"IBM Plex Sans","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP","Meiryo",system-ui,sans-serif;--f-display:var(--f-body)}
html:lang(zh){--f-body:"IBM Plex Sans","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;--f-display:var(--f-body)}
html:lang(ja) h1,html:lang(zh) h1,html:lang(ja) h2,html:lang(zh) h2{letter-spacing:0;line-height:1.3}
html:lang(ja) .label,html:lang(zh) .label{letter-spacing:.04em}

/* hero */
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding-block:40px 64px}
.hero>*{min-width:0}
.hero h1{font-size:clamp(2.2rem,5.2vw,3.8rem);font-weight:800;letter-spacing:-.03em}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero p{margin-top:18px;font-size:1.08rem;color:var(--muted);max-width:46ch}
.cta-row{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:8px;font:600 1rem var(--f-body);text-decoration:none;border:1.5px solid var(--accent);cursor:pointer}
.btn.primary{background:var(--accent);color:var(--accent-ink)}
.btn.ghost{background:transparent;color:var(--accent)}
.btn[disabled]{opacity:.6;cursor:wait}
.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

.term{background:var(--term-bg);color:var(--term-fg);border-radius:12px;font:14px/1.7 var(--f-mono);overflow:hidden;box-shadow:0 20px 40px -24px rgba(10,20,40,.45)}
.term-bar{display:flex;gap:7px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06)}
.term-bar span{width:11px;height:11px;border-radius:50%;background:#3a4452}
.term pre{margin:0;padding:16px 18px 20px;overflow-x:auto;white-space:pre}
.term .p{color:var(--term-hi)} .term .d{color:var(--term-dim)}
.cursor{display:inline-block;width:8px;height:1.1em;background:var(--term-fg);vertical-align:-3px;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.cursor{animation:none}}

/* machines */
.machines{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:32px}
.mac{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:18px;min-width:0}
.mac-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pill{font:600 .78rem/1 var(--f-body);padding:6px 10px;border-radius:999px;white-space:nowrap}
.pill.ok{color:var(--ok);background:var(--ok-bg)}
.pill.warn{color:var(--warn);background:var(--warn-bg)}
.pill.soon{color:var(--soon);background:var(--soon-bg)}
.mac .chip{font:500 .9rem var(--f-mono);color:var(--muted);margin-top:6px}
.specs{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:.95rem}
.specs dt{color:var(--muted)} .specs dd{margin:0;font-variant-numeric:tabular-nums}
.prices{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.prices div{padding:12px 8px;text-align:center;min-width:0}
.prices div+div{border-left:1px solid var(--line)}
.prices b{display:block;font:700 1.12rem var(--f-display);font-variant-numeric:tabular-nums}
.prices small{color:var(--muted);font-size:.8rem}
.mac .note{font-size:.88rem;color:var(--muted)}

/* waitlist: small boxed cards grouped by family */
.waitlist{margin-top:48px;display:flex;flex-direction:column;gap:28px}
.wl-title{font-size:1.4rem}
.fleet{display:flex;flex-direction:column;gap:12px}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mini{border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0;background:var(--surface)}
.mini-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.mini h4{margin:0;font:700 1.05rem/1.2 var(--f-display)}
.mini-top p{margin-top:4px;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}
.mini-prices{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.88rem;font-variant-numeric:tabular-nums;border-top:1px solid var(--line);padding-top:10px}
.mini-prices b{color:var(--ink);font-weight:600}
.mini .pill{font-size:.72rem;padding:5px 8px;white-space:normal;text-align:right}

/* access */
.bench-wrap{margin-top:28px;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.bench{width:100%;border-collapse:collapse;font-size:.92rem;min-width:640px}
.bench th,.bench td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
.bench thead th{font:500 .72rem/1.3 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:normal;vertical-align:bottom}
.bench tbody tr:last-child th,.bench tbody tr:last-child td{border-bottom:0}
.bench tbody th{font-weight:600}
.bench td{color:var(--muted);font-variant-numeric:tabular-nums}
.bench td.num{color:var(--ink)}
.bench td.num b{font-weight:600}
.bench-note{margin-top:14px;color:var(--muted);font-size:.85rem;max-width:72ch}
.access{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:32px}
.access>div{min-width:0}
.access h3{margin-bottom:8px}
.access p{color:var(--muted);font-size:.95rem}
.access code{display:block;margin-top:12px;font:13px var(--f-mono);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;overflow-x:auto;white-space:nowrap}

/* steps */
.steps{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:s}
.steps li{counter-increment:s;min-width:0}
.steps li::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);font:700 1rem var(--f-display);margin-bottom:12px}
.steps b{display:block;margin-bottom:4px}
.steps span{color:var(--muted);font-size:.93rem}

/* terms */
.terms{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 40px;margin-top:28px;padding:0;list-style:none}
.terms li{padding-left:22px;position:relative;color:var(--muted);min-width:0}
.terms li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:2px;background:var(--accent)}
.terms strong{color:var(--ink);font-weight:600}

/* form */
.form-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;margin-top:32px;align-items:start}
.form-grid>*{min-width:0}
form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field.full{grid-column:1/-1}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
label{font-weight:500;font-size:.92rem}
input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%}
textarea{min-height:96px;resize:vertical}
.err{color:var(--danger);font-size:.9rem;grid-column:1/-1}
.summary{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:14px}
.summary .total{font:800 2.2rem/1 var(--f-display);font-variant-numeric:tabular-nums}
.summary .break{color:var(--muted);font-size:.92rem;font-variant-numeric:tabular-nums}
.summary pre{margin:0;font:13px/1.55 var(--f-mono);background:var(--bg);border-radius:8px;padding:12px;white-space:pre-wrap;word-break:break-word}
.sent{color:var(--ok);background:var(--ok-bg);border-radius:8px;padding:12px;font-weight:500}
.contact{font:500 .95rem var(--f-mono);user-select:all;word-break:break-all}
footer{padding-block:32px;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot-col{display:flex;flex-direction:column;gap:4px;min-width:0}
footer a{color:var(--muted)}
footer a:hover,footer a:focus-visible{color:var(--ink)}
.privacy-note{font-size:.85rem;color:var(--muted);margin:0}
.privacy-note a{color:var(--muted)}

/* privacy policy page */
.lang-switch{font:500 .85rem var(--f-mono);color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:6px;padding:7px 10px}
.lang-switch:hover,.lang-switch:focus-visible{color:var(--ink)}
.policy{max-width:68ch;padding-block:32px 56px}
.policy h1{font-size:clamp(2rem,4.5vw,2.8rem);font-weight:800;letter-spacing:-.02em;margin:10px 0 24px}
.policy h2{font-size:1.35rem;margin:40px 0 12px}
.policy h3{font-size:1.05rem;margin:24px 0 8px}
.policy p,.policy li{color:var(--muted);margin:0 0 10px}
.policy strong{color:var(--ink);font-weight:600}
.policy ul{padding-left:20px;margin:0 0 10px}

@media (max-width:860px){
  .hero,.form-grid{grid-template-columns:1fr}
  .machines,.terms,.access{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .mini-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  form{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .mini-grid{grid-template-columns:1fr}
  nav{display:none}
}

/* link to the full terms under the rental rules */
.terms-link{margin-top:24px}
.terms-link a{font-weight:600;text-decoration:none}
.terms-link a:hover,.terms-link a:focus-visible{text-decoration:underline}

/* form result */
.send-error{color:var(--danger);font-size:.92rem;margin:0}
#contact-line{margin-top:6px}
#contact-line a{color:var(--accent);text-decoration:none}
#contact-line a:hover{text-decoration:underline}
form :disabled{opacity:.6;cursor:not-allowed}

/* blog */
.post{max-width:72ch}
.post p,.post li{color:var(--ink)}
.post .post-lead{font-size:1.15rem;color:var(--muted);margin-bottom:28px}
.post h2 a{color:inherit;text-decoration:none}
.post h2 a:hover{text-decoration:underline}
.post .bench-wrap{margin:20px 0 0}
.post .bench-note{color:var(--muted)}
.post-item{padding:24px 0;border-top:1px solid var(--line)}
.post-item h2{margin:8px 0 10px}
.post-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.post-nav{margin-top:40px}
.post pre{margin:12px 0 16px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow-x:auto}
.post pre code{font:14px/1.55 var(--f-mono);white-space:pre}
.post :not(pre)>code{font:.9em var(--f-mono);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:1px 5px}
.post ol,.post ul{padding-left:22px;margin:0 0 12px}
.post li{margin-bottom:6px}
.post h3{margin-top:28px}
.guide-link{margin-top:10px}
.guide-link a{font-size:.9rem}
