.chapter-rail{display:none}@media (width>=961px) and (height>=650px) and (pointer:fine){.chapter-rail{z-index:30;visibility:hidden;color:var(--ink);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) ease, transform var(--duration-fast) var(--ease), visibility 0s linear var(--duration-fast);display:block;position:fixed;top:50%;right:clamp(.7rem,1.5vw,1.5rem);transform:translate(1.35rem,-50%)}.chapter-rail.is-visible{visibility:visible;opacity:1;pointer-events:auto;transition:opacity var(--duration-base) ease, transform var(--duration-base) var(--ease), visibility 0s;transform:translateY(-50%)}.chapter-rail ol{justify-items:end;gap:.12rem;margin:0;padding:0;list-style:none;display:grid}.chapter-rail li{opacity:0;transition:opacity var(--duration-fast) ease, transform var(--duration-fast) var(--ease);transform:translate(.75rem)}.chapter-rail.is-visible li{opacity:1;transition-duration:var(--duration-base), var(--duration-base);transition-delay:calc(var(--rail-order) * 35ms);transform:none}.chapter-rail li:first-child{--rail-order:0}.chapter-rail li:nth-child(2){--rail-order:1}.chapter-rail li:nth-child(3){--rail-order:2}.chapter-rail li:nth-child(4){--rail-order:3}.chapter-rail li:nth-child(5){--rail-order:4}.chapter-rail li:nth-child(6){--rail-order:5}.chapter-rail a{justify-content:flex-end;align-items:center;gap:.65rem;min-width:2.75rem;min-height:2.75rem;padding:0 .45rem;text-decoration:none;display:flex}.chapter-rail a svg{stroke-width:1.8px;flex:none;width:1.35rem;height:1.35rem}.chapter-rail a span{max-width:0;font-size:var(--type-caption);font-weight:var(--weight-medium);white-space:nowrap;opacity:0;transition:opacity var(--duration-fast), transform var(--duration-base) var(--ease);order:-1;line-height:1;overflow:hidden;transform:translate(.4rem)}.chapter-rail a:is(:hover,:focus-visible,[aria-current=true]) span{opacity:1;max-width:8.5rem;transform:none}.chapter-rail a[aria-current=true]{font-weight:var(--weight-bold)}}.home-header{z-index:40;width:100%;padding-block:clamp(1.15rem,2.2vw,1.85rem);padding-inline:max(var(--gutter), calc((100% - var(--content)) / 2));transition:background-color var(--duration-base) var(--ease), border-color var(--duration-base) var(--ease);background:0 0;border-bottom:1px solid #0000;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:fixed;top:0;left:0}.home-header .wordmark{z-index:1;transform-origin:50%;grid-column:1;justify-self:start;position:relative}.home-header nav{font-size:var(--type-ui);font-weight:var(--weight-medium);transition:opacity var(--duration-fast) var(--ease), visibility var(--duration-fast);grid-column:3;justify-self:end;align-items:center;gap:.15rem;display:flex}.home-header.is-chaptered{border-bottom-color:var(--soft);background:var(--white)}.home-header.is-chaptered .wordmark{grid-column:2}.home-header.is-chaptered nav{opacity:0;visibility:hidden;pointer-events:none;position:absolute}.home-header .nav-icon{place-items:center;width:2.75rem;min-height:2.75rem;display:grid;position:relative}.home-header .nav-icon svg{stroke-width:1.8px;width:1.35rem;height:1.35rem}.home-header .nav-icon span{width:max-content;font-size:var(--type-caption);opacity:0;pointer-events:none;transition:opacity var(--duration-fast), transform var(--duration-fast) var(--ease);position:absolute;top:calc(100% + .1rem);left:50%;transform:translate(-50%,-.2rem)}.home-header .nav-icon:is(:hover,:focus-visible) span{opacity:1;transform:translate(-50%)}.home-header .nav-actions{align-items:center;gap:.3rem;margin-left:.15rem;display:flex}.home-header nav a{text-decoration:none}.menu-toggle{background:var(--ink);min-width:44px;min-height:44px;color:var(--white);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:.65rem;padding:.35rem .55rem .35rem .9rem;display:none}.menu-label{font-size:var(--type-caption);font-weight:var(--weight-semibold)}.menu-symbol{background:#ffffff24;border-radius:50%;place-items:center;width:2rem;height:2rem;display:grid;position:relative}.menu-symbol i{width:.82rem;height:1px;transition:transform var(--duration-base) var(--ease);background:currentColor;display:block;position:absolute}.menu-symbol i:first-child{transform:translateY(-.17rem)}.menu-symbol i:last-child{transform:translateY(.17rem)}.menu-toggle[aria-expanded=true] .menu-symbol i:first-child{transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-symbol i:last-child{transform:rotate(-45deg)}@media (width<=960px){.home-header{width:min(calc(100% - 2rem), calc(var(--content) + var(--gutter) * 2));border:1px solid var(--rule-strong);backdrop-filter:blur(18px);background:#fafaf8e6;border-radius:999px;justify-content:space-between;padding:.72rem clamp(1rem,1.8vw,2rem);display:flex;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 .75rem 2.5rem #20201b0d}.home-header .wordmark{grid-column:auto}.home-header nav{display:none}.menu-toggle{display:inline-flex}}@media (width<=640px){.home-header{width:calc(100% - 1rem);padding:.42rem .42rem .42rem .9rem;top:.5rem}}.mobile-nav{z-index:35;overscroll-behavior:contain;padding:7rem var(--gutter) max(3rem, env(safe-area-inset-bottom));background:var(--paper);position:fixed;inset:0;overflow-y:auto}.mobile-nav a{width:fit-content;font-family:var(--font-heading);font-size:clamp(2.4rem,10vw,4rem);font-weight:var(--weight-medium);letter-spacing:-.04em;opacity:0;animation:menu-link-in var(--duration-slow) var(--ease) forwards;padding:.5rem 0;line-height:1;text-decoration:none;display:block;transform:translateY(2.2rem)}.mobile-nav a:nth-child(2){animation-delay:50ms}.mobile-nav a:nth-child(3){animation-delay:.1s}.mobile-nav a:nth-child(4){animation-delay:.15s}.mobile-nav a:nth-child(5){animation-delay:.2s}.mobile-nav a:nth-child(6){animation-delay:.25s}@keyframes menu-link-in{to{opacity:1;transform:none}}.icon-button.icon-button{min-height:0;color:var(--ink);cursor:pointer;transition:background-color var(--duration-fast) ease-out, color var(--duration-fast) ease-out;background:0 0;border:0;border-radius:0;flex:none;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.icon-button.icon-button--md{width:44px;height:44px}.icon-button.icon-button--lg{width:3rem;height:3rem}.icon-button svg{stroke-width:1.75px;width:20px;height:20px}.icon-button[hidden]{display:none}.icon-button.icon-button--ghost:is(:hover,[aria-pressed=true]){background:var(--soft)}.icon-button.icon-button--subtle{border:1px solid var(--soft)}.icon-button.icon-button--subtle:hover{background:var(--soft)}.icon-button.icon-button--outline{border:1px solid var(--ink);background:var(--paper)}.icon-button.icon-button--outline:is(:hover,:focus-visible){background:var(--ink);color:var(--white)}.icon-button.icon-button--outline svg{stroke-width:1.6px;width:1.2rem;height:1.2rem}.icon-button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.project-dialog,.page-lightbox{background:var(--paper);width:100vw;max-width:none;height:100svh;max-height:none;color:var(--ink);border:0;margin:0;padding:0}.project-dialog[open]{animation:dialog-in var(--duration-base) var(--ease);grid-template-rows:auto minmax(0,1fr);display:grid}.project-dialog::backdrop,.page-lightbox::backdrop{background:var(--scrim)}.project-view-header,.page-lightbox-toolbar{border-bottom:1px solid var(--soft);background:var(--paper);justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem 2rem;display:flex}.project-view-header h2,.page-lightbox-toolbar h2{font-size:clamp(1.25rem,2vw,2rem);line-height:1.1;font-weight:var(--weight-medium);letter-spacing:-.025em;margin:0}.project-view-actions,.preview-actions,.page-lightbox-actions{align-items:center;gap:.25rem;display:flex}.project-dialog button,.page-lightbox button{min-height:44px;color:var(--ink);cursor:pointer;font:inherit;background:0 0;border:0;padding:.5rem}.project-view-actions button,.preview-actions button,.page-lightbox-actions button{font-size:var(--type-ui);white-space:nowrap}.project-dialog button:focus-visible,.page-lightbox button:focus-visible,.screenshot-canvas:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.viewer-zoom .zoom-out-icon,.viewer-zoom[aria-pressed=true] .zoom-in-icon{display:none}.viewer-zoom[aria-pressed=true] .zoom-out-icon{display:block}.dialog-shell{grid-template-columns:minmax(0,1fr) minmax(16rem,23rem);min-height:0;display:grid}.dialog-sidebar{border-left:1px solid var(--soft);font-size:var(--type-ui);padding:2rem;line-height:1.55;overflow:auto}.dialog-sidebar p,.project-notes dd,.dialog-supporting-links a{font-size:var(--type-ui);line-height:1.55}.dialog-sidebar .dialog-count{font-size:var(--type-caption);margin:0 0 1rem}.dialog-sidebar .dialog-credit{color:var(--ink);font-size:var(--type-ui);font-weight:var(--weight-bold);margin:.75rem 0}.dialog-sidebar .dialog-project-status,.dialog-mobile-summary span{font-family:var(--font-heading);font-size:1.15rem;font-weight:var(--weight-bold);line-height:1.25}.project-notes{border-top:1px solid var(--soft);margin-top:1.25rem}.project-notes dt{font-size:var(--type-small);font-weight:var(--weight-bold);margin-top:1.25rem}.project-notes dd{margin:.5rem 0 0}.project-dialog .dialog-tags{font-size:var(--type-small);margin:1.3rem 0}.dialog-links{border-top:1px solid var(--soft);flex-wrap:wrap;gap:.75rem 1rem;margin-top:1.5rem;padding-top:1rem;display:flex}.dialog-supporting-links{margin-top:1.5rem}.dialog-supporting-list{font-size:var(--type-small);gap:.55rem 1rem;margin:1.3rem 0;padding:0;list-style:none;display:grid}.dialog-preview-area{flex-direction:column;min-width:0;min-height:0;padding:0 1.5rem 1rem;display:flex}.preview-toolbar{flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;min-height:3.5rem;display:flex}.preview-toolbar p{font-size:var(--type-ui);margin:0}.screenshot-view{background:var(--white);flex:1;min-width:0;min-height:0;position:relative}.screenshot-canvas{overscroll-behavior:contain;position:absolute;inset:0;overflow:auto}.screenshot-canvas img{width:100%;max-width:none;height:auto;margin:0 auto;display:block}.screenshot-canvas img[hidden]{display:none}.screenshot-status{z-index:1;pointer-events:none;text-align:center;position:absolute;inset:2rem 1rem auto}.screenshot-status button{pointer-events:auto}.screenshot-status p:empty,.screenshot-status [hidden]{display:none}.page-slider{flex-shrink:0;align-items:center;gap:.5rem;min-width:0;padding-top:1rem;display:flex}.page-slider[hidden]{display:none}.page-gallery{touch-action:pan-y;scrollbar-width:none;flex:1;gap:1rem;min-width:0;display:flex;overflow-x:auto}.page-gallery::-webkit-scrollbar{display:none}.page-gallery[hidden]{display:none}.project-dialog .page-gallery-item{text-align:left;border-bottom:2px solid #0000;flex:none;min-width:10rem;padding:.25rem}.project-dialog .page-gallery-item[aria-pressed=true]{border-color:var(--ink)}.page-gallery-item img{object-fit:cover;object-position:top;width:11rem;height:4.5rem}.page-gallery-item span{white-space:nowrap;font-size:var(--type-ui);margin-top:.25rem;line-height:1.25;display:block}.page-lightbox-shell{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.page-lightbox-toolbar p{color:var(--graphite);font-size:var(--type-caption);margin:0 0 .25rem}.dialog-mobile-summary,.mobile-detail-link{display:none}@keyframes dialog-in{0%{clip-path:inset(8% 7%);opacity:.5}to{clip-path:inset(0);opacity:1}}.project-dialog.project-dialog--preview{width:100%;height:42rem;animation:none;position:relative;inset:auto}@media (width<=960px){.dialog-shell{display:block;overflow:auto}.dialog-preview-area{height:76svh;min-height:440px;padding:0 1rem 1rem}.dialog-sidebar{border-left:0;border-top:1px solid var(--soft);padding:1.5rem;padding-bottom:max(1.5rem, env(safe-area-inset-bottom));overflow:visible}.project-view-header,.page-lightbox-toolbar{gap:.5rem;padding:.75rem 1rem}.project-dialog .mobile-detail-link{min-height:44px;font-size:var(--type-ui);text-underline-offset:.25em;align-items:center;padding:.5rem 0;text-decoration:underline;display:inline-flex}.screenshot-canvas{overscroll-behavior-y:auto}.dialog-mobile-summary{border-bottom:1px solid var(--soft);padding:.85rem 1rem;display:block}.dialog-mobile-summary p{font-size:var(--type-ui);margin:0;line-height:1.45}.dialog-mobile-summary span{margin-top:.4rem;display:block}.dialog-mobile-summary span[hidden]{display:none}}@media (width<=640px){.project-view-header{flex-wrap:nowrap}.project-view-header h2{overflow-wrap:anywhere;flex:1;min-width:0}.page-lightbox-toolbar{flex-wrap:wrap}.page-lightbox-toolbar>div:first-child{flex-basis:100%}.project-view-actions{flex:none;justify-content:space-between;gap:.25rem;width:auto}.page-lightbox-actions{justify-content:flex-end;gap:.25rem;width:100%}.preview-toolbar,.preview-actions{gap:.25rem}.preview-toolbar p,.preview-actions button{font-size:var(--type-caption)}.dialog-sidebar p,.project-notes dd,.dialog-links .text-link,.dialog-supporting-links a{font-size:1rem}.page-gallery-item{max-width:46vw}.dialog-preview-area{height:65svh;min-height:360px}}.skill-row{border-bottom:1px solid var(--rule-strong);grid-template-columns:2.5rem minmax(0,1fr);align-items:start;gap:1.2rem clamp(1.25rem,2.5vw,2.5rem);padding:clamp(1.6rem,2.6vw,2.4rem) 0;display:grid}.skill-row:first-child{padding-top:0}.skill-row:last-child{border-bottom:0}.skill-row>svg{width:1.65rem;height:1.65rem;margin-top:.15rem}.skill-row-copy h3{font-size:var(--type-title);font-weight:var(--weight-medium);letter-spacing:-.025em;margin:0;line-height:1.08}.skill-row-copy p{max-width:38ch;color:var(--graphite);font-size:var(--type-ui);margin:.65rem 0 0;line-height:1.5}.skill-row ul{color:var(--graphite);font-size:var(--type-small);grid-column:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem 1rem;margin:0;padding:0;line-height:1.35;list-style:none;display:grid}.skill-row li{align-items:center;gap:.55rem;min-width:0;display:flex}.skill-row li>span:last-child{min-width:0}.technology-icon{width:1.15rem;height:1.15rem;color:var(--ink);flex:none;place-items:center;display:grid}.technology-icon svg,.technology-icon img{width:100%;height:100%;display:block}.technology-icon:not(.technology-icon--concept) svg{fill:currentColor}.technology-icon--concept svg{fill:none;stroke:currentColor}.technology-icon--local-brand img{object-fit:contain;filter:grayscale()contrast(1.5);mix-blend-mode:multiply}@media (width<=640px){.skill-row{grid-template-columns:2rem minmax(0,1fr);gap:1rem}.skill-row>svg{width:1.4rem;height:1.4rem}.skill-row ul{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.4rem}}.testimonial-card{z-index:1;background:var(--white);min-height:0;position:relative}.testimonial-quote{text-align:center;align-content:center;justify-items:center;min-height:0;margin:0;padding:clamp(2.75rem,5vw,4.75rem);display:grid}.testimonial-quote-mark{color:var(--soft);font-family:var(--font-heading);font-size:clamp(4rem,6vw,6rem);font-weight:var(--weight-medium);margin-bottom:1rem;line-height:.62}.testimonial-quote-copy{justify-items:center;gap:clamp(2rem,4vw,3.25rem);display:grid}.testimonial-statement{max-width:52ch;font-family:var(--font-heading);font-size:clamp(1.25rem,1.55vw,1.5rem);font-weight:var(--weight-medium);letter-spacing:-.02em;white-space:pre-line;text-wrap:pretty;margin:0;line-height:1.32}.testimonial-attribution{text-align:left;justify-content:center;align-items:center;gap:1rem;display:flex}.testimonial-attribution>span{gap:.2rem;display:grid}.testimonial-attribution cite{font-family:var(--font-heading);font-size:1.15rem;font-style:normal;font-weight:var(--weight-semibold)}.testimonial-attribution>span>span,.testimonial-attribution>span>a{width:fit-content;color:var(--graphite);font-size:var(--type-ui)}.testimonial-attribution>span>a{text-underline-offset:.2em;text-decoration-thickness:1px}.testimonial-client-logo{object-fit:contain;object-position:left center;filter:grayscale()contrast(1.45);flex:none;width:auto;max-width:5.5rem;height:3.25rem}@media (width>=961px) and (height<=860px){.testimonial-quote{padding:2.25rem 3rem}.testimonial-quote-copy{gap:2rem;padding:0}.testimonial-statement{font-size:clamp(1.2rem,1.45vw,1.5rem)}}@media (width<=640px){.testimonial-quote{grid-template-columns:1fr;padding:2rem 1.25rem}.testimonial-quote-mark{min-height:0;margin-bottom:.75rem;padding:0;font-size:3.75rem}.testimonial-quote-copy{gap:2rem;min-height:0;padding:0}.testimonial-statement{max-width:none;font-size:clamp(1.05rem,4.6vw,1.25rem);line-height:1.32}.testimonial-attribution{text-align:center;flex-direction:column;align-items:center;gap:.5rem}.testimonial-attribution>span{justify-items:center}.testimonial-client-logo{width:auto;max-width:4.5rem;height:2.75rem}}.featured-card{min-width:0}.featured-card-trigger{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.featured-card-media{aspect-ratio:8/5;border:1px solid var(--soft);background:var(--white);display:block;position:relative;overflow:hidden}.featured-card-badge{z-index:1;position:absolute;top:1rem;left:1rem}.featured-card-media img{object-fit:contain;object-position:center;width:100%;height:100%;display:block}.featured-card-media.featured-card-media--logo img{object-fit:cover}.featured-card-media img[src*="/assets/card-views/"]{transform-origin:50%;transform:scale(1.022)}.featured-card-summary{justify-content:space-between;align-items:end;gap:1rem;padding-top:1rem;display:flex}.featured-card-summary>span:first-child{gap:.35rem;min-width:0;display:grid}.featured-card-summary strong{font-family:var(--font-heading);font-size:var(--type-title);font-weight:var(--weight-medium);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;line-height:1.05;overflow:hidden}.featured-card-summary small{color:var(--graphite);font-size:var(--type-caption)}.featured-card-action{flex:none}.featured-card-context{max-width:43ch;font-size:var(--type-ui);color:var(--graphite);margin-top:.85rem;line-height:1.5;display:block}.featured-card:nth-child(-n+3) .featured-card-context{color:var(--ink);font-size:1rem}.featured-card:nth-child(n+4){border-top:1px solid var(--soft);padding-top:1.5rem}@media (width<=640px){.featured-card-summary{align-items:start}}@media (width>=641px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.featured-card-media img{transform-origin:50%;transition:transform var(--duration-fast) var(--ease)}.featured-card-trigger:is(:hover,:focus-visible) .featured-card-media img{transform:scale(1.04)}}.field{color:var(--ink);font-size:var(--type-small);font-weight:var(--weight-medium);margin-bottom:1.1rem;display:block}.field-control{box-sizing:border-box;border:2px solid var(--ink);background:var(--white);width:100%;color:var(--ink);resize:vertical;transition:background-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease);border-radius:0;margin-top:.45rem;padding:.95rem 1rem;display:block}.field-control:focus{background:var(--paper);box-shadow:inset 0 0 0 1px var(--ink);outline:0}textarea.field-control{min-height:10rem}select.field-control{appearance:none;cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 1.25rem) calc(50% - .1rem),calc(100% - .9rem) calc(50% - .1rem);background-repeat:no-repeat;background-size:.35rem .35rem,.35rem .35rem}
