@import url("https://fonts.googleapis.com/css2?family=Inter+Tight:wght@300;400;500;600&family=Inter:wght@300;400;500;600&family=Cormorant+Garamond:wght@400;500;500i&family=JetBrains+Mono:wght@400;500&display=swap");:root{--paper:#F6F4EF;--paper-deep:#EFEBE2;--paper-edge:#E5E0D4;--ink:#1B1F1C;--ink-2:#3D423E;--ink-3:#6E726D;--ink-4:#A8AAA4;--moor:#4F6B4A;--moor-deep:#2F3F2C;--moor-mist:#DDE2D5;--slate:#2A3340;--gold:#A8895C;--serif:"Cormorant Garamond","Times New Roman",serif;--sans:"Inter",system-ui,sans-serif;--sans-tight:"Inter Tight","Inter",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--t-display:clamp(2.75rem,6vw + 1rem,5.5rem);--t-h1:clamp(2.25rem,4vw + 1rem,3.75rem);--t-h2:clamp(1.75rem,2.5vw + 1rem,2.5rem);--t-h3:clamp(1.25rem,1.5vw + 0.75rem,1.75rem);--t-h4:clamp(1.125rem,1vw + 0.75rem,1.375rem);--t-stat:clamp(2.75rem,5vw + 1rem,4.5rem);--t-quote:clamp(1.625rem,2.5vw + 1rem,2.5rem);--t-body-lg:1.125rem;--t-body:1rem;--t-body-sm:0.9375rem;--t-eyebrow:0.75rem;--t-label:0.75rem;--t-micro:0.6875rem;--container-w:1200px;--gutter:clamp(1.25rem,4vw,3rem);--section-y:clamp(4rem,8vw,7rem)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}html{scrollbar-gutter:stable}body{display:flex;flex-direction:column}body>main{flex:1 0 auto;display:flex;flex-direction:column;min-height:0}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}::selection{background:color-mix(in oklab,var(--moor) 30%,transparent)}.container{max-width:var(--container-w);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.site-footer>.container,.site-header>.container{max-width:none}section.band{padding-top:var(--section-y);padding-bottom:var(--section-y);background:var(--paper)}:root{--footer-h:80px}main>section.band:not(.portfolio-page),main>section.hero:not(.home-page){min-height:100dvh;display:flex;flex-direction:column;justify-content:center}main>section.band:not(.portfolio-page):last-of-type,main>section.hero:not(.home-page):last-of-type{min-height:calc(100dvh - var(--footer-h));position:relative}main>section.band:not(.portfolio-page):last-of-type:before,main>section.hero:not(.home-page):last-of-type:before{content:"";position:absolute;top:-4px;left:0;right:0;height:4px;background:inherit;pointer-events:none}main>section.band>.container,main>section.hero:not(.home-page)>.container{width:100%}section.band.dark{background:var(--ink);color:var(--paper)}section.band.moor{background:var(--moor-deep);color:var(--paper)}section.band.deep-paper{background:var(--paper-deep)}.rule-h{height:1px;background:var(--paper-edge);border:0;margin:0}.dark .rule-h,.moor .rule-h{background:rgba(255,255,255,.16)}.wordmark{display:inline-flex;align-items:center;gap:.6em;font-family:var(--serif);font-weight:400;color:var(--ink-2);letter-spacing:.02em;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wordmark .div{width:1px;background:var(--moor);align-self:stretch;margin:.05em 0}.wordmark.invert{color:var(--paper)}.wordmark.invert .div{background:var(--moor-mist)}.wordmark.sm{font-size:1.125rem}.wordmark.md{font-size:1.5rem}.wordmark.lg{font-size:2.5rem}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:90;background:transparent;border-bottom:0;transition:transform .28s cubic-bezier(.32,.72,0,1);will-change:transform}body.header-hidden .site-header{transform:translateY(-100%)}body.header-hidden:before{top:0}:root{--header-tone:0;--wordmark-tone:0}.site-header .wordmark{background:linear-gradient(to bottom,var(--split-top,var(--ink-2)) 0,var(--split-top,var(--ink-2)) var(--split-at,50%),var(--split-bot,var(--ink-2)) var(--split-at,50%),var(--split-bot,var(--ink-2)) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.18em;margin-bottom:-.18em}.site-header .wordmark .div{background:color-mix(in oklab,var(--ink-3) calc((1 - var(--wordmark-tone)) * 100%),var(--paper) calc(var(--wordmark-tone) * 100%));opacity:calc(.55 + var(--wordmark-tone) * .45)}.site-header .hamburger{color:color-mix(in oklab,var(--ink) calc((1 - var(--wordmark-tone)) * 100%),var(--paper) calc(var(--wordmark-tone) * 100%));transition:color .32s ease}.site-header .row{display:flex;align-items:center;justify-content:space-between;padding-top:1.125rem;padding-bottom:1.125rem;gap:2rem}.site-header .wordmark-btn{padding:0;color:inherit;font:inherit}.site-header .hamburger,.site-header .wordmark-btn{background:transparent;border:0;cursor:pointer;display:inline-flex}.site-header .hamburger{padding:.5rem;margin-right:-.5rem;align-items:center;justify-content:center}.hamburger-icon{position:relative;display:inline-block;width:28px;height:18px}.hamburger-icon span{position:absolute;left:0;right:0;height:2px;background:currentColor;transition:transform .72s cubic-bezier(.32,.72,0,1),opacity .48s ease,background-color .28s ease;border-radius:1px}.hamburger-icon span:first-child{top:0}.hamburger-icon span:nth-child(2){top:50%;transform:translateY(-50%)}.hamburger-icon span:nth-child(3){bottom:0}.hamburger-icon.arrow span:first-child{transform:translateY(3.5px) rotate(18deg)}.hamburger-icon.arrow span:nth-child(2){transform:translateY(-50%) translateX(-30px);opacity:0}.hamburger-icon.arrow span:nth-child(3){transform:translateY(-3.5px) rotate(-18deg)}.hamburger-icon.open span:first-child{top:50%;transform:translateY(-50%) rotate(45deg)}.hamburger-icon.open span:nth-child(2){opacity:0}.hamburger-icon.open span:nth-child(3){bottom:50%;transform:translateY(50%) rotate(-45deg)}.header-nav{display:flex;align-items:center;gap:2rem;margin-left:auto;margin-right:1.5rem;font-family:var(--mono);font-size:var(--t-eyebrow);letter-spacing:.18em;text-transform:uppercase}.header-nav button{border:0;border-bottom:1px solid transparent;padding:0 0 2px;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;background:linear-gradient(to bottom,var(--split-top,var(--ink-2)) 0,var(--split-top,var(--ink-2)) var(--split-at,50%),var(--split-bot,var(--ink-2)) var(--split-at,50%),var(--split-bot,var(--ink-2)) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0;transform:translateX(60px);pointer-events:none;transition:opacity .62s ease,transform .76s cubic-bezier(.22,.7,.18,1),border-color .2s ease}.header-nav.open button{opacity:1;transform:translateX(0);pointer-events:auto}.header-nav button:hover{border-bottom-color:color-mix(in oklab,var(--ink) calc((1 - var(--wordmark-tone)) * 100%),var(--paper) calc(var(--wordmark-tone) * 100%))}.header-nav button.active,.header-nav button.active:hover{background:var(--moor);-webkit-background-clip:text;background-clip:text;color:transparent;border-bottom-color:transparent;position:relative}.header-nav button.active:after{content:"";position:absolute;left:-6%;right:-6%;bottom:-7px;height:8px;background-repeat:no-repeat;background-size:100% 100%;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'><path d='M3,4.7 Q35,4.4 65,4.8 T98,4.5' stroke='%234F6B4A' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none' opacity='0.92'/></svg>");-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);animation:drawUnderline .72s cubic-bezier(.4,0,.2,1) .22s forwards}.header-nav button:first-child.active:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'><path d='M3,4.9 Q40,4.2 70,4.7 T98,4.5' stroke='%234F6B4A' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none' opacity='0.92'/></svg>")}.header-nav button:nth-child(2).active:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'><path d='M3,4.5 Q50,5.2 98,4.6' stroke='%234F6B4A' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none' opacity='0.92'/></svg>")}.header-nav button:nth-child(3).active:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'><path d='M3,4.8 Q30,4.7 60,4.6 Q80,4.4 98,4.3' stroke='%234F6B4A' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none' opacity='0.92'/></svg>")}.header-nav button:nth-child(4).active:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'><path d='M3,4.6 Q35,5.0 70,4.4 T98,4.7' stroke='%234F6B4A' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none' opacity='0.92'/></svg>")}@keyframes drawUnderline{to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}@media (prefers-reduced-motion:reduce){.header-nav button.active:after{animation:none;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}.header-nav.open button:nth-child(4){transition-delay:0s,0s,0s,0s}.header-nav.open button:nth-child(3){transition-delay:.14s,.14s,0s,0s}.header-nav.open button:nth-child(2){transition-delay:.28s,.28s,0s,0s}.header-nav.open button:first-child{transition-delay:.42s,.42s,0s,0s}.header-nav:not(.open) button:first-child{transition-delay:0s}.header-nav:not(.open) button:nth-child(2){transition-delay:.1s}.header-nav:not(.open) button:nth-child(3){transition-delay:.2s}.header-nav:not(.open) button:nth-child(4){transition-delay:.3s}body:has(.contact-page) .header-nav button.active,body:has(.contact-page) .header-nav button.active:hover,body:has(.home-page) .header-nav button.active,body:has(.home-page) .header-nav button.active:hover{background-image:linear-gradient(var(--paper),var(--paper));background-color:transparent;-webkit-background-clip:text;background-clip:text;color:transparent;border-bottom-color:transparent}body:has(.contact-page) .header-nav button:not(.active):hover,body:has(.home-page) .header-nav button:not(.active):hover{border-bottom-color:rgba(255,255,255,.55)}@media (max-width:720px){.header-nav{position:absolute;top:100%;right:0;left:0;background:var(--paper);border-top:1px solid var(--paper-edge);flex-direction:column;align-items:stretch;gap:0;margin:0;padding:0;pointer-events:none;max-height:0;overflow:hidden;transition:max-height .36s cubic-bezier(.32,.72,0,1)}.header-nav.open{max-height:80vh;pointer-events:auto}.header-nav button{transform:none;padding:1.1rem var(--gutter);border-bottom:1px solid var(--paper-edge);text-align:left;color:var(--ink-2);transition:opacity .32s ease,color .2s ease,background .2s ease}.header-nav.open button{transform:none}.header-nav button:hover{background:var(--paper-deep);border-bottom-color:var(--paper-edge)}.header-nav button.active,.header-nav button.active:hover{color:var(--moor);border-bottom-color:var(--paper-edge)}body:has(.contact-page) .header-nav button,body:has(.home-page) .header-nav button{color:var(--ink-2)}body:has(.contact-page) .header-nav button.active,body:has(.home-page) .header-nav button.active{color:var(--moor);border-bottom-color:var(--paper-edge)}.header-nav.open button:nth-child(n),.header-nav:not(.open) button:nth-child(n){transition-delay:0s}.site-header .row{padding-top:.85rem;padding-bottom:.85rem}}.site-footer{background:transparent;color:var(--ink-3);padding-top:1.5rem;padding-bottom:1.5rem;position:relative;z-index:80}body:has(main>section.band.deep-paper:last-of-type) .site-footer{background:var(--paper-deep)}html:has(main>section.band.deep-paper:last-of-type){background:var(--paper-deep)}body:has(main>section.band.dark:last-of-type) .site-footer,body:has(main>section.band.moor:last-of-type) .site-footer{background:var(--moor-deep)}body:has(main>section.band.dark:last-of-type) .site-footer .row,body:has(main>section.band.moor:last-of-type) .site-footer .row{color:var(--paper)}body:has(main>section.band.dark:last-of-type) .site-footer .row button:hover,body:has(main>section.band.moor:last-of-type) .site-footer .row button:hover{color:var(--paper)}.site-footer .row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem 2.5rem;font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase}.site-footer .row>*{background:linear-gradient(to bottom,var(--split-top,var(--ink-2)) 0,var(--split-top,var(--ink-2)) var(--split-at,50%),var(--split-bot,var(--ink-2)) var(--split-at,50%),var(--split-bot,var(--ink-2)) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}@media (max-width:720px){.site-footer{padding-top:1rem;padding-bottom:1rem}.site-footer .row{flex-direction:column;align-items:center;text-align:center;gap:.65rem;font-size:.6875rem;letter-spacing:.12em}}.site-footer .row a,.site-footer .row button{background:transparent;border:0;border-bottom:1px solid transparent;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;transition:border-color .2s ease,color .2s ease}.site-footer .row a:hover,.site-footer .row button:hover{border-bottom-color:var(--split-top,var(--ink-2))}.site-footer .row .mark{color:var(--ink-3)}.eyebrow{font-family:var(--mono);font-size:var(--t-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--moor);font-weight:500}.dark .eyebrow,.moor .eyebrow{color:var(--moor-mist)}h1.title,h2.title{font-family:var(--sans-tight);font-weight:300;font-size:var(--t-h1);line-height:1.04;letter-spacing:-.022em;margin:1.25rem 0 0;color:var(--ink);max-width:22ch}h1.title.lg{font-size:var(--t-display);letter-spacing:-.034em;line-height:.96;max-width:18ch}h1.title em,h2.title em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--moor)}.dark h1.title,.dark h2.title,.moor h1.title,.moor h2.title{color:var(--paper)}.dark h1.title em,.dark h2.title em,.moor h1.title em,.moor h2.title em{color:var(--moor-mist)}h3.sub{font-family:var(--sans-tight);font-weight:500;font-size:var(--t-h3);line-height:1.2;letter-spacing:-.012em;margin:0 0 .625rem;color:var(--ink)}h3.sub em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--moor)}p.body{font-family:var(--sans);font-size:var(--t-body-lg);line-height:1.6;color:var(--ink-2);max-width:62ch;margin:0 0 1rem}.dark p.body,.moor p.body{color:var(--moor-mist)}p.body em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--moor)}p.lede{font-family:var(--sans-tight);font-weight:300;font-size:var(--t-h3);line-height:1.4;color:var(--ink-2);max-width:36ch;margin:1.5rem 0 0}.dark p.lede,.moor p.lede{color:var(--moor-mist)}p.lede em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--moor)}.meta{font-family:var(--mono);font-size:var(--t-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.dark .meta,.moor .meta{color:var(--moor-mist);opacity:.7}.tapered-rule{width:200px;height:7px;background:var(--moor);-webkit-clip-path:polygon(0 50%,50% 0,100% 50%,50% 100%);clip-path:polygon(0 50%,50% 0,100% 50%,50% 100%);margin:0}.dark .tapered-rule,.moor .tapered-rule{background:var(--moor-mist)}.hero{background:var(--moor-deep);color:var(--paper);padding-top:clamp(5rem,10vw,8rem);padding-bottom:clamp(5rem,10vw,8rem);position:relative;overflow:hidden}.hero .container{position:relative;z-index:1}.hero .meta{color:var(--moor-mist);opacity:.85;display:block}.hero .meta,.hero.home-page h1{margin-bottom:2.25rem}.hero.home-page .meta{display:block;color:var(--paper);opacity:.85;margin:0}.hero.home-page .hero-signin{background:transparent;border:0;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;border-bottom:1px solid transparent;transition:opacity .2s ease,border-color .2s ease;opacity:1}.hero.home-page .hero-signin:focus-visible,.hero.home-page .hero-signin:hover{border-bottom-color:rgba(255,255,255,.55);outline:none}.hero.home-page .hero-wordmark{margin:0 0 2.25rem;display:inline-flex;align-items:center;line-height:1}.hero.home-page .hero-wordmark .wordmark{font-size:clamp(2rem,6vw,4.5rem);color:var(--paper)}.hero.home-page .hero-wordmark .wordmark .div{background:var(--paper);opacity:.55}.hero h1{font-family:var(--sans-tight);font-weight:300;font-size:var(--t-display);line-height:.96;letter-spacing:-.034em;color:var(--paper);margin:1.75rem 0 1.5rem;max-width:18ch}.hero h1 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--moor-mist)}.hero p.lede{color:var(--moor-mist);max-width:none;margin-top:1.5rem}.hero p.lede em{color:var(--paper)}.threeup{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:2rem;gap:2rem;margin-top:3rem}.threeup .item .num{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;color:var(--moor);margin-bottom:.75rem}.threeup .item h4{font-family:var(--sans-tight);font-weight:500;font-size:var(--t-h4);line-height:1.25;letter-spacing:-.012em;margin:0 0 .625rem;color:var(--ink)}.threeup .item p{margin:0;font-size:var(--t-body);line-height:1.55;color:var(--ink-2)}.dark .threeup .item h4{color:var(--paper)}.dark .threeup .item p,.moor .threeup .item p{color:var(--moor-mist)}.threeup.tiles{gap:1.25rem}.threeup.tiles .item{background:color-mix(in oklab,var(--moor) 4%,var(--paper));border:1px solid color-mix(in oklab,var(--moor) 14%,var(--paper-edge));border-radius:4px;padding:1.75rem 1.75rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.statrow{margin-top:3rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border-top:1px solid var(--paper-edge)}.statrow .item{padding:2rem 1.5rem 2rem 0;border-right:1px solid var(--paper-edge);display:flex;flex-direction:column;gap:.625rem}.statrow .item:last-child{border-right:0;padding-right:0}@media (max-width:720px){.statrow .item{border-right:0;border-bottom:1px solid var(--paper-edge);padding:1.5rem 0}.statrow .item:last-child{border-bottom:0}}.statrow .item .num{font-family:var(--sans-tight);font-weight:300;font-size:var(--t-stat);line-height:1;letter-spacing:-.04em;color:var(--ink)}.statrow .item .num em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--moor)}.statrow .item .label{font-family:var(--mono);font-size:var(--t-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.statrow .item .desc{font-size:var(--t-body-sm);line-height:1.5;color:var(--ink-2);margin-top:.25rem;max-width:32ch}.quote-block{margin:0;padding:0}.quote-block .mark{font-family:var(--serif);font-size:clamp(5rem,10vw,9rem);line-height:.4;color:var(--moor);display:block;margin-bottom:0}.quote-block .text{font-family:var(--sans-tight);font-weight:300;font-size:var(--t-quote);line-height:1.18;letter-spacing:-.018em;color:var(--ink);max-width:28ch;margin:0}.quote-block .text em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--moor)}.dark .quote-block .text,.moor .quote-block .text{color:var(--paper)}.dark .quote-block .mark,.dark .quote-block .text em,.moor .quote-block .mark,.moor .quote-block .text em{color:var(--moor-mist)}.quote-block .attr{margin-top:1.5rem;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.dark .quote-block .attr,.moor .quote-block .attr{color:var(--moor-mist);opacity:.75}.twocol{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:clamp(2rem,5vw,4rem);gap:clamp(2rem,5vw,4rem);margin-top:3rem}.twocol .col h3{font-family:var(--sans-tight);font-weight:500;font-size:var(--t-h3);line-height:1.2;letter-spacing:-.012em;margin:0 0 1rem;color:var(--ink)}.twocol .col p{font-size:var(--t-body);line-height:1.6;color:var(--ink-2);margin:0 0 1rem;max-width:56ch}.phases{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:0;gap:0;border-top:1px solid var(--paper-edge);border-bottom:1px solid var(--paper-edge);margin-top:2.5rem}.phases .ph{padding:1.5rem 1.5rem 1.75rem;border-right:1px solid var(--paper-edge);position:relative}.phases .ph:last-child{border-right:none}@media (max-width:720px){.phases .ph{border-right:0;border-bottom:1px solid var(--paper-edge)}.phases .ph:last-child{border-bottom:0}}.phases .ph .yr{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1rem;display:flex;justify-content:space-between}.phases .ph .yr .now{color:var(--moor)}.phases .ph .lbl{font-family:var(--sans-tight);font-weight:500;font-size:var(--t-h4);letter-spacing:-.012em;color:var(--ink);margin-bottom:.625rem}.phases .ph .desc{font-size:var(--t-body-sm);line-height:1.55;color:var(--ink-2)}.phases .ph:first-child{background:color-mix(in oklab,var(--ink) 3%,transparent)}.phases .ph:nth-child(2){background:color-mix(in oklab,var(--moor) 6%,transparent)}.phases .ph:nth-child(3){background:color-mix(in oklab,var(--ink) 7%,transparent)}.phases .ph.opt{background:color-mix(in oklab,var(--moor) 10%,transparent)}.phases .ph.opt .lbl{color:var(--moor)}body:has(.portfolio-page),html:has(.portfolio-page){height:100dvh;overflow:hidden}body:has(.portfolio-page)>main{flex:1 1 auto;min-height:0;display:flex}.portfolio-page{flex:1 1 auto;width:100%;display:flex;flex-direction:column;justify-content:center;min-height:0;padding-top:clamp(1rem,5vw,4rem);padding-bottom:clamp(1rem,5vw,4rem)}@media (max-width:720px){.portfolio-page .lede{font-size:var(--t-body)}.portfolio-page h1.title{font-size:clamp(1.75rem,7.5vw,2.5rem)}.pf-marquee{margin-top:clamp(1.5rem,4vw,2.5rem);padding-top:clamp(2rem,6vw,4rem);padding-bottom:clamp(1rem,3vw,2rem)}}.pf-marquee{margin-top:clamp(1rem,2.5vw,2rem);width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);overflow-x:hidden;overflow-y:visible;padding-top:clamp(4rem,8vw,7rem);padding-bottom:clamp(2rem,5vw,4rem);mask-image:linear-gradient(90deg,transparent 0,black 5%,black 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent 0,black 5%,black 95%,transparent)}.pf-tiles{display:flex;flex-wrap:nowrap;width:max-content;align-items:baseline;gap:clamp(2.5rem,8vw,12rem);animation:pfMarqueeIntro 22s linear 1s both,pfMarquee 56s linear 23s infinite}.pf-marquee:focus-within .pf-tiles,.pf-marquee:hover .pf-tiles{animation-play-state:paused}@keyframes pfMarqueeIntro{0%{transform:translateX(100vw)}to{transform:translateX(0)}}@keyframes pfMarquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.pf-tiles{animation:none}}.pf-tile{position:relative;background:transparent;border:0;text-align:center;cursor:pointer;font:inherit;color:inherit;text-decoration:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.75rem;transition:opacity .2s ease,transform .2s ease;view-transition-name:var(--vt-name,none);opacity:.85}.pf-tile:focus-visible,.pf-tile:hover{opacity:1;transform:translateY(-2px);outline:none}.page-fade{position:fixed;inset:0;z-index:70;pointer-events:none;overflow:hidden}.page-fade-panel{position:absolute;inset:0;background:var(--fade-bg,var(--paper));transform:translateY(-100%);transition:transform var(--fade-ms,.76s) cubic-bezier(.4,0,.2,1);will-change:transform}.page-fade.out .page-fade-panel{transform:translateY(0)}.page-fade.in .page-fade-panel{transform:translateY(100%)}.page-fade.cut .page-fade-panel{transform:translateY(0);transition:none}::view-transition-new(*),::view-transition-old(*){animation-duration:.42s;animation-timing-function:cubic-bezier(.32,.72,0,1)}.pf-tile__inner{padding:0;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;gap:.75rem}.pf-tile__hover{display:none}.pf-tile__logo{display:flex;align-items:flex-end;justify-content:center;flex:0 0 auto;height:0}.pf-tile__logo img{display:block;width:auto;object-fit:contain;mix-blend-mode:multiply}.pf-tile__logo[data-slug=ripple] img{height:clamp(40px,6.4vw,80px);transform:translateY(26%)}.pf-tile__logo[data-slug=ledger] img{height:clamp(38px,6vw,72px);transform:translateY(28%)}.pf-tile__logo[data-slug=blockfills] img{height:clamp(36px,5.8vw,72px);transform:translateY(15%)}.pf-tile__logo[data-slug=polysign] img{height:clamp(32px,5.1vw,64px);transform:translateY(30%)}.pf-detail-logo[data-slug=uphold] img,.pf-tile__logo[data-slug=uphold] img{height:clamp(48px,7.8vw,97px);transform:translateY(30%);max-width:none}.pf-tag{display:inline-block;padding:.15rem .5rem;background:var(--paper-deep);border:1px solid var(--paper-edge);border-radius:999px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--moor);line-height:1.6}.pf-overlay{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(15,18,15,.55);padding:clamp(1rem,4vw,3rem);animation:pfOverlayFadeIn .22s ease}@keyframes pfOverlayFadeIn{0%{opacity:0}to{opacity:1}}.pf-overlay-card{--brand-bg:var(--ink);--brand-accent:var(--moor);--brand-on-light:var(--brand-accent);--brand-fg:#ffffff;--brand-fg-soft:rgba(255,255,255,0.78);--brand-fg-faint:rgba(255,255,255,0.18);--brand-font:"Inter","Helvetica Neue",system-ui,sans-serif;position:relative;background:var(--brand-bg);color:var(--brand-fg);border:2px solid var(--brand-border,var(--brand-accent));border-radius:18px;overflow:hidden;overflow-y:auto;width:min(560px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(0,0,0,.55);view-transition-name:var(--vt-name,none);font-family:var(--brand-font)}.pf-overlay-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--brand-border,var(--brand-accent));pointer-events:none}.pf-overlay-card[data-slug=ledger]{--brand-bg:#0a0a0a;--brand-accent:#FF6900}.pf-overlay-card[data-slug=ripple]{--brand-bg:#008CFF;--brand-accent:#001C5C;--brand-border:#005BCC}.pf-overlay-card[data-slug=uphold]{--brand-bg:#84FB7F;--brand-accent:#090D14;--brand-fg:#090D14;--brand-fg-soft:rgba(9,13,20,0.78);--brand-fg-faint:rgba(9,13,20,0.22);--brand-on-light:#2DA94B}.pf-overlay-close{position:absolute;top:.75rem;right:1rem;z-index:2;width:36px;height:36px;border:0;background:transparent;font-family:var(--sans-tight);font-size:28px;line-height:1;color:color-mix(in oklab,var(--brand-fg) 55%,transparent);cursor:pointer;transition:color .16s ease}.pf-overlay-close:hover{color:var(--brand-fg)}.pf-overlay-hero{padding:2.75rem 2.5rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.pf-overlay-logo{display:inline-flex;align-items:center;height:56px}.pf-overlay-logo img,.pf-overlay-logo video{height:100%;width:auto;display:block;object-fit:contain}.pf-overlay-logo[data-slug=ripple] img{filter:brightness(0) invert(1)}.pf-overlay-logo[data-slug=uphold]{height:68px}.pf-overlay-card[data-slug=ripple] .pf-overlay-hero{position:relative;padding:1.75rem 2.5rem;min-height:320px;justify-content:flex-end}.pf-overlay-card[data-slug=ripple] .pf-overlay-logo{position:absolute;inset:0;height:100%;width:100%;z-index:0}.pf-overlay-card[data-slug=ripple] .pf-overlay-logo video{width:100%;height:100%;object-fit:cover}.pf-overlay-card[data-slug=ripple] .pf-overlay-tagline,.pf-overlay-card[data-slug=ripple] .pf-overlay-tags{position:relative;z-index:1;opacity:0;transform:translateY(8px);transition:opacity .7s ease-out,transform .7s cubic-bezier(.32,.72,0,1)}.pf-overlay-card[data-slug=ripple][data-video-done="1"] .pf-overlay-tagline{opacity:1;transform:translateY(0);transition-delay:0s}.pf-overlay-card[data-slug=ripple][data-video-done="1"] .pf-overlay-tags{opacity:1;transform:translateY(0);transition-delay:.18s}.pf-overlay-tagline{font-family:var(--sans-tight);font-style:normal;font-weight:500;font-size:clamp(1.375rem,1.6vw + .5rem,1.75rem);line-height:1.2;letter-spacing:-.01em;color:var(--brand-accent);margin:0;max-width:34ch}.pf-overlay-card[data-slug=ledger] .pf-overlay-tagline{font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(1.125rem,1vw + .5rem,1.375rem)}.pf-overlay-card[data-slug=ripple] .pf-overlay-tagline{font-weight:500;letter-spacing:-.005em}.pf-overlay-tags{display:flex;flex-wrap:wrap;gap:.4rem}.pf-overlay-card .pf-tag{background:transparent;border-color:color-mix(in oklab,var(--brand-accent) 55%,transparent);color:var(--brand-accent)}.pf-overlay-body{background:var(--paper);border-top:1px solid var(--paper-edge);padding:1.5rem 2.5rem 2.25rem;display:flex;flex-direction:column;gap:1.25rem}.pf-overlay-card .pf-overlay-eyebrow{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--brand-on-light);margin:0 0 .4rem;font-weight:500}.pf-overlay-text{margin:0;font-size:var(--t-body);line-height:1.6;color:var(--ink-2)}.pf-overlay-link{color:var(--brand-on-light);border-bottom:1px solid color-mix(in oklab,var(--brand-on-light) 50%,transparent);transition:border-color .16s ease}.pf-overlay-link:hover{border-bottom-color:var(--brand-on-light)}@media (max-width:540px){.pf-overlay-hero{padding:2rem 1.5rem 1.25rem}.pf-overlay-body{padding:1.25rem 1.5rem 1.75rem}}.pf-back{display:inline-block;margin-bottom:2rem;font-family:var(--mono);font-size:var(--t-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid transparent;padding-bottom:2px;transition:color .16s ease,border-color .16s ease}.pf-back:hover{color:var(--moor);border-bottom-color:var(--moor)}.pf-detail-header{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}.pf-detail-logo{height:72px;display:flex;align-items:center}.pf-detail-logo img{height:72px;width:auto;max-width:320px;object-fit:contain;mix-blend-mode:multiply}.pf-detail-name{font-family:var(--sans-tight);font-weight:500;font-size:var(--t-h1);line-height:1.04;letter-spacing:-.022em;color:var(--ink);margin:.25rem 0 0}.pf-detail-tagline{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.25rem,2vw + .75rem,1.75rem);line-height:1.3;color:var(--moor);margin:0;max-width:32ch}.pf-detail-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.pf-detail-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:3rem;gap:3rem;margin-top:0}.pf-detail-section{display:flex;flex-direction:column;gap:.75rem}.pf-detail-link{color:var(--moor);border-bottom:1px solid color-mix(in oklab,var(--moor) 40%,transparent);transition:border-color .16s ease}.pf-detail-link:hover{border-bottom-color:var(--moor)}.pf-detail-nav{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--paper-edge);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.pf-detail-nav-link{font-family:var(--mono);font-size:var(--t-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);transition:color .16s ease}.cta,.pf-detail-nav-link:hover{color:var(--moor)}.cta{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:var(--t-eyebrow);letter-spacing:.18em;text-transform:uppercase;background:transparent;padding:.875rem 1.25rem;border:1px solid;border-radius:2px;margin-top:2rem;cursor:pointer;transition:background .16s ease,color .16s ease}.dark .cta,.moor .cta{color:var(--moor-mist)}.cta:hover{background:var(--moor);color:var(--paper)}.dark .cta:hover,.moor .cta:hover{background:var(--moor-mist);color:var(--moor-deep)}body:has(.home-page),html:has(.home-page){height:100dvh;overflow:hidden;background:var(--moor-deep)}body:has(.home-page)>main{flex:1 1 auto;min-height:0;display:flex}body:has(.home-page) .site-header{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:0}body:has(.home-page) .site-footer .row a,body:has(.home-page) .site-footer .row button{border-bottom-color:transparent}body:has(.home-page) .site-footer .row a:hover,body:has(.home-page) .site-footer .row button:hover{border-bottom-color:var(--paper);opacity:1}body:has(.home-page) .site-footer{background:transparent;color:var(--moor-mist)}.hero.home-page{flex:1 1 auto;width:100%;display:flex;align-items:center;padding-top:0;padding-bottom:0;min-height:0}body:has(.contact-page),html:has(.contact-page){height:100dvh;overflow:hidden;background:var(--moor-deep)}body:has(.contact-page)>main{flex:1 1 auto;min-height:0;display:flex}.contact-page{flex:1 1 auto;width:100%;padding:clamp(1rem,3vw,2rem) var(--gutter);min-height:0}.contact-page,.contact-page .contact-hero-btn{display:flex;align-items:center;justify-content:center}.contact-page .contact-hero-btn{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:0;margin:0;width:min(1400px,94vw);height:100%;max-height:100%;overflow:hidden}.contact-page .contact-hero-btn img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:grayscale(1) contrast(1.02);transform-origin:center 58%;animation:contactZoom 60s cubic-bezier(.45,0,.55,1) infinite alternate;transition:filter .24s ease}.contact-page .contact-hero-btn:focus-visible img,.contact-page .contact-hero-btn:hover img{filter:grayscale(.85) contrast(1.05)}@keyframes contactZoom{0%{transform:scale(1)}to{transform:scale(1.22)}}@media (prefers-reduced-motion:reduce){.contact-page .contact-hero-btn img{animation:none}}body:has(.contact-page),body:has(.home-page),body:has(.signin-page){--header-tone:1;--wordmark-tone:1;--split-top:var(--paper);--split-bot:var(--paper);--split-at:50%}body:has(.contact-page) .site-header .wordmark .div,body:has(.home-page) .site-header .wordmark .div,body:has(.signin-page) .site-header .wordmark .div{background:var(--paper);opacity:.55}body:has(.signin-page),html:has(.signin-page){height:100dvh;overflow:hidden;background:#000}body:has(.signin-page)>main{flex:1 1 auto;min-height:0;display:flex}body:has(.signin-page) .site-footer,body:has(.signin-page) .site-header{opacity:0;pointer-events:none;transition:opacity 1s cubic-bezier(.32,.72,0,1)}body:has(.signin-page.chrome-on) .site-footer,body:has(.signin-page.chrome-on) .site-header{opacity:1;pointer-events:auto}.signin-page{flex:1 1 auto;width:100%;justify-content:center;padding:var(--gutter);color:var(--paper);min-height:0}.signin-error,.signin-page{display:flex;align-items:center}.signin-error{gap:clamp(1.25rem,2.5vw,2rem);font-family:var(--mono);position:relative;z-index:2}.code-rain{position:fixed;inset:0;z-index:1;pointer-events:none}.signin-code{font-family:var(--mono);font-size:clamp(1.5rem,2.6vw,2rem);font-weight:400;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--paper);line-height:1;display:inline-flex;align-items:center}.digit-slot{position:relative;display:inline-block;width:1ch;height:1em;overflow:hidden;line-height:1;vertical-align:baseline}.digit-strip{display:block;transition:transform .48s cubic-bezier(.4,0,.2,1);will-change:transform}.digit-cell{display:block;height:1em;line-height:1em;text-align:center}@media (prefers-reduced-motion:reduce){.digit-strip{transition:none}}.signin-divider{width:1px;height:clamp(1.5rem,2.4vw,2rem);background:var(--paper);opacity:.35;flex-shrink:0}.signin-msg{font-family:var(--mono);font-size:clamp(.9375rem,1.3vw,1.125rem);letter-spacing:.04em;color:var(--paper);min-width:20ch;text-align:left}.signin-msg,.text-slot{line-height:1;display:inline-block}.text-slot{position:relative;width:100%;height:1em;overflow:hidden;vertical-align:baseline}.text-roll{position:absolute;left:0;top:0;white-space:nowrap;line-height:1}.text-roll--out{animation:textRollOut .48s cubic-bezier(.4,0,.2,1) forwards;will-change:transform}.text-roll--in{animation:textRollIn .48s cubic-bezier(.4,0,.2,1);will-change:transform}@keyframes textRollOut{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes textRollIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.text-roll--in,.text-roll--out{animation:none}}.signin-msg--flicker{animation:signinFlicker .32s steps(1) infinite}@keyframes signinFlicker{0%{opacity:1;transform:translateX(0)}8%{opacity:.25;transform:translateX(-1px)}16%{opacity:1;transform:translateX(1px)}24%{opacity:.55;transform:translateX(0)}32%{opacity:1;transform:translateX(-2px)}46%{opacity:.18;transform:translateX(0)}58%{opacity:1;transform:translateX(1px)}72%{opacity:.4;transform:translateX(-1px)}86%{opacity:1;transform:translateX(0)}to{opacity:.7;transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.signin-msg--flicker{animation:none;opacity:.7}}.signin-msg--typed{white-space:nowrap}.signin-cursor{display:inline-block;width:.55ch;height:1em;margin-left:.15em;background:var(--paper);vertical-align:-.08em;animation:signinCursorBlink 1s steps(1) infinite}@keyframes signinCursorBlink{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.signin-cursor{animation:none;opacity:1}}body:has(.contact-page) .site-footer,body:has(.contact-page) .site-header{background:transparent;border:0}body:has(.contact-page) .site-footer .row{color:var(--paper)}body:has(.contact-page) .site-footer .row button:hover{color:var(--paper)}.disclaimer{font-size:var(--t-body-sm);line-height:1.55;color:var(--ink-3);max-width:70ch}.disclaimer p{margin:0 0 .75rem}.section-eyebrow-row{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}