:root{--stone-ratio:1.26352;--bg:#fbfbf1;--bg-elevated:#f3f3e8;--bg-stone:#f0f0e4;--ink:#1c1c1a;--ink-muted:#5c5c56;--ink-faint:#8a8a82;--accent:#3a3a36;--accent-strong:#1c1c1a;--accent-dim:#1c1c1a0f;--line:#1c1c1a1f;--vein:#e8e8dc;--stone:#161616;--danger-soft:#8a6b4a;--field-brass:#c4a056;--field-obsidian:#1c1b18;--field-terracotta:#b46848;--field-labradorite:#3e5358;--font-display:"Clash Grotesk", "Figtree", "Helvetica Neue", sans-serif;--font-body:"Source Serif 4", Georgia, "Times New Roman", serif;--font-ui:"Figtree", "Helvetica Neue", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Menlo, Consolas, monospace;--radius-pill:999px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--space-9:7rem;--radius:2px;--max:72rem;--measure:40rem;--shell-w:min(100vw - clamp(2rem, 13.2vw, 8.5rem), 90rem);--header-h:4.75rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--ink);background:var(--bg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.65}img{max-width:100%;display:block}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--ink)}:focus-visible{outline:2px solid var(--stone);outline-offset:3px}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 var(--space-4);font-weight:560;line-height:1.12}p{margin:0 0 var(--space-4)}p:last-child{margin-bottom:0}.skip-link{left:var(--space-4);z-index:100;padding:var(--space-2) var(--space-3);background:var(--stone);color:var(--bg);font-family:var(--font-ui);font-weight:600;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:var(--space-4)}.shell{width:var(--shell-w);margin-inline:auto}.site-header{z-index:40;background:var(--bg);border-bottom:none;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-5);padding:1.35rem 0 1.1rem;display:flex}.brand{color:var(--ink);align-items:center;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.brand__lockup{flex-shrink:0;width:auto;height:1.25rem;display:block}.nav{font-family:var(--font-ui);flex-wrap:wrap;align-items:center;gap:.15rem .2rem;font-size:.9rem;font-weight:560;display:flex}.nav__link{color:var(--ink);border-radius:var(--radius-pill);padding:.4rem .8rem;text-decoration:none;transition:background .16s,color .16s}.nav__link:after{display:none}.nav__link:hover{color:var(--ink);background:var(--accent-dim)}.nav__link--current,.nav__link[aria-current=page]{background:var(--stone);color:var(--bg)}.nav__link--current:hover,.nav__link[aria-current=page]:hover{color:var(--bg);background:#000}.site-footer{margin-top:var(--space-9);border-top:1px solid var(--line);padding:var(--space-7) 0 var(--space-8);font-family:var(--font-ui);color:var(--ink-muted);font-size:.92rem}.site-footer__inner{justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;display:flex}.site-footer a{margin-right:var(--space-4);text-decoration:none}.site-footer a:last-child{margin-right:0}.atmosphere{z-index:-1;pointer-events:none;background:var(--bg);position:fixed;inset:0}.atmosphere:after{content:none}.hero{--side-w:clamp(11rem, 20vw, 22.5rem);--quote-w:15.5rem;--hero-gutter:clamp(1.25rem, 2.5vw, 3rem);--stone-scale:1.15;--stone-h:max(12rem, calc(100svh - 18rem));min-height:calc(100svh - var(--header-h));gap:var(--space-6);padding:var(--space-5) 0 var(--space-7);flex-direction:column;display:flex;position:relative;overflow:visible}.hero__copy{z-index:2;max-width:22.5rem;animation:.7s 40ms both rise;position:relative}.hero__brand{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);white-space:nowrap;margin:0 0 .75rem;font-size:clamp(2.25rem,5.5vw,3.75rem);font-weight:600;line-height:.92}.hero__headline{font-family:var(--font-display);letter-spacing:-.025em;width:100%;max-width:none;color:var(--ink);margin:0 0 .85rem;font-size:clamp(1.05rem,1.85vw,1.35rem);font-weight:600;line-height:1.25}.hero__lede{max-width:21rem;color:var(--ink);font-family:var(--font-ui);margin-bottom:1.35rem;font-size:.92rem;font-weight:500;line-height:1.5}.cta-row{flex-wrap:wrap;align-items:center;gap:1.1rem;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-ui);border-radius:var(--radius-pill);border:1px solid #0000;padding:.72rem 1.2rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .18s,color .18s,border-color .18s,transform .18s;display:inline-flex}.btn:hover{color:inherit;transform:translateY(-1px)}.btn--primary{background:var(--stone);color:var(--bg)}.btn--primary:hover{color:var(--bg);background:#000}.btn--ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn--ghost:hover{border-color:var(--ink);background:var(--accent-dim)}.btn--text{color:var(--ink);background:0 0;border:none;border-radius:0;padding:.35rem 0;font-weight:560;text-decoration:none}.btn--text:hover{color:var(--ink);text-underline-offset:.18em;text-decoration:underline;transform:none}.hero__stage{z-index:1;width:min(100%, calc(var(--stone-h) * var(--stone-ratio) * var(--stone-scale)));aspect-ratio:var(--stone-ratio);user-select:none;order:-1;margin-inline:auto;animation:.7s 80ms both fade-in;position:relative}.hero__stage:focus-visible{outline:2px solid var(--stone);outline-offset:6px}.hero__canvas{z-index:1;touch-action:pan-y;inset:0;width:100%!important;height:100%!important;cursor:inherit!important;position:absolute!important}.hero__stage--dragging .hero__canvas{touch-action:none}.hero__hammer{z-index:80;pointer-events:none;user-select:none;display:none;position:fixed;top:0;left:0}.hero__hammer.is-shown{display:block}.hero__mark{z-index:3;pointer-events:none;width:clamp(5.1rem,10.455vw,12.58rem);height:auto;position:absolute;top:50%;left:50%;translate:-50% -50%}.hero__stone{z-index:1;object-fit:contain;object-position:center;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero__quote{font-family:var(--font-mono);color:var(--ink);background:0 0;border:none;max-width:16.5rem;margin:0;padding:0;font-size:.68rem;line-height:1.55;animation:.7s .16s both rise}.hero__quote p{margin:0}@media (width>=900px){.hero{--stone-fit-w:max(12rem, calc(var(--shell-w) - 2 * (var(--side-w) + var(--hero-gutter))));--stone-w:calc(min(var(--stone-fit-w), calc(var(--stone-h) * var(--stone-ratio))) * var(--stone-scale));column-gap:var(--hero-gutter);grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:0;display:grid}.hero__stage{width:var(--stone-w);height:calc(var(--stone-w) / var(--stone-ratio));aspect-ratio:auto;order:0;grid-area:2/2;align-self:center;margin:0}.hero__copy{max-width:var(--side-w);grid-area:2/1;align-self:start;margin:0}.hero__quote{text-align:right;max-width:var(--quote-w);grid-area:2/3;place-self:end;margin:0}}@media (width>=1200px){.hero__brand{font-size:3.75rem}.hero__headline{max-width:none;font-size:1.38rem}}.section{padding:var(--space-8) 0}.section--work{padding-top:var(--space-2)}.section__head{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.section__eyebrow{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 var(--space-2);font-size:.8rem;font-weight:600}.section__title{margin:0;font-size:clamp(1.75rem,3vw,2.35rem)}.section__link{font-family:var(--font-ui);color:var(--ink);border-bottom:1px solid var(--line);font-size:.95rem;font-weight:560;text-decoration:none}.section__link:hover{border-bottom-color:var(--ink)}.section__close{margin:var(--space-8) 0 0;padding-top:var(--space-6);border-top:1px solid var(--line);text-align:center}.case-grid{gap:var(--space-6) var(--space-5);display:grid}@media (width>=720px){.case-grid{grid-template-columns:repeat(3,1fr)}.case-grid--compact{grid-template-columns:repeat(2,1fr)}}.case-card{gap:var(--space-3);min-height:100%;color:inherit;flex-direction:column;padding:0;text-decoration:none;display:flex}.case-card__media{aspect-ratio:3/2;border:1px solid var(--line);border-radius:var(--radius);background:var(--cover-field,var(--bg-stone));padding:clamp(.75rem,5.5%,1.35rem);transition:border-color .2s;display:block;overflow:hidden}.case-card__media--mineral{border-color:color-mix(in srgb, var(--cover-field) 72%, var(--stone))}.case-card__media--video{padding:0;position:relative}.case-card__media--video .case-card__stage{position:absolute;inset:0}.case-card__stage{width:100%;height:100%;display:block;position:relative}.case-card__media img{object-fit:cover;object-position:var(--cover-pos,center);width:100%;height:100%;transform:scale(var(--cover-scale,1));transform-origin:var(--cover-pos,center);transition:transform .4s;display:block}.case-card__media--video img,.case-card__media--video video{object-fit:cover;object-position:center;width:100%;height:100%;display:block;transform:none}.case-card__media video{opacity:0;visibility:hidden;pointer-events:none;z-index:1;position:absolute;inset:0}.case-card.is-playing .case-card__media video.is-active{opacity:1;visibility:visible}.case-card:hover{color:var(--ink)}.case-card:hover .case-card__media{border-color:color-mix(in srgb, var(--stone) 28%, var(--line))}.case-card:hover .case-card__media--mineral{border-color:color-mix(in srgb, var(--cover-field) 55%, var(--stone))}.case-card:hover:not(:has(video)) .case-card__media img{transform:scale(calc(var(--cover-scale,1) * 1.03))}.case-card__title{margin:0;font-size:1.2rem;line-height:1.25}.case-card__tags{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);flex-wrap:wrap;gap:.35rem 0;margin:0;padding:0;font-size:.72rem;font-weight:600;list-style:none;display:flex}.case-card__tags li:not(:last-child):after{content:"|";color:var(--line);margin:0 .45em;font-weight:400}.tag-row{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tag-row li{font-family:var(--font-ui);color:var(--ink-muted);border:1px solid var(--line);padding:.2rem .5rem;font-size:.75rem;font-weight:560}.page-hero{padding:var(--space-8) 0 var(--space-6);animation:.6s both rise}.page-hero h1{max-width:14ch;font-size:clamp(2.4rem,6vw,4rem)}.page-hero p{max-width:var(--measure);color:var(--ink-muted);font-size:1.1rem}.prose{max-width:var(--measure)}.prose h2{margin-top:var(--space-7);font-size:1.45rem}.prose ul{color:var(--ink-muted);padding-left:1.15rem}.prose li{margin-bottom:var(--space-3)}.meta-bar{gap:var(--space-4) var(--space-6);font-family:var(--font-ui);color:var(--ink-muted);padding:var(--space-4) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:var(--space-6);flex-wrap:wrap;font-size:.88rem;display:flex}.meta-bar strong{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.2rem;font-size:.72rem;font-weight:560;display:block}.status-pill{font-family:var(--font-ui);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line);color:var(--danger-soft);padding:.25rem .5rem;font-size:.72rem;font-weight:650;display:inline-block}.status-pill--ready{color:var(--ink);border-color:var(--ink)}.fun-list{gap:var(--space-5);display:grid}@media (width>=720px){.fun-list{grid-template-columns:repeat(2,1fr)}}.fun-item{padding:var(--space-5) 0;border-top:1px solid var(--line)}.fun-item__kind{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--space-2);font-size:.75rem;font-weight:650}.fun-item h2{margin-bottom:var(--space-3);font-size:1.35rem}.fun-item p{color:var(--ink-muted);margin:0}.about-grid{gap:var(--space-7);display:grid}@media (width>=840px){.about-grid{grid-template-columns:1.4fr .8fr;align-items:start}}.contact-panel{padding:var(--space-5);border:1px solid var(--line);background:var(--accent-dim)}.contact-panel h2{font-size:1.2rem}.contact-panel a{font-family:var(--font-ui);margin-top:var(--space-2);font-weight:560;text-decoration:none;display:inline-block}.note{font-family:var(--font-ui);color:var(--ink-faint);font-size:.85rem}.built-with{margin-top:var(--space-6);padding:var(--space-4);border-left:2px solid var(--stone);background:var(--accent-dim);color:var(--ink-muted);font-family:var(--font-ui);font-size:.92rem}.built-with strong{color:var(--ink);font-weight:650}.quote{margin:var(--space-5) 0 0;padding:var(--space-4) var(--space-5);border-left:2px solid var(--stone);background:var(--bg-elevated)}.quote p{margin:0 0 var(--space-3);color:var(--ink-muted);font-size:1.02rem;font-style:italic}.quote footer{font-family:var(--font-ui);color:var(--ink-faint);font-size:.82rem;font-style:normal}.stone-pair{gap:var(--space-4);margin:var(--space-6) 0 0;grid-template-columns:1fr 1fr;max-width:28rem;display:grid}.stone-pair img{background:var(--bg-elevated);border-radius:var(--radius);width:100%;height:auto}.stone-pair figcaption{font-family:var(--font-ui);color:var(--ink-faint);grid-column:1/-1;font-size:.85rem}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.case-study{padding-bottom:var(--space-9);animation:.6s both rise}.case-study__header{width:min(var(--shell-w), 48rem);max-width:min(var(--shell-w), 48rem);padding:var(--space-8) 0 var(--space-5)}.case-study__header h1{max-width:14ch;margin-bottom:var(--space-4);font-size:clamp(2.4rem,6vw,4rem)}.case-study__claim{color:var(--ink-muted);margin-bottom:var(--space-4);font-size:1.12rem;line-height:1.55}.meta-bar--case{margin-top:var(--space-5);margin-bottom:0}.meta-bar--case>div{max-width:18rem}.case-study__body{max-width:min(var(--shell-w), 48rem);padding-top:var(--space-6)}.case-section{margin-bottom:var(--space-8)}.case-section>.case-parent{margin-top:var(--space-8);margin-bottom:var(--space-6);font-size:clamp(2rem,3.2vw,2.5rem)}.case-section:first-of-type>.case-parent{margin-top:0}.case-section h2,.case-section h3{margin-bottom:var(--space-4);font-size:clamp(1.45rem,2.4vw,1.75rem)}.case-section>p{color:var(--ink-muted)}.case-metrics{gap:var(--space-4);margin:var(--space-6) 0;padding:var(--space-5) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid}@media (width>=640px){.case-metrics{gap:var(--space-5);grid-template-columns:repeat(3,1fr)}}.case-metric__value{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);margin:0 0 var(--space-2);font-size:clamp(2rem,4vw,2.65rem);font-weight:600;line-height:1}.case-metric__label{font-family:var(--font-ui);color:var(--ink-muted);margin:0;font-size:.84rem;line-height:1.4}.case-table-wrap{margin:var(--space-5) 0;border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 55%, white);overflow-x:auto}.case-table{table-layout:fixed;border-collapse:collapse;width:100%;font-family:var(--font-ui);font-size:.9rem}.case-table th,.case-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);white-space:normal;padding:.85rem 1rem}.case-table th{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);background:var(--bg-elevated);font-size:.72rem;font-weight:650}.case-table td:first-child{color:var(--ink);font-weight:600}.case-table td:last-child{color:var(--ink-muted)}.case-table tr:last-child td{border-bottom:none}.case-callout{margin:var(--space-5) 0 0;padding:var(--space-4) var(--space-5);border-left:2px solid var(--stone);background:var(--bg-elevated);color:var(--ink-muted);font-size:1.02rem}.case-bullets{color:var(--ink-muted);margin:var(--space-4) 0 0;padding-left:1.15rem}.case-bullets li{margin-bottom:var(--space-3)}.case-figure{margin:0}.case-zoom{width:100%;color:inherit;cursor:zoom-in;text-align:inherit;background:0 0;border:0;margin:0;padding:0;display:block}.case-zoom:focus-visible{outline:2px solid var(--stone);outline-offset:3px}dialog.case-lightbox:modal{width:calc(100vw - 6.5rem);max-width:calc(100vw - 6.5rem);height:fit-content;max-height:none;box-shadow:none;background:0 0;border:0;margin:auto;padding:0;position:fixed;overflow:visible}.case-lightbox::backdrop{background:#000000db}.case-lightbox img{width:100%;height:auto;display:block;box-shadow:0 22px 50px #0000008c}.case-lightbox__close{color:#fff;font-family:var(--font-ui);cursor:pointer;background:0 0;border:0;padding:0;font-size:2rem;font-weight:400;line-height:1;position:fixed;top:1.15rem;right:1.35rem}.case-lightbox__close:focus-visible{outline:2px solid var(--stone);outline-offset:3px}.case-figure figcaption{font-family:var(--font-ui);color:var(--ink-faint);margin-top:var(--space-3);text-align:left;font-size:.84rem;line-height:1.45}.case-figure--hero{margin:var(--space-6) auto var(--space-7);width:var(--shell-w);max-width:var(--shell-w);padding:0}.case-figure--hero img{width:100%;height:auto;display:block}.case-figure--hero figcaption{width:min(var(--shell-w), 48rem);max-width:min(var(--shell-w), 48rem);margin-inline:auto;margin-top:var(--space-3);text-align:left}.case-figure--device{margin:0}.case-figure--device img{width:min(100%,17.5rem);height:auto;box-shadow:none;filter:drop-shadow(0 14px 28px #1c1c1a1f);border-radius:0;display:block}.case-figure--wide img{width:100%;height:auto;display:block}.case-figure--center{width:100%}.case-figure--center figcaption{text-align:left}.case-figure--center img{width:auto;max-width:100%;height:auto;margin-inline:auto;display:block}.case-figure-row{gap:var(--space-6);margin-top:var(--space-6);justify-items:start;display:grid}.case-figure-row--single{max-width:17.5rem}.case-figure-row--wide{justify-items:stretch;max-width:none}.case-figure-row--center{justify-items:center}.case-figure-row--center .case-figure--center{max-width:48rem}.case-figure-row--wide.case-figure-row--pair,.case-figure-row--wide.case-figure-row--trio{grid-template-columns:1fr;max-width:none}@media (width>=720px){.case-figure-row--pair{gap:var(--space-5);grid-template-columns:repeat(2,1fr);max-width:42rem}.case-figure-row--pair .case-figure--device img{width:100%}.case-figure-row--trio{gap:var(--space-4);grid-template-columns:repeat(3,1fr)}.case-figure-row--trio .case-figure--device img{width:100%}}.case-embed{margin:var(--space-6) 0 0}.case-embed__frame{aspect-ratio:442/896;border:1px solid var(--line);background:#e7ecef;width:min(100%,27.625rem);position:relative;overflow:hidden}.case-embed--lab{width:var(--shell-w);max-width:var(--shell-w);position:relative;left:50%;transform:translate(-50%)}.case-embed--lab .case-embed__frame{aspect-ratio:auto;width:100%;height:min(58rem,100vh - 7rem);min-height:36rem;overflow:hidden}.case-embed iframe{border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.case-embed figcaption{width:min(var(--shell-w), 48rem);max-width:min(var(--shell-w), 48rem);margin-inline:auto;margin-top:var(--space-3);text-align:left}.case-embed figcaption p{font-family:var(--font-ui);color:var(--ink-faint);margin:0 0 var(--space-2);font-size:.84rem;line-height:1.45}.case-embed__hint{color:var(--ink-muted)}.case-embed figcaption a{font-family:var(--font-ui);font-size:.84rem}.case-walk{margin:var(--space-6) auto var(--space-7);left:auto;transform:none}.case-walk__title{width:min(var(--shell-w), 48rem);margin:0 auto var(--space-4);font-size:clamp(1.45rem,2.4vw,1.75rem)}.case-walk .case-embed__frame{background:0 0;border:0}.case-version-mark{z-index:50;font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--bg);background:var(--ink);pointer-events:none;border-radius:999px;margin:0;padding:.3rem .65rem;font-size:.72rem;font-weight:650;position:fixed;bottom:1rem;left:1rem}.case-version-mark[hidden]{display:none}.case-sibling,.case-live{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--line);font-family:var(--font-ui);color:var(--ink-muted);font-size:.95rem}.case-live+.case-sibling{margin-top:var(--space-4);border-top:none;padding-top:0}.meta-bar--case a,.case-sibling a,.case-live a{color:var(--ink);border-bottom:1px solid var(--line);font-weight:600;text-decoration:none}.meta-bar--case a:hover,.case-sibling a:hover,.case-live a:hover{border-bottom-color:var(--ink)}.case-tags{margin-top:var(--space-6)}.case-back{margin-top:var(--space-7);font-family:var(--font-ui)}.case-back a{border-bottom:1px solid var(--line);text-decoration:none}.case-back a:hover{border-bottom-color:var(--ink)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__copy,.hero__quote,.page-hero,.case-study,.hero__stage{animation:none}.case-card:hover,.btn:hover{transform:none}.case-card:hover:not(:has(video)) .case-card__media img{transform:scale(var(--cover-scale,1))}}
