:root{--font-family-body:var(--font-suisse-intl), Arial, sans-serif;--font-family-display:var(--font-excrallik), Georgia, serif;--font-size-base:16px;--font-size-xxs:calc(var(--font-size-base) * .563);--font-size-xs:calc(var(--font-size-base) * .75);--font-size-sm:calc(var(--font-size-base) * 1);--font-size-md:calc(var(--font-size-base) * 1.333);--font-size-lg:calc(var(--font-size-base) * 1.777);--font-size-xl:calc(var(--font-size-base) * 2.369);--font-size-2xl:calc(var(--font-size-base) * 3.157);--font-size-3xl:calc(var(--font-size-base) * 4.209);--font-size-4xl:calc(var(--font-size-base) * 5.61);--line-height-tight:.92;--line-height-heading:1;--line-height-copy:1.55;--letter-spacing-caps:0;--color-page:#f5f2ea;--color-page-alt:#ebe6da;--color-surface:#fffdf7;--color-text:#171717;--color-text-muted:#69665f;--color-border:#d7d0c2;--color-accent:#315f72;--color-accent-contrast:#fffdf7;--color-accent-soft:#c7d7da;--site-margin:clamp(1rem, 4vw, 4rem);--section-space:clamp(4rem, 10vw, 9rem);--grid-gap:clamp(1rem, 2vw, 2rem);--content-max:86rem;--process-grid-max:60rem;--process-frame-height:clamp(16rem, 24vw, 24rem);--tap-target:2.75rem;--radius-sm:6px;--border-width:1px}*{box-sizing:border-box}html{background:var(--color-page);min-height:100%;font-size:var(--font-size-base);scroll-behavior:smooth}body{background:var(--color-page);min-height:100%;color:var(--color-text);font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:400;line-height:var(--line-height-copy);text-rendering:geometricprecision;margin:0;overflow-x:hidden}body::selection{background:var(--color-accent);color:var(--color-accent-contrast)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;line-height:var(--line-height-heading)}h1{max-width:12ch;font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-md)}p{color:var(--color-text-muted)}.site-main{min-height:100vh}.site-header,.home-hero,.portfolio-sections,.featured-case-study,.section-page,.case-study{width:min(100%, calc(var(--content-max) + (var(--site-margin) * 2)));margin-inline:auto}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:10;gap:var(--grid-gap);padding:1rem var(--site-margin);border-bottom:var(--border-width) solid var(--color-border);background:color-mix(in srgb, var(--color-page) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);isolation:isolate;grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid;position:sticky;top:0}.site-mark{font-size:var(--font-size-md);font-weight:700;line-height:var(--line-height-heading);text-transform:uppercase;z-index:12;align-items:baseline;gap:.4rem;display:flex}.site-nav{color:var(--color-text-muted);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;justify-self:end;align-items:center;gap:clamp(.75rem,2vw,1.75rem);font-weight:600;display:flex}.site-nav--mobile{display:none}.menu-toggle{width:var(--tap-target);height:var(--tap-target);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;z-index:12;background:0 0;justify-content:center;justify-self:end;align-items:center;display:none}.menu-toggle__icon{gap:.35rem;width:1.2rem;display:grid}.menu-toggle__line{width:100%;height:var(--border-width);background:var(--color-text);transform-origin:50%;transition:transform .18s;display:block}.site-nav a,.text-link{text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:var(--border-width);text-underline-offset:.28em;transition:color .18s,text-decoration-color .18s}.site-nav a:hover,.site-nav a[aria-current=page],.text-link:hover{color:var(--color-accent);text-decoration-color:currentColor}a:focus-visible,button:focus-visible{outline:calc(var(--border-width) * 2) solid var(--color-accent);outline-offset:.25rem}.home-hero,.section-page,.case-study{padding:var(--section-space) var(--site-margin)}.home-hero{border-bottom:var(--border-width) solid var(--color-border);grid-template-columns:minmax(0,1fr);align-items:end;gap:clamp(2rem,8vw,8rem);min-height:calc(100vh - 4.25rem);display:grid}.home-hero__content{gap:1.5rem;max-width:72rem;display:grid}.home-hero h1{max-width:15ch;font-size:var(--font-size-4xl);letter-spacing:0;line-height:var(--line-height-tight);text-transform:uppercase;overflow-wrap:break-word}.excrallik{font-family:var(--font-family-display);font-weight:400}.eyebrow{color:var(--color-accent);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-caps);font-weight:700;line-height:var(--line-height-heading);text-transform:uppercase}.lede{max-width:46rem;color:var(--color-text);font-size:var(--font-size-md);line-height:1.35}.discipline-list{border-top:var(--border-width) solid var(--color-border);border-left:var(--border-width) solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.discipline-list span{border-right:var(--border-width) solid var(--color-border);border-bottom:var(--border-width) solid var(--color-border);min-height:6rem;color:var(--color-text);font-size:var(--font-size-sm);padding:1rem;font-weight:600}.portfolio-sections{padding:0 var(--site-margin);display:grid}.portfolio-band{gap:var(--grid-gap);border-bottom:var(--border-width) solid var(--color-border);grid-template-columns:3rem minmax(0,1fr);padding:clamp(1.5rem,5vw,4rem) 0;display:grid}.portfolio-band h2{margin-bottom:1rem}.portfolio-band p{max-width:45rem}.portfolio-band .text-link{width:fit-content;color:var(--color-text);align-self:end;font-weight:600}.portfolio-band__index,.status-label{color:var(--color-text-muted);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-caps);font-weight:700;line-height:var(--line-height-heading);text-transform:uppercase}.status-copy{color:var(--color-accent);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;margin-top:1rem;font-weight:600}.featured-case-study{gap:var(--grid-gap);padding:var(--section-space) var(--site-margin);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:stretch;display:grid}.featured-case-study__copy{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);flex-direction:column;justify-content:space-between;min-height:30rem;padding:clamp(1.25rem,3vw,2rem);display:flex}.featured-case-study__copy h2{max-width:10ch}.featured-case-study__copy p:not(.eyebrow){max-width:30rem}.featured-case-study__image{border-radius:var(--radius-sm);object-fit:cover;width:100%;height:100%}.minimal-button{border:var(--border-width) solid var(--color-text);border-radius:var(--radius-sm);background:var(--color-text);width:fit-content;color:var(--color-page);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-caps);font-weight:700;line-height:var(--line-height-heading);text-transform:uppercase;justify-content:center;align-items:center;padding:.75rem 1.1rem;transition:background .18s,color .18s;display:inline-flex}.minimal-button:hover{color:var(--color-text);background:0 0}.section-page{gap:clamp(3rem,6vw,6rem);display:grid}.section-page__intro{gap:1.25rem;display:grid}.section-page h1{max-width:14ch;font-size:var(--font-size-4xl);text-transform:uppercase}.placeholder-grid{gap:var(--grid-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.placeholder-panel{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-content:space-between;gap:1.5rem;min-height:16rem;padding:clamp(1.25rem,3vw,2rem);display:grid}.placeholder-panel h2{font-size:var(--font-size-lg)}.placeholder-panel .text-link{width:fit-content;color:var(--color-text);font-weight:700}.case-study{gap:clamp(2rem,5vw,5rem);display:grid}.case-study__header{gap:2rem;display:grid}.case-study__header h1{max-width:11ch;font-size:var(--font-size-4xl);text-transform:uppercase}.case-study__meta{gap:var(--grid-gap);border-top:var(--border-width) solid var(--color-border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.case-study__meta div{gap:.5rem;padding-top:1rem;display:grid}.case-study__meta span{color:var(--color-text-muted);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;font-weight:700}.case-study__meta strong{color:var(--color-text);font-size:var(--font-size-sm);font-weight:600}.case-study__image{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);object-fit:contain;width:100%;height:auto}.case-study__body{gap:var(--grid-gap);grid-template-columns:minmax(12rem,.35fr) minmax(0,.65fr);align-items:start;display:grid}.case-study__actions{gap:1rem;display:grid;position:sticky;top:6rem}.case-study__writing{gap:1.25rem;display:grid}.case-study__writing p{color:var(--color-text);font-size:var(--font-size-md);line-height:1.45}.case-study__process,.case-study__portraits{border-top:var(--border-width) solid var(--color-border);gap:clamp(1.5rem,4vw,3rem);padding-top:clamp(2rem,5vw,4rem);display:grid}.case-study__process-intro{gap:var(--grid-gap);grid-template-columns:minmax(10rem,.35fr) minmax(0,.65fr);align-items:start;display:grid}.case-study__process-intro h2{max-width:16ch;margin-bottom:1rem}.case-study__process-intro p:not(.eyebrow){max-width:42rem;color:var(--color-text);font-size:var(--font-size-md);line-height:1.45}.case-study__process-grid{width:min(100%, var(--process-grid-max));gap:var(--grid-gap);grid-template-columns:minmax(0,1fr) minmax(0,1.37fr);justify-self:center;align-items:start;display:grid}.case-study__figure{gap:.75rem;margin:0;display:grid}.case-study__process-frame{width:100%;height:var(--process-frame-height);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);place-items:center;display:grid;overflow:hidden}.case-study__figure--concept{grid-column:1/-1}.case-study__figure--concept .case-study__process-frame{aspect-ratio:1366/768;height:auto}.case-study__process-image{object-fit:cover;width:100%;height:100%}.case-study__figure figcaption{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.35}.portrait-grid{gap:var(--grid-gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.portrait-grid--case-study{width:min(100%, var(--process-grid-max));justify-self:center}.portrait-card{gap:.75rem;margin:0;display:grid}.portrait-frame{aspect-ratio:4/5;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.portrait-image{object-fit:cover;width:100%;height:100%}.portrait-card figcaption{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.35}.photography-page{gap:clamp(2.5rem,6vw,5rem)}.photography-feature{gap:var(--grid-gap);display:grid}.photography-feature__copy{gap:1rem;max-width:42rem;display:grid}.photography-feature__copy p:not(.eyebrow){color:var(--color-text);font-size:var(--font-size-md);line-height:1.45}.photography-feature__copy .text-link{width:fit-content;color:var(--color-text);font-weight:700}.photo-detail-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.photo-detail-list li{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 72%, transparent);min-height:2rem;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading);align-items:center;padding:.4rem .65rem;display:inline-flex}.photo-story-grid{gap:var(--grid-gap);grid-template-columns:repeat(6,minmax(0,1fr));justify-self:center;width:min(100%,64rem);display:grid}.photo-story-card{gap:.75rem;margin:0;display:grid}.photo-story-card--wide,.photo-story-card--portrait{grid-column:span 3}.photo-story-frame{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.photo-story-image{width:100%;height:auto}.photo-story-card figcaption{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.35}.photography-page__reserved{min-height:12rem}.about-page{gap:clamp(2.5rem,6vw,5rem)}.about-layout{grid-template-columns:minmax(0,.95fr) minmax(20rem,.65fr);align-items:start;gap:clamp(2rem,6vw,5rem);display:grid}.about-copy{gap:1.35rem;max-width:50rem;display:grid}.about-copy p{color:var(--color-text);font-size:var(--font-size-md);line-height:1.45}.about-aside{gap:var(--grid-gap);display:grid}.about-panel{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);gap:1.25rem;padding:clamp(1.25rem,3vw,2rem);display:grid}.about-panel h2{font-size:var(--font-size-md)}.about-list{gap:1rem;display:grid}.about-list__item{border-top:var(--border-width) solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem;padding-top:1rem;display:grid}.about-list__item h3,.skill-group h3{font-size:var(--font-size-sm)}.about-list__item p{margin-top:.35rem}.about-list__item span{color:var(--color-accent);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading)}.skill-group-list{gap:1.25rem;display:grid}.skill-group{gap:.75rem;display:grid}.skill-group ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.skill-group li{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);min-height:2rem;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading);align-items:center;padding:.4rem .65rem;display:inline-flex}.about-links{flex-wrap:wrap;gap:.75rem 1.25rem;display:flex}.about-links .text-link{color:var(--color-text);font-weight:700}.apps-page{gap:clamp(2.5rem,6vw,5rem)}.app-index{gap:var(--grid-gap);display:grid}.app-card{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:clamp(1.25rem,4vw,3rem);padding:clamp(1.5rem,4vw,3rem);display:grid}.app-card__content{gap:1rem;display:grid}.app-card__content h2{font-size:var(--font-size-xl);text-transform:uppercase;margin-top:.5rem}.app-card__content>p{max-width:44rem;color:var(--color-text);font-size:var(--font-size-md);line-height:1.4}.app-card__stack,.app-meta-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.app-card__stack li,.app-meta-list li{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 72%, transparent);min-height:2rem;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading);align-items:center;padding:.4rem .65rem;display:inline-flex}.app-card__actions{justify-items:start;gap:1rem;min-width:10rem;display:grid}.app-card__actions .text-link{color:var(--color-text);font-weight:700}.app-card__reserved{min-height:12rem}.app-play-page{gap:clamp(2rem,5vw,4rem)}.app-play-header{gap:var(--grid-gap);grid-template-columns:minmax(0,.9fr) minmax(18rem,.45fr);align-items:end;display:grid}.app-play-header__aside,.app-play-links{gap:1rem;display:grid}.app-play-links{justify-items:start}.app-play-links .text-link{color:var(--color-text);font-weight:700}.game-shell{gap:var(--grid-gap);grid-template-columns:minmax(0,1fr) minmax(18rem,.38fr);align-items:start;display:grid}.game-board-panel,.game-panel{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.game-board-panel{gap:clamp(1rem,3vw,2rem);padding:clamp(1rem,3vw,2rem);display:grid}.game-status-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.game-status{color:var(--color-text);font-size:var(--font-size-md);font-weight:700;line-height:var(--line-height-heading)}.secondary-button,.text-button{cursor:pointer;background:0 0;border:0}.secondary-button{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);min-height:2.25rem;color:var(--color-text);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading);text-transform:uppercase;padding:.55rem .75rem;transition:border-color .18s,color .18s}.secondary-button:hover,.text-button:hover{color:var(--color-accent)}.secondary-button:hover{border-color:currentColor}.text-button{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading);text-decoration-line:underline;text-decoration-thickness:var(--border-width);text-underline-offset:.28em;padding:0}.connect-four-board{aspect-ratio:7/6;grid-template-columns:repeat(7,minmax(0,1fr));justify-self:center;gap:clamp(.3rem,1.1vw,.6rem);width:min(100%,38rem);display:grid}.connect-four-cell{aspect-ratio:1;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-page);min-width:0;color:var(--color-text);cursor:pointer;font-size:var(--font-size-lg);font-weight:700;line-height:var(--line-height-heading);place-items:center;transition:background .16s,border-color .16s,color .16s;display:grid}.connect-four-cell:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent-soft)}.connect-four-cell:disabled{cursor:default;opacity:1}.connect-four-cell.is-x{background:var(--color-text);color:var(--color-page)}.connect-four-cell.is-o{background:var(--color-accent);color:var(--color-accent-contrast)}.connect-four-cell.is-winning{border-color:var(--color-text);outline:calc(var(--border-width) * 2) solid var(--color-accent);outline-offset:.12rem}.game-sidebar{gap:var(--grid-gap);display:grid}.game-panel{gap:1rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.game-panel h2{font-size:var(--font-size-md)}.game-panel p{color:var(--color-text-muted)}.game-panel__heading{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.score-form{gap:.75rem;display:grid}.score-form label{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading);text-transform:uppercase}.score-form input{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-page);width:100%;min-height:2.75rem;color:var(--color-text);font:inherit;padding:.65rem .75rem}.move-list{gap:.35rem;max-height:14rem;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.move-list button{border:var(--border-width) solid transparent;border-radius:var(--radius-sm);width:100%;min-height:2rem;color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;padding:.45rem .6rem}.move-list button:hover,.move-list button.is-active{border-color:var(--color-border);color:var(--color-text)}.score-table{border-collapse:collapse;width:100%;font-size:var(--font-size-xs)}.score-table th,.score-table td{border-top:var(--border-width) solid var(--color-border);text-align:left;padding:.65rem 0}.score-table th{color:var(--color-text-muted);text-transform:uppercase;font-weight:700}.score-table td{color:var(--color-text)}.projects-page{gap:clamp(2.5rem,6vw,5rem)}.project-index{gap:clamp(2rem,5vw,4rem);display:grid}.project-card{border-top:var(--border-width) solid var(--color-border);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start;gap:clamp(1.25rem,4vw,3rem);padding:clamp(1.5rem,4vw,3rem) 0;display:grid}.project-card:last-child{border-bottom:var(--border-width) solid var(--color-border)}.project-card__media-frame{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.project-card__media{width:100%;height:auto}.project-card__research-frame{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:linear-gradient(var(--color-border) var(--border-width), transparent var(--border-width)) 0 0 / 100% 25%, linear-gradient(90deg, var(--color-border) var(--border-width), transparent var(--border-width)) 0 0 / 25% 100%, var(--color-surface);align-content:space-between;gap:2rem;min-height:24rem;padding:clamp(1.25rem,3vw,2rem);display:grid}.project-card__research-frame ul{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.project-card__research-frame li{color:var(--color-text);font-size:var(--font-size-md);font-weight:700;line-height:1.15}.project-card__body{align-content:start;gap:1.1rem;display:grid}.project-card__heading{gap:.75rem;display:grid}.project-card__heading h2{max-width:13ch;font-size:var(--font-size-xl);text-transform:uppercase}.project-card__body>p{max-width:42rem;color:var(--color-text);font-size:var(--font-size-md);line-height:1.4}.project-card__notes,.project-card__stack{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.project-card__notes{gap:.6rem;max-width:38rem;display:grid}.project-card__notes li{color:var(--color-text-muted);font-size:var(--font-size-sm);padding-left:1rem;line-height:1.4;position:relative}.project-card__notes li:before{background:var(--color-accent);content:"";border-radius:50%;width:.35rem;height:.35rem;position:absolute;top:.65em;left:0}.project-card__stack li{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 72%, transparent);min-height:2rem;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading);align-items:center;padding:.4rem .65rem;display:inline-flex}.project-card__links{flex-wrap:wrap;gap:.75rem 1.25rem;padding-top:.35rem;display:flex}.project-card__links .text-link{color:var(--color-text);font-weight:700}.research-case-study{gap:clamp(2.5rem,6vw,5rem)}.research-section{border-top:var(--border-width) solid var(--color-border);gap:clamp(1.5rem,4vw,3rem);padding-top:clamp(2rem,5vw,4rem);display:grid}.research-principles{gap:var(--grid-gap);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.research-principles li{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:9rem;color:var(--color-text);font-size:var(--font-size-sm);padding:clamp(1rem,2vw,1.5rem);line-height:1.4}.research-card-grid{gap:var(--grid-gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.research-card-grid--phases{align-items:stretch}.research-card{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-content:start;gap:1rem;padding:clamp(1.25rem,3vw,2rem);display:grid}.research-card h3,.research-theme h3,.reference-item h3{font-size:var(--font-size-md)}.research-card p,.research-theme p,.reference-item p{color:var(--color-text);line-height:1.45}.research-card ul,.research-theme ul,.research-tag-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.research-card li,.research-theme li,.research-tag-list li{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);min-height:2rem;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;line-height:var(--line-height-heading);align-items:center;padding:.4rem .65rem;display:inline-flex}.research-theme-list,.reference-list{gap:var(--grid-gap);display:grid}.progress-tree-grid{gap:var(--grid-gap);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.progress-branch{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-content:start;gap:1rem;min-height:100%;padding:clamp(1rem,2vw,1.35rem);display:grid}.progress-branch h3{font-size:var(--font-size-sm);text-transform:uppercase}.progress-branch ol{counter-reset:progress-step;gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.progress-branch li{color:var(--color-text-muted);font-size:var(--font-size-xs);counter-increment:progress-step;grid-template-columns:1.6rem minmax(0,1fr);align-items:start;gap:.55rem;font-weight:700;line-height:1.35;display:grid}.progress-branch li:before{border:var(--border-width) solid var(--color-border);width:1.45rem;height:1.45rem;color:var(--color-text);font-size:var(--font-size-2xs);content:counter(progress-step);border-radius:50%;place-items:center;display:inline-grid}.mastery-model{gap:var(--grid-gap);grid-template-columns:minmax(0,.75fr) minmax(18rem,1fr);align-items:start;padding-top:clamp(1rem,3vw,2rem);display:grid}.mastery-model>p{max-width:46rem;color:var(--color-text);font-size:var(--font-size-md);line-height:1.45}.mastery-model>div{gap:var(--grid-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mastery-card{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);gap:.75rem;padding:clamp(1rem,2vw,1.35rem);display:grid}.mastery-card h3{font-size:var(--font-size-sm);text-transform:uppercase}.mastery-card p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.45}.research-theme,.reference-item{gap:var(--grid-gap);border-top:var(--border-width) solid var(--color-border);grid-template-columns:minmax(0,.75fr) minmax(16rem,.45fr);align-items:start;padding:clamp(1.25rem,3vw,2rem) 0;display:grid}.research-theme:first-child,.reference-item:first-child{border-top:0;padding-top:0}.research-theme>div,.reference-item>div{gap:.75rem;display:grid}.reference-meta{color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;font-weight:700;line-height:1.25}.reference-item h3 a{color:var(--color-text);-webkit-text-decoration-color:color-mix(in srgb, var(--color-accent) 70%, transparent);text-decoration-color:color-mix(in srgb, var(--color-accent) 70%, transparent);text-underline-offset:.18em;text-decoration-line:underline;text-decoration-thickness:.08em}.reference-source-link{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-xs);place-self:start;padding:.65rem .75rem;font-weight:700;line-height:1.35;text-decoration:none}.working-notes{border-top:var(--border-width) solid var(--color-border);gap:1rem;padding-top:clamp(1rem,3vw,2rem);display:grid}.working-notes h3{font-size:var(--font-size-md)}.working-notes ul{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.working-notes li{border-top:var(--border-width) solid var(--color-border);grid-template-columns:minmax(0,.65fr) minmax(12rem,.35fr);align-items:start;gap:.75rem;padding:1rem 0;display:grid}.working-notes span{color:var(--color-text);font-size:var(--font-size-sm);font-weight:700}.working-notes code{color:var(--color-text-muted);font-family:var(--font-family-body);font-size:var(--font-size-xs);overflow-wrap:anywhere;font-weight:700}@media (min-width:1600px){:root{--site-margin:5rem}}@media (max-width:1199px){.home-hero h1,.section-page h1,.case-study__header h1{font-size:var(--font-size-3xl)}.featured-case-study{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.progress-tree-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:900px){.home-hero{grid-template-columns:minmax(0,1.25fr) minmax(20rem,.75fr)}.portfolio-band{grid-template-columns:4rem minmax(0,1fr) auto;align-items:start}}@media (max-width:899px){:root{--section-space:4rem}h1,.home-hero h1,.section-page h1,.case-study__header h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-lg)}.home-hero{align-items:start;min-height:auto}.portfolio-band{grid-template-columns:2.5rem minmax(0,1fr)}.portfolio-band .text-link{grid-column:2}.featured-case-study,.project-card,.about-layout,.app-card,.app-play-header,.game-shell,.placeholder-grid,.research-principles,.research-card-grid,.progress-tree-grid,.mastery-model,.mastery-model>div,.research-theme,.reference-item,.working-notes li,.portrait-grid,.photo-story-grid,.case-study__meta,.case-study__body,.case-study__process-intro,.case-study__process-grid{grid-template-columns:1fr}.case-study__figure--grid,.case-study__figure--concept,.photo-story-card--wide,.photo-story-card--portrait{grid-column:auto}.case-study__process-frame{height:auto}.case-study__figure--grid .case-study__process-frame{aspect-ratio:770/768}.case-study__figure--logo .case-study__process-frame{aspect-ratio:1009/736}.case-study__figure--concept .case-study__process-frame{aspect-ratio:1366/768}.featured-case-study__image{aspect-ratio:16/10;height:auto}.featured-case-study__copy{min-height:22rem}.case-study__actions{position:static}.app-card__actions{min-width:0}.app-play-header{align-items:start}}@media (max-width:720px){.site-header{grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding-top:.75rem;padding-bottom:.75rem}.site-mark{font-size:var(--font-size-sm);align-self:center}.menu-toggle{display:inline-flex}.site-header[data-menu-open=true] .menu-toggle__line:first-child{transform:translateY(.175rem)rotate(45deg)}.site-header[data-menu-open=true] .menu-toggle__line:last-child{transform:translateY(-.175rem)rotate(-45deg)}.site-nav--desktop{display:none}.site-nav--mobile{border-bottom:var(--border-width) solid var(--color-border);background:var(--color-page);opacity:0;pointer-events:none;grid-template-columns:1fr;width:100%;max-height:0;transition:max-height .22s,opacity .18s,transform .18s;display:grid;position:absolute;top:100%;left:0;right:0;overflow:hidden;transform:translateY(-.5rem)}.site-header[data-menu-open=true] .site-nav--mobile{opacity:1;pointer-events:auto;max-height:24rem;transform:translateY(0)}.site-nav--mobile a{min-height:var(--tap-target);padding:0 var(--site-margin);border-top:var(--border-width) solid var(--color-border);color:var(--color-text);font-size:var(--font-size-md);align-items:center;text-decoration:none;display:flex}}@media (max-width:640px){:root{--site-margin:1rem;--section-space:3.25rem}.home-hero{gap:2rem}.home-hero,.section-page,.case-study,.featured-case-study{padding-right:var(--site-margin);padding-left:var(--site-margin)}.discipline-list{grid-template-columns:1fr}.discipline-list span{min-height:4.5rem}.portfolio-sections{padding-right:var(--site-margin);padding-left:var(--site-margin)}.portfolio-band{grid-template-columns:2rem minmax(0,1fr);gap:.6rem 1rem;padding:1.75rem 0}.portfolio-band h2{font-size:var(--font-size-md);margin-bottom:.55rem}.portfolio-band p{font-size:var(--font-size-sm);line-height:1.4}.portfolio-band .text-link{font-size:var(--font-size-sm);grid-column:2;align-self:start;margin-top:.1rem}.status-copy{font-size:var(--font-size-xxs);margin-top:.65rem;line-height:1.3}.featured-case-study{gap:1rem;padding-top:2.5rem}.featured-case-study__copy{justify-content:flex-start;gap:1.1rem;min-height:auto;padding:1.25rem}.featured-case-study__copy h2{max-width:none;font-size:var(--font-size-lg)}.featured-case-study__copy p:not(.eyebrow){max-width:none;font-size:var(--font-size-sm);line-height:1.4}.featured-case-study .minimal-button{width:fit-content;padding:.7rem .9rem}.featured-case-study__image{aspect-ratio:16/10}.placeholder-panel{min-height:14rem}.lede,.project-card__body>p,.app-card__content>p,.about-copy p,.case-study__writing p,.case-study__process-intro p:not(.eyebrow),.photography-feature__copy p:not(.eyebrow){font-size:var(--font-size-sm)}.project-card{gap:1.25rem}.project-card__research-frame{min-height:16rem}.project-card__research-frame li{font-size:var(--font-size-sm)}.project-card__heading h2{max-width:none;font-size:var(--font-size-lg)}.project-card__stack li{min-height:1.85rem;padding:.35rem .55rem}.progress-branch li{grid-template-columns:1.45rem minmax(0,1fr)}.mastery-model>p,.mastery-card p{font-size:var(--font-size-sm)}.photo-detail-list li,.skill-group li{min-height:1.85rem;padding:.35rem .55rem}.app-card{padding:1.25rem}.app-card__content h2{font-size:var(--font-size-lg)}.app-card__stack li,.app-meta-list li{min-height:1.85rem;padding:.35rem .55rem}.game-status{font-size:var(--font-size-sm)}.game-board-panel,.game-panel{padding:1rem}}@media (max-width:480px){h1,.home-hero h1,.section-page h1,.case-study__header h1{font-size:var(--font-size-xl);line-height:1.02}.home-hero__content,.section-page__intro,.case-study__header{gap:1rem}.portfolio-band{grid-template-columns:1fr;gap:.65rem;padding:1.35rem 0}.portfolio-band .text-link{grid-column:auto;margin-top:0}.portfolio-band__index{color:var(--color-accent)}.featured-case-study__copy{gap:.9rem;padding:1.15rem}.featured-case-study__copy h2{font-size:var(--font-size-md);line-height:1.08}.featured-case-study .minimal-button{font-size:var(--font-size-xxs)}.connect-four-board{gap:.25rem}.connect-four-cell{font-size:var(--font-size-md)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@font-face{font-family:suisseIntl;src:url(../media/SuisseIntl_Book-s.p.0iyclt9nzyv2m.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:suisseIntl;src:url(../media/SuisseIntl_Italic-s.p.3j785gi0hc7m-.woff2)format("woff2");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:suisseIntl;src:url(../media/SuisseIntl_Medium-s.p.25q6z-11s9w6-.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:suisseIntl;src:url(../media/SuisseIntl_SemiBold-s.p.3vjnderyftgog.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:suisseIntl;src:url(../media/SuisseIntl_Bold-s.p.2ucl7ogeylagu.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:suisseIntl Fallback;src:local(Arial);ascent-override:94.87%;descent-override:29.92%;line-gap-override:0.0%;size-adjust:103.93%}.suisseintl_18b86fd0-module__IRFtMG__className{font-family:suisseIntl,suisseIntl Fallback}.suisseintl_18b86fd0-module__IRFtMG__variable{--font-suisse-intl:"suisseIntl", "suisseIntl Fallback"}
@font-face{font-family:excrallik;src:url(../media/Excrallik_Regular-s.p.0x3rb4klvdmtu.otf)format("opentype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:excrallik;src:url(../media/Excrallik_Italic-s.p.2ayhvxuwdw-lu.otf)format("opentype");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:excrallik Fallback;src:local(Arial);ascent-override:69.07%;descent-override:56.86%;line-gap-override:0.0%;size-adjust:126.98%}.excrallik_8ea8746-module__NcXCla__className{font-family:excrallik,excrallik Fallback}.excrallik_8ea8746-module__NcXCla__variable{--font-excrallik:"excrallik", "excrallik Fallback"}
