:root{
  --green:#46A584;
  --green-ink:#23805F;
  --forest:#0C2B22;
  --forest-2:#11372C;
  --forest-line:rgba(232,240,236,.12);
  --slate:#738592;
  --paper:#F3F6F4;
  --paper-2:#E9EFEB;
  --surface:#FBFCFB;
  --ink:#0E1F19;
  --ink-2:#4B5C56;
  --line:rgba(12,43,34,.10);
  --warn:#B25A1E;
  --on-dark:#EDF3F0;
  --on-dark-2:#A3B7AE;
  --r-xl:28px; --r-lg:20px; --r-md:14px; --r-sm:10px;
  --sans:"proxima-nova","Proxima Nova", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --spring:cubic-bezier(.32,.72,0,1);
  --out:cubic-bezier(.16,1,.3,1);
  --maxw:1200px;
}

.btn{--bg:var(--green);--fg:var(--forest);--ib:#1E6A51;display:inline-flex;align-items:center;gap:14px;padding:7px 7px 7px 24px;border-radius:999px;background:var(--bg);color:var(--fg);font:500 .97rem/1 var(--sans);text-decoration:none;border:0;cursor:pointer;white-space:nowrap;transition:transform .5s var(--spring),background .3s var(--out),box-shadow .5s var(--spring)}
.btn .ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--ib);transition:transform .5s var(--spring)}
.btn .ic{color:#FFFFFF}
.btn .ic svg{display:block;margin-left:2px;transition:transform .5s var(--spring)}
.btn:hover .ic svg{transform:translateX(2px)}
.btn .ic-call svg{margin-left:0}
.btn:hover .ic-call svg{transform:rotate(-10deg)}

.btn:hover{box-shadow:0 10px 30px -12px rgba(12,43,34,.45)}
.btn:hover .ic{transform:scale(1.06)}
.btn:active{transform:scale(.98)}
.btn-primary:hover{--bg:#58B794}
.btn-quiet{--bg:transparent;--fg:var(--on-dark);--ib:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(237,243,240,.22)}
.btn-quiet:hover{box-shadow:inset 0 0 0 1px rgba(237,243,240,.5)}
.btn-ink{--bg:var(--forest);--fg:var(--on-dark);--ib:rgba(255,255,255,.1)}
.btn-ink:hover{--bg:#15402F}
.btn-block{width:100%;justify-content:space-between}
.btn-submit{justify-self:end;align-self:end;margin-left:auto;display:flex;width:auto;padding:5px 5px 5px 20px;font-size:.92rem;gap:12px}
.btn-submit .ic{width:34px;height:34px}


/* Nav: floating island */
.nav{position:fixed;top:36px;left:50%;transform:translateX(-50%);z-index:40;width:min(calc(100% - 64px),calc(var(--maxw) - 64px));display:flex;align-items:center;gap:8px;padding:6px 6px 6px 20px;border-radius:999px;background:rgba(12,43,34,.78);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 12px 40px -18px rgba(12,43,34,.6)}
.brand{display:flex;align-items:center;gap:10px;color:var(--on-dark);text-decoration:none;font-weight:500;letter-spacing:-.01em;margin-right:auto}
.logo-word{display:block;height:15px;width:161px;color:#FFFFFF}
.logo-icon{display:block;width:22px;height:24px;color:var(--green)}
.brand{min-height:44px;gap:12px}
.links{display:flex;gap:2px}
.links a{color:var(--on-dark-2);text-decoration:none;font-size:.88rem;padding:9px 14px;border-radius:999px;transition:color .3s var(--out),background .3s var(--out)}
.links a:hover,.links a.on{color:var(--on-dark);background:rgba(255,255,255,.07)}
.nav .btn{padding:5px 5px 5px 18px;font-size:.88rem}
.nav .btn .ic{width:32px;height:32px}
.nav{transition:width .7s var(--spring),top .7s var(--spring),padding .7s var(--spring),gap .7s var(--spring),background .5s var(--out)}
.logo-word{max-width:161px;transition:max-width .7s var(--spring),opacity .4s var(--out),margin .7s var(--spring)}
.brand{transition:gap .7s var(--spring)}
.nav .btn{gap:14px;transition:padding .7s var(--spring),gap .7s var(--spring),transform .5s var(--spring),background .3s var(--out)}
.nav .btn-tx{display:inline-block;max-width:9.5em;overflow:hidden;opacity:1;transition:max-width .7s var(--spring),opacity .35s var(--out) .15s}
.nav.is-compact{top:16px;width:min(calc(100% - 64px),580px);padding-left:16px;background:rgba(12,43,34,.86)}
.nav.is-compact .brand{gap:0}
.nav.is-compact .logo-word{max-width:0;opacity:0}
.nav.is-compact .btn{padding:5px;gap:0}
.nav.is-compact .btn-tx{max-width:0;opacity:0;transition:max-width .7s var(--spring),opacity .2s var(--out)}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.08);cursor:pointer;position:relative}
.burger span{position:absolute;left:14px;right:14px;height:1.5px;background:var(--on-dark);border-radius:2px;transition:transform .5s var(--spring),top .5s var(--spring)}
.burger span:nth-child(1){top:18px}.burger span:nth-child(2){top:25px}
.burger[aria-expanded="true"] span:nth-child(1){top:21.5px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){top:21.5px;transform:rotate(-45deg)}
.sheet{position:fixed;inset:0;z-index:35;background:rgba(12,43,34,.94);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:110px 28px 40px;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .5s var(--spring),visibility .5s}
.sheet.open{opacity:1;visibility:visible}
.sheet a.sl{color:var(--on-dark);text-decoration:none;font-size:2rem;font-weight:500;letter-spacing:-.03em;padding:10px 0;transform:translateY(24px);opacity:0;transition:transform .7s var(--spring),opacity .7s var(--spring)}
.sheet.open a.sl{transform:none;opacity:1}
.sheet.open a.sl:nth-child(2){transition-delay:.05s}.sheet.open a.sl:nth-child(3){transition-delay:.1s}.sheet.open a.sl:nth-child(4){transition-delay:.15s}.sheet.open a.sl:nth-child(5){transition-delay:.2s}
.sheet .btn{margin-top:auto;justify-content:space-between}
@media (max-width:920px){.links,.nav>.btn{display:none}.burger{display:block;flex:none}.nav{width:calc(100% - 32px);top:20px}.nav.is-compact{width:max(112px,calc(40% - 16px));top:12px}}


.nav,.sheet{font-family:var(--sans);letter-spacing:0}.nav *,.sheet *{box-sizing:border-box;letter-spacing:0}.burger{padding:0}.nav .brand{flex-shrink:0}.nav .btn{white-space:nowrap}.nav .btn-tx{white-space:nowrap}.sheet{overflow-y:auto}.sheet .sl{flex-shrink:0}body>main#main{padding-top:132px}.reading-progress{position:fixed;top:0;bottom:auto;z-index:41}
@media(max-width:920px){body>main#main{padding-top:112px}}
.nav .links{flex-shrink:0}.nav .links a{flex-shrink:0;white-space:nowrap;line-height:1.5;transition:color .3s var(--out),background .3s var(--out),font-size .7s var(--spring),padding .7s var(--spring)}.nav .btn{flex-shrink:0}
@media(min-width:921px){.nav.is-compact .links a{font-size:12px;padding:9px 9px}}
@media(min-width:921px) and (max-width:1100px){.nav .links a{font-size:12px;padding:9px 8px}.nav .btn-tx{max-width:0;opacity:0}.nav .btn{padding:5px;gap:0}}
@media(prefers-reduced-motion:reduce){.nav,.nav *,.sheet,.sheet *{transition:none}}
