/* Digital business cards: /kane/ and /george/ (26 Oct 2026). Source file, not build output.
   Live tokens from style.css. Space Grotesk is ours and allowed here; the shipped DM face is named DM. */
@font-face{font-family:DM;src:url('/assets/dm-sans.woff2') format('woff2');font-weight:100 1000;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('/assets/space-grotesk.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}
:root{--bg:#101312;--fg:#f6f7f3;--mint:#bdf4d1;--glow:#5bd0b0;--muted:#a7afa9;--line:#ffffff20;--panel:#161a19;--panel-2:#1c2120;--on-mint:#0b1f14;--forest:#102319;
  --display:'Space Grotesk',DM,Arial,sans-serif;--sans:DM,Arial,sans-serif;--spring:cubic-bezier(.2,.9,.25,1.15);--ease:cubic-bezier(.2,.7,.2,1);color-scheme:dark}
*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100svh;background:var(--bg);color:var(--fg);font-family:var(--sans);font-synthesis:none;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
a:focus-visible,button:focus-visible{outline:2px solid var(--mint);outline-offset:4px;border-radius:12px}
img{display:block;max-width:100%}
.ic{width:22px;height:22px;flex:none}

/* atmosphere: one soft glow behind the portrait, the bars as a watermark */
.bc-glow{position:fixed;inset:-20vh -30vw auto;height:80vh;pointer-events:none;z-index:0;
  background:radial-gradient(40% 45% at 30% 30%,#5bd0b02e,transparent 70%),radial-gradient(30% 35% at 75% 10%,#bdf4d114,transparent 70%)}
.bc-watermark{display:none;position:fixed;right:-160px;bottom:-200px;width:620px;height:auto;opacity:.04;fill:var(--fg);pointer-events:none;z-index:0}
.bc-watermark .fl-full{fill:var(--mint)}
.bc-top,.bc,.bc-foot{position:relative;z-index:1;width:100%;max-width:468px;margin-inline:auto;padding-inline:16px}

/* the Fuller Bars logo, built by build.py's fl_logo (never hand-typed) */
.fl-logo{display:inline-flex;align-items:center;gap:.34em;line-height:1;font-size:20px;letter-spacing:-.02em}
.fl-logo .fl-bars{height:.72em;width:auto;flex:none;overflow:visible;fill:var(--fg);transition:transform .45s var(--spring);transform-origin:left center}
.fl-logo .fl-bars .fl-full{fill:var(--mint)}
.fl-logo .fl-wm{display:inline-flex;white-space:nowrap}
.fl-logo .fl-wm span{display:inline-block;color:var(--fg)}
.fl-logo .fl-wm .fl-ai{color:var(--mint)}
.fl-logo:hover .fl-bars{transform:scale(1.08)}

.bc-top{display:flex;align-items:center;justify-content:space-between;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:6px;height:72px}
.bc-icon-btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:#10131299;backdrop-filter:blur(10px);transition:border-color .2s,color .2s}
.bc-icon-btn:hover{border-color:var(--mint);color:var(--mint)}
.bc-icon-btn .ic{width:19px;height:19px}

/* identity */
.bc-id{padding-top:22px}
.bc-photo{width:116px;height:116px;border-radius:32px;overflow:hidden;position:relative;box-shadow:0 0 0 1px var(--line),0 24px 60px -18px #5bd0b066;margin-bottom:26px}
.bc-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;filter:saturate(.7) contrast(1.03)}
.bc-photo::after{content:"";position:absolute;right:0;top:0;bottom:0;width:7px;background:var(--mint)}
.bc-kicker{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--mint);margin:0 0 12px}
.bc-name{font-family:var(--display);font-weight:500;font-size:clamp(38px,12.4vw,62px);line-height:.95;letter-spacing:-.045em;margin:0 0 12px}
.bc-name span span{display:inline-block;animation:bc-fill .9s var(--ease) both;animation-delay:calc(var(--i) * 45ms + .1s)}
@keyframes bc-fill{from{font-weight:300;opacity:.25}to{font-weight:500;opacity:1}}
.bc-role{font-size:15px;color:var(--muted);margin:0 0 20px}
.bc-lede{font-size:17px;line-height:1.6;color:#dfe5e0;margin:0 0 20px}
.bc-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.bc-chips li{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:#cfd6d0;border:1px solid var(--line);border-radius:999px;padding:7px 13px 7px 11px}
.bc-chips li::before{content:"";width:4px;height:12px;border-radius:1px;background:var(--mint)}

/* actions */
.bc-actions{margin-top:30px;display:grid;gap:10px}
.bc-save{display:flex;align-items:center;gap:14px;background:var(--mint);color:var(--on-mint);border-radius:20px;padding:18px 20px;min-height:72px;transition:transform .25s var(--spring),box-shadow .25s;box-shadow:0 14px 40px -16px #bdf4d199}
.bc-save:hover{transform:translateY(-2px)}
.bc-save:active{transform:translateY(0) scale(.99)}
.bc-save .ic{width:26px;height:26px}
.bc-save strong{display:block;font-size:17px;font-weight:600;letter-spacing:-.01em}
.bc-save small{display:block;font-size:13px;opacity:.75;margin-top:2px}
.bc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bc-act{display:flex;flex-direction:column;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;min-height:112px;transition:border-color .2s,transform .25s var(--spring),background .2s}
.bc-act:hover{border-color:#bdf4d166;background:var(--panel-2);transform:translateY(-2px)}
.bc-act .ic{color:var(--mint)}
.bc-act strong{display:block;font-size:15px;font-weight:600}
.bc-act small{display:block;font-size:12px;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bc-act span{min-width:0}
.bc-qr-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;border:1px dashed #ffffff33;border-radius:16px;color:var(--muted);font-size:14px;transition:color .2s,border-color .2s}
.bc-qr-btn:hover{color:var(--mint);border-color:#bdf4d166}
.bc-qr-btn .ic{width:18px;height:18px}

/* sections */
.bc-block{margin-top:52px;border-top:1px solid var(--line);padding-top:22px}
.bc-h{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
.bc-hrow{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.bc-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}
.bc-link .ic{width:15px;height:15px;transition:transform .25s var(--spring)}
.bc-link:hover .ic{transform:translateX(3px)}
.bc-looks{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.bc-looks li{display:grid;grid-template-columns:14px 1fr auto;gap:14px;align-items:start;padding:12px 0}
.bc-looks li+li{border-top:1px solid #ffffff12}
.bc-tick{width:14px;height:18px;margin-top:3px;background:linear-gradient(90deg,var(--fg) 0 2px,transparent 2px 5px,var(--fg) 5px 8px,transparent 8px 9.5px,var(--mint) 9.5px);opacity:.9}
.bc-looks strong{font-size:16px;font-weight:600;letter-spacing:-.01em}
.bc-looks p{margin:4px 0 0;font-size:14px;line-height:1.55;color:var(--muted)}
.bc-more{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--muted);transition:color .2s,border-color .2s}
.bc-more:hover{color:var(--mint);border-color:var(--mint)}
.bc-more .ic{width:15px;height:15px}
.bc-before{margin:16px 0 0;font-size:13px;line-height:1.6;color:#7f8a83}
.bc-works{display:grid;grid-auto-flow:column;grid-auto-columns:78%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-16px;padding:2px 16px 8px;scrollbar-width:none}
.bc-works::-webkit-scrollbar{display:none}
.bc-work{scroll-snap-align:start;display:block}
.bc-work img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top;border-radius:14px;border:1px solid var(--line);background:var(--panel);transition:transform .4s var(--ease)}
.bc-work:hover img{transform:translateY(-3px)}
.bc-work span{display:block;padding-top:11px}
.bc-work strong{display:block;font-size:14px;font-weight:600}
.bc-work small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.bc-review{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:22px}
.bc-stars{display:flex;gap:3px;margin-bottom:14px}
.bc-stars svg{width:17px;height:17px;fill:#fbbc04}
.bc-review blockquote{margin:0;font-family:var(--display);font-size:19px;line-height:1.4;letter-spacing:-.015em;font-weight:400}
.bc-review figcaption{margin-top:16px;font-size:13px;color:var(--muted)}
.bc-review figcaption strong{color:var(--fg);font-weight:600}
.bc-review figcaption a{text-decoration:underline;text-underline-offset:3px}

/* the company, on mint */
.bc-company{margin-top:52px;background:var(--mint);color:var(--forest);border-radius:24px;padding:26px 22px 22px;position:relative;overflow:hidden}
.bc-company .bc-kicker{color:var(--forest);opacity:.75}
.bc-company h2{font-family:var(--display);font-weight:500;font-size:31px;line-height:1.05;letter-spacing:-.035em;margin:0 0 12px}
.bc-company h2 span{display:block}
.bc-company>p:not(.bc-kicker){font-size:15px;line-height:1.55;margin:0 0 20px;max-width:34ch}
.bc-co-links{display:flex;flex-wrap:wrap;gap:8px}
.bc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 18px;border-radius:999px;background:var(--forest);color:var(--mint);font-size:14px;font-weight:600;transition:transform .25s var(--spring)}
.bc-btn:hover{transform:translateY(-2px)}
.bc-btn--ghost{background:transparent;color:var(--forest);box-shadow:inset 0 0 0 1px #10231955}
.bc-btn--icon{width:46px;padding:0}
.bc-btn--icon .ic{width:19px;height:19px}

.bc-other{display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:20px;transition:border-color .2s}
.bc-other:hover{border-color:#bdf4d166}
.bc-other img{width:46px;height:46px;border-radius:14px;object-fit:cover;filter:saturate(.7)}
.bc-other span{flex:1;min-width:0}
.bc-other small{display:block;font-size:11.5px;color:var(--muted)}
.bc-other strong{display:block;font-size:16px;font-weight:600;margin:1px 0}
.bc-other .ic{width:18px;height:18px;color:var(--muted);transition:transform .25s var(--spring),color .2s}
.bc-other:hover .ic{transform:translateX(3px);color:var(--mint)}

.bc-foot{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between;font-size:11px;color:#7f8a83;padding-top:36px;padding-bottom:calc(32px + env(safe-area-inset-bottom))}
.bc-foot a{text-decoration:underline;text-underline-offset:3px}

/* QR: a paper tile so any camera reads it; the page supplies the quiet zone */
.bc-qr-paper{background:#f6f7f3;border-radius:18px;padding:18px}
.bc-qr-paper img{width:100%;height:auto;image-rendering:pixelated}
.bc-qr-side{display:none}
.bc-qr-dialog{border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:28px;padding:24px;width:min(340px,92vw);text-align:center}
.bc-qr-dialog::backdrop{background:#000c;backdrop-filter:blur(6px)}
.bc-qr-dialog p{font-size:15px;color:var(--muted);margin:18px 0}
.bc-qr-dialog .bc-btn{width:100%;background:var(--mint);color:var(--on-mint)}
.bc-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;background:var(--fg);color:var(--bg);font-size:14px;font-weight:600;padding:12px 18px;border-radius:999px;pointer-events:none;transition:opacity .25s,transform .35s var(--spring);z-index:10}
.bc-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* reveal on scroll (set by cards.js; nothing hides without JS) */
.js .bc-reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .bc-reveal.is-in{opacity:1;transform:none}

/* desktop: the card stays phone-width; the QR sits beside it for "open on your phone" */
@media (min-width:1040px){
  .bc-top{max-width:none;width:auto;position:fixed;left:32px;right:32px;top:0;padding-inline:0}
  .bc{padding-top:64px}
  .bc-qr-side{display:block;position:fixed;top:50%;left:calc(50% + 234px + 64px);transform:translateY(-50%);width:210px;z-index:1}
  .bc-qr-side p{font-size:13px;line-height:1.55;color:var(--muted);margin:16px 0 0}
  .bc-qr-side p strong{color:var(--fg);font-weight:600;display:block;margin-bottom:2px}
  .bc-qr-btn{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .bc-reveal{opacity:1;transform:none}
}
