/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.hidden{display:none}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--nhs-color-background:#f5f5f3;--nhs-color-surface:#fff;--nhs-color-surface-hover:#efefec;--nhs-color-text:#171717;--nhs-color-text-muted:#686865;--nhs-color-border:#d8d8d3;--nhs-color-accent:#262626;--nhs-color-danger:#a23c33;--nhs-color-focus:#345cde;--nhs-font-sans:Inter, ui-sans-serif, system-ui, sans-serif;--nhs-text-xs:.75rem;--nhs-text-sm:.875rem;--nhs-text-md:1rem;--nhs-text-lg:1.25rem;--nhs-space-xs:.25rem;--nhs-space-sm:.5rem;--nhs-space-md:.75rem;--nhs-space-lg:1rem;--nhs-space-xl:1.5rem;--nhs-radius-sm:.25rem;--nhs-radius-md:.375rem;--nhs-radius-lg:.5rem;--nhs-shadow-sm:0 1px 2px #0000000f;--nhs-shadow-md:0 8px 24px #00000014;--nhs-z-topbar:10;--nhs-topbar-height:3.5rem;--nhs-duration-fast:.12s;--nhs-duration-normal:.18s;--nhs-ease-standard:cubic-bezier(.2,.8,.2,1)}*{box-sizing:border-box}body{background:var(--nhs-color-background);color:var(--nhs-color-text);font-family:var(--nhs-font-sans);font-size:var(--nhs-text-sm);margin:0}button,input,textarea{font:inherit}.nhs-app{isolation:isolate;min-height:100vh}.nhs-topbar{z-index:var(--nhs-z-topbar);align-items:center;gap:var(--nhs-space-md);min-height:var(--nhs-topbar-height);padding:var(--nhs-space-md) var(--nhs-space-xl);border-bottom:1px solid var(--nhs-color-border);background:var(--nhs-color-background);display:flex;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.nhs-topbar{background:color-mix(in srgb,var(--nhs-color-background) 92%,transparent)}}.nhs-topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.nhs-sidebar{border-right:1px solid var(--nhs-color-border);padding:var(--nhs-space-xl);background:var(--nhs-color-surface)}.nhs-sidebar .nhs-button{justify-content:flex-start;width:100%}.nhs-lab{grid-template-columns:14rem minmax(0,1fr);display:grid}.nhs-app>.nhs-lab>.nhs-sidebar .nhs-stack{gap:var(--nhs-space-sm)}.nhs-foundation-lab{grid-template-columns:16rem minmax(0,1fr)}.nhs-foundation-lab>.nhs-sidebar{top:calc(var(--nhs-topbar-height) + var(--nhs-space-xl));align-self:start;position:sticky}.nhs-foundation-lab>.nhs-sidebar .nhs-stack{gap:var(--nhs-space-sm)}.nhs-lab__main{padding:var(--nhs-space-xl);max-width:72rem}.nhs-panel{border:1px solid var(--nhs-color-border);border-radius:var(--nhs-radius-lg);background:var(--nhs-color-surface);box-shadow:var(--nhs-shadow-sm)}.nhs-panel__header,.nhs-panel__body{padding:var(--nhs-space-xl)}.nhs-panel__header{border-bottom:1px solid var(--nhs-color-border)}.nhs-stack{gap:var(--nhs-space-lg);display:grid}.nhs-row{align-items:center;gap:var(--nhs-space-md);flex-wrap:wrap;display:flex}.nhs-row--start{align-items:flex-start}.nhs-button{justify-content:center;align-items:center;gap:var(--nhs-space-sm);border-radius:var(--nhs-radius-md);cursor:pointer;transition:background var(--nhs-duration-fast) var(--nhs-ease-standard),border-color var(--nhs-duration-fast) var(--nhs-ease-standard);border:1px solid #0000;font-weight:600;display:inline-flex}.nhs-button:focus-visible,.nhs-control:focus-visible,.nhs-select__trigger:focus-visible{outline:2px solid var(--nhs-color-focus);outline-offset:2px}.nhs-button:disabled{cursor:not-allowed;opacity:.45}.nhs-button--sm{min-height:2rem;padding:0 var(--nhs-space-md)}.nhs-button--md{min-height:2.5rem;padding:0 var(--nhs-space-lg)}.nhs-button--lg{min-height:3rem;padding:0 var(--nhs-space-xl)}.nhs-button--primary{background:var(--nhs-color-accent);color:var(--nhs-color-surface)}.nhs-button--secondary{border-color:var(--nhs-color-border);background:var(--nhs-color-surface);color:var(--nhs-color-text)}.nhs-button--ghost{color:var(--nhs-color-text);background:0 0}.nhs-button--danger{background:var(--nhs-color-danger);color:var(--nhs-color-surface)}.nhs-button:not(:disabled):hover{filter:brightness(.94)}.nhs-field{gap:var(--nhs-space-sm);min-width:12rem;display:grid}.nhs-field__label{font-weight:600}.nhs-field__help{color:var(--nhs-color-text-muted)}.nhs-field__error{color:var(--nhs-color-danger)}.nhs-control,.nhs-select__trigger{border:1px solid var(--nhs-color-border);border-radius:var(--nhs-radius-md);width:100%;min-height:2.5rem;padding:0 var(--nhs-space-md);color:var(--nhs-color-text);background:var(--nhs-color-surface)}.nhs-select__trigger{justify-content:space-between;align-items:center;gap:var(--nhs-space-sm);display:flex}.nhs-textarea{min-height:6rem;padding-block:var(--nhs-space-md);resize:vertical}.nhs-control[aria-invalid=true]{border-color:var(--nhs-color-danger)}.nhs-check,.nhs-switch{align-items:center;gap:var(--nhs-space-sm);display:inline-flex}.nhs-check__box{border:1px solid var(--nhs-color-border);border-radius:var(--nhs-radius-sm);background:var(--nhs-color-surface);place-items:center;width:1.25rem;height:1.25rem;display:grid}.nhs-check__box[data-checked]{background:var(--nhs-color-accent);color:var(--nhs-color-surface)}.nhs-switch__root{border:1px solid var(--nhs-color-border);border-radius:var(--nhs-radius-lg);background:var(--nhs-color-surface-hover);width:2.5rem;height:1.5rem}.nhs-switch__root[data-checked]{background:var(--nhs-color-accent)}.nhs-switch__thumb{background:var(--nhs-color-surface);width:1.125rem;height:1.125rem;transition:transform var(--nhs-duration-fast) var(--nhs-ease-standard);border-radius:50%;margin:.125rem;display:block}.nhs-switch__root[data-checked] .nhs-switch__thumb{transform:translate(1rem)}.nhs-inspector{border-top:1px solid var(--nhs-color-border);padding-top:var(--nhs-space-lg)}.nhs-inspector__row{align-items:center;gap:var(--nhs-space-lg);padding-block:var(--nhs-space-md);grid-template-columns:minmax(8rem,1fr) minmax(10rem,2fr);display:grid}.nhs-badge{width:fit-content;padding:var(--nhs-space-xs) var(--nhs-space-sm);border-radius:var(--nhs-radius-sm);background:var(--nhs-color-surface-hover);color:var(--nhs-color-text-muted);font-size:var(--nhs-text-xs);display:inline-flex}.nhs-empty{padding:var(--nhs-space-xl);border:1px dashed var(--nhs-color-border);border-radius:var(--nhs-radius-md);color:var(--nhs-color-text-muted);text-align:center}.nhs-overlay{background:#00000038;position:fixed;top:0;right:0;bottom:0;left:0}.nhs-dialog,.nhs-popover,.nhs-menu{z-index:calc(var(--nhs-z-topbar) + 1);border:1px solid var(--nhs-color-border);border-radius:var(--nhs-radius-lg);background:var(--nhs-color-surface);box-shadow:var(--nhs-shadow-md);padding:var(--nhs-space-lg)}.nhs-dialog{width:min(28rem,calc(100vw - 2 * var(--nhs-space-xl)));position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.nhs-menu{min-width:10rem}.nhs-menu__item{border-radius:var(--nhs-radius-sm);width:100%;padding:var(--nhs-space-sm);color:var(--nhs-color-text);text-align:left;background:0 0;border:0;display:block}.nhs-menu__item:focus-visible,.nhs-menu__item:hover{background:var(--nhs-color-surface-hover);outline:2px solid var(--nhs-color-focus);outline-offset:-2px}.nhs-tabs__list,.nhs-segmented{gap:var(--nhs-space-xs);padding:var(--nhs-space-xs);border-radius:var(--nhs-radius-md);background:var(--nhs-color-surface-hover);display:inline-flex}.nhs-tabs__trigger,.nhs-segmented__item{border-radius:var(--nhs-radius-sm);padding:var(--nhs-space-sm) var(--nhs-space-md);background:0 0;border:0}.nhs-tabs__trigger[data-state=active],.nhs-segmented__item[aria-pressed=true]{background:var(--nhs-color-surface);box-shadow:var(--nhs-shadow-sm)}.nhs-tabs__panel{padding-top:var(--nhs-space-lg)}.nhs-mobile-nav{display:none}@media(max-width:48rem){.nhs-lab{grid-template-columns:1fr}.nhs-lab>.nhs-sidebar{display:none}.nhs-mobile-nav{display:inline-flex}.nhs-topbar{padding-inline:var(--nhs-space-lg)}.nhs-topbar__status{display:none}.nhs-inspector__row{gap:var(--nhs-space-sm);grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}:root{--nhs-grid-columns: 12;--nhs-grid-gap: clamp(.5rem, 1vw, 1.25rem);--nhs-page-gutter: clamp(1.25rem, 2.25vw, 3rem);--nhs-grid-line: color-mix(in srgb, currentColor 18%, transparent);--nhs-grid-fill: color-mix(in srgb, currentColor 2.5%, transparent);--hub-gutter: var(--nhs-page-gutter);--portfolio-page-gutter: var(--nhs-page-gutter)}@media(max-width:47.99rem){:root{--nhs-grid-columns: 4}}@media(prefers-reduced-motion:no-preference){.portfolio-reveal{opacity:0;transform:translate3d(0,.85rem,0);transition:opacity .42s ease-out,transform .52s cubic-bezier(.2,.75,.25,1);will-change:opacity,transform}.portfolio-reveal--visible{opacity:1;transform:translateZ(0);will-change:auto}.portfolio-image{opacity:0;transition:opacity .36s ease-out,transform .7s cubic-bezier(.2,.75,.25,1)}.portfolio-image--loaded{opacity:1}@media(hover:hover)and (pointer:fine){.portfolio-card__media:hover .portfolio-image,.related-projects__card:hover .portfolio-image{transform:translate3d(0,-.35rem,0) scale(1.012)}.project-gallery__frame:hover .portfolio-image{transform:translate3d(0,-.2rem,0) scale(1.008)}}}.nhs-generic-page{--portfolio-ink:#1a1a18;--portfolio-paper:#f4f2ed;--portfolio-rule:#ccc9c0;--portfolio-muted:#696760;min-height:100%;background:var(--portfolio-paper);color:var(--portfolio-ink);font-family:Georgia,Times New Roman,serif}html[data-nhs-portfolio-theme=dark] .nhs-generic-page{--portfolio-ink:#f1efe8;--portfolio-paper:#171715;--portfolio-rule:#4d4c46;--portfolio-muted:#b5b2aa;color-scheme:dark}.nhs-generic-page__header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem var(--portfolio-page-gutter) clamp(4rem,9vw,9rem);font:600 .78rem/1.2 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase}.nhs-generic-page__brand,.nhs-generic-page__header-actions,.nhs-generic-page__header-actions nav{display:flex;align-items:center}.nhs-generic-page__menu{display:flex;align-items:center;flex-wrap:wrap;gap:inherit;margin:0;padding:0;list-style:none}.nhs-generic-page__brand{gap:.75rem;min-width:0}.nhs-generic-page__brand a{color:inherit;font-size:1.1rem;font-weight:800;letter-spacing:-.04em;text-decoration:none}.nhs-generic-page__brand span{color:var(--portfolio-muted);font-size:1rem;font-weight:500;font-variant-caps:all-small-caps;letter-spacing:.04em;text-transform:none;white-space:nowrap}.nhs-generic-page__header-actions{gap:1.25rem}.nhs-generic-page__header-actions nav{gap:1.25rem}.nhs-generic-page a{color:inherit}.nhs-generic-page a:hover,.nhs-generic-page a:focus-visible{text-underline-offset:.2em}.nhs-generic-page__grid-toggle,.nhs-generic-page__instagram{display:grid;width:1rem;height:1rem;padding:0;border:0;place-items:center;background:transparent;color:inherit}.nhs-generic-page__grid-toggle{cursor:pointer}.nhs-generic-page__grid-toggle svg,.nhs-generic-page__instagram svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4}.nhs-generic-page__grid-toggle svg{fill:currentColor;stroke:none}.nhs-generic-page__header-actions :is(.current-menu-item,.current-menu-ancestor)>a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.32em}.nhs-generic-page__theme-toggle{position:relative;display:flex;align-items:center;box-sizing:border-box;width:2rem;height:1rem;padding:.125rem;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;cursor:pointer}.nhs-generic-page__theme-toggle span{display:block;width:.5rem;height:.5rem;border-radius:50%;background:currentColor;transition:transform .16s ease}.nhs-generic-page__theme-toggle[aria-checked=true] span{transform:translate(1.125rem)}.nhs-generic-page__menu-toggle{display:none}.nhs-generic-page__main{padding:clamp(4rem,10vw,9rem) var(--portfolio-page-gutter)}.nhs-generic-page__content{width:min(100%,76rem);margin:0 auto;border-top:1px solid var(--portfolio-rule);border-bottom:1px solid var(--portfolio-rule)}.nhs-generic-page__title,.nhs-generic-page__body{width:min(100%,calc((100% / 12) * 8));margin-inline:auto}.nhs-generic-page__title{padding:clamp(2.5rem,5vw,5rem) 0 2rem}.nhs-generic-page__title h1{margin:0;font:400 clamp(2.8rem,6vw,6rem)/.92 Georgia,"Times New Roman",serif;letter-spacing:-.06em}.nhs-generic-page__body{padding-bottom:clamp(3rem,6vw,6rem)}.nhs-generic-page__body>:first-child{margin-top:0}.nhs-generic-page__body>:last-child{margin-bottom:0}.nhs-generic-page__body p,.nhs-generic-page__body li{font-size:1rem;line-height:1.65}.nhs-booking-page .nhs-generic-page__content{width:100%;border:none}.nhs-booking-page .nhs-generic-page__title,.nhs-booking-page .nhs-generic-page__body{width:100%}.nhs-booking-page .nhs-generic-page__title{padding-top:0;border-top:1px solid var(--portfolio-rule)}.nhs-booking-page .nhs-generic-page__body{padding-bottom:0}.nhs-generic-page__contact{margin:0 var(--portfolio-page-gutter);padding:clamp(4rem,8vw,7rem) 0;border-top:1px solid var(--portfolio-rule);border-bottom:1px solid var(--portfolio-rule)}.nhs-generic-page__contact p{margin:0 0 .7rem;color:var(--portfolio-muted);font:600 .72rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.nhs-generic-page__contact h2{max-width:14ch;margin:0 0 2rem;font:400 clamp(2.5rem,6vw,5.5rem)/.95 Georgia,"Times New Roman",serif;letter-spacing:-.055em}.nhs-generic-page__contact a{font-family:Inter,ui-sans-serif,system-ui,sans-serif;text-underline-offset:.2em}.nhs-generic-page__footer{display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:center;margin-top:clamp(5rem,12vw,10rem);padding:2.5rem var(--portfolio-page-gutter) 1.5rem;border-top:1px solid var(--portfolio-rule);color:var(--portfolio-muted);font:600 .72rem/1.2 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase}.nhs-generic-page__footer-brand{display:flex;align-items:baseline;gap:1.5rem}.nhs-generic-page__footer-brand a{color:var(--portfolio-ink);font-size:1.125rem;font-weight:800;letter-spacing:-.06em;text-decoration:none}.nhs-generic-page__footer p{max-width:18rem;margin:0;font-size:.8rem;letter-spacing:0;text-transform:none}.nhs-generic-page__footer-circle{position:relative;width:6rem;aspect-ratio:1;color:var(--portfolio-ink)}.nhs-generic-page__footer-circle svg{display:block;width:100%;height:100%;overflow:visible}.nhs-generic-page__footer-circle text{fill:currentColor;font:700 8px Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.12em}.nhs-generic-page__footer-circle span{position:absolute;top:30%;right:30%;bottom:30%;left:30%;display:grid;place-items:center;font-size:.7rem;letter-spacing:-.04em}.nhs-generic-page__footer-bottom{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:1rem 2rem}.nhs-generic-page__footer-links{display:flex;flex-wrap:wrap;gap:.75rem 2rem}.nhs-generic-page__footer-bottom nav{display:flex;flex-wrap:wrap;gap:.625rem 1.25rem}.nhs-generic-page__footer-bottom a{color:inherit;text-decoration:none}.nhs-generic-page__footer-bottom [aria-current=page]{color:var(--portfolio-ink);opacity:.48}.nhs-generic-page__footer-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.25rem 3rem}.nhs-generic-page__footer-logos img{display:block;width:auto;max-width:8rem;height:2.25rem;object-fit:contain}.nhs-generic-page__footer-circle{justify-self:end}@media(min-width:48rem){.nhs-generic-page__footer-circle{grid-column:-1}}.nhs-generic-page__grid-overlay{position:fixed;z-index:5;inset:0 var(--nhs-page-gutter);display:grid;grid-template-columns:repeat(var(--nhs-grid-columns),minmax(0,1fr));gap:var(--nhs-grid-gap);pointer-events:none}.nhs-generic-page__grid-overlay span{border-right:1px solid var(--nhs-grid-line);border-left:1px solid var(--nhs-grid-line);background:var(--nhs-grid-fill)}.nhs-generic-page__grid-overlay span:last-child{border-right:1px solid var(--nhs-grid-line)}@media(max-width:47.99rem){.nhs-generic-page__header{padding-bottom:3rem}.nhs-generic-page__header-actions{display:none}.nhs-generic-page__menu-toggle{display:grid;width:2rem;height:2rem;padding:.35rem;border:0;place-content:center;gap:.32rem;background:transparent;color:inherit;cursor:pointer}.nhs-generic-page__menu-toggle span{display:block;width:1.25rem;height:1px;background:currentColor}.nhs-generic-page__header.is-open .nhs-generic-page__header-actions{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:5rem 1.25rem 2rem;background:var(--portfolio-paper)}.nhs-generic-page__header.is-open .nhs-generic-page__header-actions nav{flex-direction:column;align-items:flex-start;gap:1rem}.nhs-generic-page__header.is-open .nhs-generic-page__header-actions nav a{font:400 clamp(2.75rem,12vw,4.5rem)/.95 Georgia,"Times New Roman",serif;letter-spacing:-.06em;text-decoration:none;text-transform:none}.nhs-generic-page__header.is-open .nhs-generic-page__header-actions{gap:1rem}.nhs-generic-page__header.is-open .nhs-generic-page__grid-toggle{margin-top:auto}.nhs-generic-page__title,.nhs-generic-page__body{width:100%}.nhs-generic-page__footer{grid-template-columns:1fr;gap:1.5rem}.nhs-generic-page__footer-brand{align-items:flex-start;flex-direction:column;gap:.65rem}.nhs-generic-page__footer-circle{order:-1;justify-self:end}.nhs-generic-page__footer-bottom{align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:1rem}.nhs-generic-page__footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));order:1;width:100%;gap:1.5rem 1rem}.nhs-generic-page__footer-network{grid-column:1 / -1}.nhs-generic-page__footer-site{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}.nhs-generic-page__footer-bottom>span{order:2;margin-top:.5rem}.nhs-generic-page__grid-overlay{grid-template-columns:repeat(var(--nhs-grid-columns),minmax(0,1fr))}.nhs-generic-page__grid-overlay span:nth-child(n+5){display:none}.nhs-generic-page__grid-overlay span:nth-child(4){border-right:1px solid var(--nhs-grid-line)}}.portfolio-footer{margin-top:clamp(5rem,12vw,10rem);border-top:1px solid var(--portfolio-line);padding:1.25rem 0 1.5rem;color:var(--portfolio-ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif}.portfolio-footer__top{display:grid;gap:2.5rem;align-items:center;padding:2.5rem 0}.portfolio-footer__logo{width:fit-content;color:inherit;font-size:1.125rem;font-weight:700;letter-spacing:-.06em;text-decoration:none}.portfolio-footer__identity{display:flex;align-items:baseline;gap:1.5rem}.portfolio-footer__identity p{max-width:18rem;margin:0;color:var(--portfolio-muted);font-size:.9375rem;line-height:1.45}.portfolio-footer__partner-logos{display:flex;flex:1 1 16rem;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(1.25rem,3vw,3rem)}.portfolio-footer__partner-logos img{display:block;width:auto;max-width:8rem;height:2.25rem;object-fit:contain}.portfolio-footer__circle{position:relative;width:var(--footer-circle-size, 8rem);aspect-ratio:1;justify-self:end}.portfolio-footer__circle svg{display:block;width:100%;height:100%;overflow:visible}.portfolio-footer__circle text{fill:currentColor;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:8px;font-weight:700;letter-spacing:.12em}.portfolio-footer__circle-center{position:absolute;top:30%;right:30%;bottom:30%;left:30%;display:grid;place-items:center;overflow:hidden;color:var(--portfolio-muted);font-size:clamp(.625rem,1.5vw,.875rem);font-weight:700;letter-spacing:-.04em;line-height:1;text-align:center}.portfolio-footer__circle-center img{display:block;width:100%;height:100%;object-fit:contain}.portfolio-footer__bottom{border-top:1px solid var(--portfolio-line);display:grid;gap:1.25rem;padding-top:1rem;color:var(--portfolio-muted);font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}.portfolio-footer__bottom-links,.portfolio-footer__nav{display:flex;flex-wrap:wrap;gap:.625rem 1.25rem}.portfolio-footer__bottom-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));order:1;width:100%;gap:1.5rem 1rem}.portfolio-footer__network{grid-column:1 / -1}.portfolio-footer__site{display:grid;align-content:start;gap:.75rem}.portfolio-footer__legal{display:flex;grid-column:1 / -1;align-items:center;gap:0}.portfolio-footer__legal>*+*{display:inline-flex;align-items:center}.portfolio-footer__legal>*+*:before{margin-right:.75rem;color:var(--portfolio-muted);content:"/"}.portfolio-footer__bottom>span{order:2;margin-top:.5rem}.portfolio-footer__nav a,.portfolio-footer__nav button,.portfolio-footer__nav span{padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font-size:.75rem;letter-spacing:.04em;text-decoration:none;text-transform:uppercase}.portfolio-footer__network{color:var(--portfolio-ink)}.portfolio-footer__network [aria-current=page]{cursor:default;opacity:.48}.portfolio-footer__nav a:hover,.portfolio-footer__nav a:focus-visible,.portfolio-footer__nav button:hover,.portfolio-footer__nav button:focus-visible,.portfolio-footer__logo:hover,.portfolio-footer__logo:focus-visible{text-decoration:underline;text-underline-offset:.2em}:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design]) #cmplz-manage-consent{display:none!important}@media(min-width:48rem){.portfolio-footer__top{grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(1rem,2.5vw,2rem)}.portfolio-footer__partner-logos{justify-self:center}.portfolio-footer__circle{grid-column:-1}.portfolio-footer__bottom{grid-template-columns:1fr auto;align-items:center;gap:2rem}.portfolio-footer__bottom-links{order:initial;display:flex;flex-direction:row;justify-content:flex-end;width:auto;gap:.625rem 1.25rem}.portfolio-footer__network{grid-column:auto}.portfolio-footer__site,.portfolio-footer__legal{display:flex;gap:.625rem 1.25rem}.portfolio-footer__legal{grid-column:auto}.portfolio-footer__legal>*+*:before{margin:0;content:none}.portfolio-footer__bottom>span{order:initial;margin-top:0}.portfolio-footer__nav{justify-content:flex-end}}.portfolio-placeholder{position:relative;isolation:isolate;display:block;width:100%;height:100%;min-width:0;overflow:hidden;background:var(--portfolio-rule);color:#1a1a18}.portfolio-placeholder__geometry{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:.55;opacity:.24;vector-effect:non-scaling-stroke}.portfolio-placeholder__geometry *{vector-effect:non-scaling-stroke}.portfolio-placeholder__index,.portfolio-placeholder__label{position:absolute;z-index:1;color:currentColor;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-transform:uppercase}.portfolio-placeholder__index{top:clamp(.65rem,2.5%,1.35rem);left:clamp(.65rem,2.5%,1.35rem);font-size:clamp(.58rem,.8vw,.72rem);font-weight:700;letter-spacing:.06em;opacity:.48}.portfolio-placeholder__label{top:50%;left:50%;display:grid;gap:.45rem;width:calc(100% - 2rem);transform:translate(-50%,-50%);text-align:center}.portfolio-placeholder__label strong,.portfolio-placeholder__label small{display:block;margin:0;font-family:inherit;line-height:1}.portfolio-placeholder__label strong{font-size:clamp(.64rem,1vw,.82rem);font-weight:800;letter-spacing:.17em}.portfolio-placeholder__label small{font-size:clamp(.48rem,.7vw,.64rem);font-weight:500;letter-spacing:.15em;text-transform:none}@media(max-width:47.99rem){.portfolio-placeholder__geometry{stroke-width:.75}.portfolio-placeholder__label{gap:.35rem}}:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design]),:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design]) body,:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design]) #root{min-height:100%;background:#f4f2ed}:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design]) body{overscroll-behavior-y:none}:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design])[data-nhs-portfolio-theme=dark],:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design])[data-nhs-portfolio-theme=dark] body,:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design])[data-nhs-portfolio-theme=dark] #root{background:#171715;color-scheme:dark}.portfolio-loading{display:grid;min-height:100svh;place-items:center;background:#f4f2ed;color:#696760;font:600 .68rem/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase}:is(html[data-nhs-frontend=portfolio],html[data-nhs-frontend=design])[data-nhs-portfolio-theme=dark] .portfolio-loading{background:#171715;color:#b5b2aa}.portfolio-entry{animation:portfolio-entry .44s cubic-bezier(.2,.65,.3,1) both}@keyframes portfolio-entry{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}.portfolio__cover,.portfolio-card__primary,.portfolio-card__secondary,.project-gallery__frame,.project-lightbox__content,.about-page__image,.contact-page__image,.home-booking__image,.photoblog-post-page__cover,.photoblog-post-page__related-image{position:relative}.portfolio-image-loader{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--portfolio-rule);color:var(--portfolio-muted);font:600 .65rem/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.1em;pointer-events:none;text-transform:uppercase}.project-lightbox__content>.portfolio-image-loader{background:#000000c7;color:#ffffffd1}.portfolio{--portfolio-ink: #1a1a18;--portfolio-paper: #f4f2ed;--portfolio-rule: #ccc9c0;--portfolio-muted: #696760;min-height:100vh;padding:var(--nhs-page-gutter);background:var(--portfolio-paper);color:var(--portfolio-ink);font-family:Georgia,Times New Roman,serif}.portfolio[data-theme=dark]{--portfolio-ink: #f1efe8;--portfolio-paper: #171715;--portfolio-rule: #4d4c46;--portfolio-muted: #b5b2aa;color-scheme:dark}.portfolio__header,.portfolio__footer{display:flex;justify-content:space-between;align-items:center;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.portfolio__header{padding-bottom:6rem}.portfolio__header-actions,.portfolio-social-links{display:flex;align-items:center}.portfolio__header-actions{gap:1.25rem}.portfolio-social-links{gap:.625rem}.portfolio-social-links a{display:grid;width:1rem;height:1rem;place-items:center}.portfolio-social-links svg{width:100%;height:100%}.portfolio a{color:inherit;text-decoration:none}.portfolio a:hover{text-decoration:underline;text-underline-offset:.2em}.portfolio__wordmark{font-weight:800;letter-spacing:-.04em;font-size:1.1rem}.portfolio__intro{max-width:64rem;padding-bottom:7rem}.portfolio__eyebrow,.portfolio-card__meta p{margin:0 0 .7rem;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.portfolio h1,.portfolio h2,.portfolio p{margin-top:0}.portfolio h1{max-width:14ch;margin-bottom:1.5rem;font-size:clamp(3.25rem,9vw,8rem);font-weight:400;line-height:.93;letter-spacing:-.065em}.portfolio__intro>p:last-child{max-width:38rem;margin-bottom:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.8vw,1.35rem);line-height:1.5}.portfolio__projects{display:grid;gap:4.5rem}.portfolio-card{display:grid;gap:1rem;border-top:1px solid var(--portfolio-rule);padding-top:1.5rem}.portfolio-card__visual{position:relative;display:grid;min-height:min(62vw,46rem);place-items:center;overflow:hidden}.portfolio-card__visual span{color:#1a1a1873;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(4rem,16vw,12rem);font-weight:600;letter-spacing:-.08em}.portfolio-card__visual img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;right:0;bottom:0;left:0}.portfolio-card__meta{display:flex;justify-content:space-between;gap:1rem;align-items:end}.portfolio-card__meta h2{margin-bottom:0;font-size:clamp(1.8rem,4vw,3.5rem);font-weight:400;line-height:1;letter-spacing:-.045em}.portfolio-card__meta time,.portfolio-card__summary{color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.875rem}.portfolio-card__summary{max-width:32rem;margin:0;line-height:1.5}.portfolio__contact{margin-top:9rem;padding:4rem 0;border-top:1px solid var(--portfolio-rule);border-bottom:1px solid var(--portfolio-rule)}.portfolio__contact h2{max-width:14ch;margin-bottom:2rem;font-size:clamp(2.5rem,6vw,5.5rem);font-weight:400;line-height:.95;letter-spacing:-.055em}.portfolio__contact a{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1rem;text-decoration:underline;text-underline-offset:.2em}.portfolio__footer{padding:1.25rem 0 .25rem;color:var(--portfolio-muted)}.portfolio a:focus-visible{outline:2px solid var(--portfolio-ink);outline-offset:.25rem}.portfolio__header-actions a[aria-current=page]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.32em}@supports (text-wrap: balance){.portfolio :where(h1,h2,h3,blockquote){text-wrap:balance}}@supports (text-wrap: pretty){.portfolio :where(.portfolio__intro-copy,.about-page__body,.about-page__note,.about-page__column p,.contact-page__copy p,.photoblog-post-page__summary){text-wrap:pretty}}@media(min-width:48rem){.portfolio__header{padding-bottom:9rem}.portfolio__projects{grid-template-columns:repeat(var(--nhs-grid-columns),minmax(0,1fr));gap:7rem var(--nhs-grid-gap)}.portfolio-card{grid-column:span 7}.portfolio-card:nth-child(2n){grid-column:6 / span 7}.portfolio-card__visual{min-height:36rem}.portfolio__contact{margin-top:12rem;padding:6rem 0}}@media(prefers-reduced-motion:reduce){.portfolio{scroll-behavior:auto}.portfolio-entry{animation:none}}.portfolio-theme-toggle{position:relative;display:flex;align-items:center;box-sizing:border-box;width:2rem;height:1rem;margin:0;padding:.125rem;border:1px solid var(--portfolio-ink);border-radius:999px;background:transparent;color:inherit;cursor:pointer}.portfolio-theme-toggle__thumb{display:block;width:.5rem;height:.5rem;border-radius:50%;background:var(--portfolio-ink);transition:transform .16s ease}.portfolio-theme-toggle[aria-checked=true] .portfolio-theme-toggle__thumb{transform:translate(1.125rem)}.portfolio-grid-toggle{display:grid;width:1rem;height:1rem;padding:0;margin:0;border:0;place-items:center;background:transparent;color:inherit;cursor:pointer}.portfolio-grid-toggle svg{width:100%;height:100%}.portfolio-grid-overlay{position:fixed;z-index:5;inset:0 var(--nhs-page-gutter);display:grid;grid-template-columns:repeat(var(--nhs-grid-columns),minmax(0,1fr));gap:var(--nhs-grid-gap);pointer-events:none}.portfolio-grid-overlay span{border-right:1px solid var(--nhs-grid-line);border-left:1px solid var(--nhs-grid-line);background:var(--nhs-grid-fill)}.portfolio-grid-overlay span:last-child{border-right:1px solid var(--nhs-grid-line)}.portfolio-grid-overlay__guide{position:absolute;right:0;left:0;border-top:1px solid var(--nhs-grid-line)}.portfolio-grid-overlay__guide--header{top:var(--portfolio-grid-header-end)}.portfolio-grid-overlay__guide--contact{top:var(--portfolio-grid-contact-start)}.portfolio__header-brand{display:flex;align-items:center;gap:.75rem;min-width:0}.portfolio__header-title{color:var(--portfolio-muted);font-size:1rem;font-weight:500;font-variant-caps:all-small-caps;letter-spacing:.04em;pointer-events:none;text-transform:none;white-space:nowrap}.portfolio-mobile-menu-toggle,.portfolio-mobile-menu{display:none}@media(max-width:47.99rem){.portfolio__header-actions--desktop{display:none}.portfolio-mobile-menu-toggle{position:relative;z-index:31;display:grid;width:2rem;height:2rem;padding:.35rem;border:0;background:transparent;cursor:pointer;gap:.32rem;place-content:center}.portfolio-mobile-menu-toggle span{display:block;width:1.25rem;height:1px;background:currentColor}.portfolio-mobile-menu{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;padding:1.5rem 1.25rem;background:var(--portfolio-paper)}.portfolio-mobile-menu__close{align-self:flex-end;width:2rem;height:2rem;padding:0;border:0;background:transparent;color:var(--portfolio-ink);font-size:2rem;line-height:1;cursor:pointer}.portfolio-mobile-menu__links{display:grid;gap:1rem;margin:auto 0}.portfolio-mobile-menu__links a{width:fit-content;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.75rem,12vw,4.5rem);font-weight:400;letter-spacing:-.06em;line-height:.95;text-decoration:none}.portfolio-mobile-menu .portfolio-social-links{align-self:center;gap:1rem}.portfolio-mobile-menu .portfolio-social-links a{width:1.25rem;height:1.25rem}}@media(max-width:47.99rem){.portfolio__header-title{display:none}.portfolio-grid-overlay{grid-template-columns:repeat(var(--nhs-grid-columns),minmax(0,1fr))}.portfolio-grid-overlay span:nth-child(n+5){display:none}.portfolio-grid-overlay span:nth-child(4){border-right:1px solid var(--nhs-grid-line)}}.portfolio__intro-copy{max-width:38rem;margin-bottom:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.8vw,1.35rem);line-height:1.5;white-space:pre-line}.portfolio__intro h1{white-space:pre-line}.portfolio-image-caption{position:absolute;z-index:1;bottom:.5rem;left:.5rem;margin:0;color:var(--portfolio-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:5pt;line-height:1.2;pointer-events:none}.portfolio__contact h2{white-space:pre-line}.portfolio__header{flex-wrap:wrap}.portfolio__breadcrumbs{display:flex;flex-basis:100%;align-items:center;gap:.35rem;margin-top:1rem;font:600 .62rem/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.portfolio__breadcrumb{display:inline-flex;align-items:center;gap:.35rem}.portfolio__breadcrumb>:last-child{display:inline-flex;min-height:1.75rem;align-items:center;padding:0 .55rem;border:1px solid var(--portfolio-rule)}.portfolio__breadcrumb a{transition:border-color .16s ease,background .16s ease,color .16s ease;text-decoration:none}.portfolio__breadcrumb a:hover,.portfolio__breadcrumb a:focus-visible{border-color:var(--portfolio-ink);background:var(--portfolio-ink);color:var(--portfolio-paper);text-decoration:none}.portfolio__breadcrumb [aria-current=page]{border-color:var(--portfolio-ink);color:var(--portfolio-ink)}.portfolio__breadcrumb-separator{color:var(--portfolio-muted)}.portfolio-social-controls{display:flex;align-items:center;gap:.75rem}.portfolio__header-actions--desktop .portfolio-social-links{margin-left:.75rem}.portfolio-grid-overlay span:nth-of-type(12){border-right:1px solid var(--nhs-grid-line)}@media(max-width:47.99rem){.portfolio-mobile-menu>.portfolio-grid-toggle,.portfolio-mobile-menu>.portfolio-theme-toggle{display:initial}.portfolio-mobile-menu .portfolio-social-links{display:flex;flex-direction:row;align-self:center;justify-content:center;width:100%;margin-top:auto;margin-bottom:env(safe-area-inset-bottom)}.portfolio-mobile-menu .portfolio-social-controls{display:flex;flex-direction:row;align-items:center;align-self:center;justify-content:center;gap:1rem;width:100%;margin-top:auto;padding-bottom:env(safe-area-inset-bottom)}.portfolio-mobile-menu .portfolio-social-controls .portfolio-social-links{width:auto;margin:0}.portfolio-mobile-menu .portfolio-social-controls .portfolio-grid-toggle,.portfolio-mobile-menu .portfolio-social-controls .portfolio-theme-toggle{margin:0}}.about-page__intro{display:grid;gap:clamp(1.5rem,3vw,3rem);padding-bottom:clamp(4.5rem,10vw,9rem)}.about-page__copy{max-width:34rem;align-self:start;container-type:inline-size}.about-page__copy h1{max-width:none;font-size:min(clamp(2.75rem,5.5vw,5.5rem),11.5cqw);line-height:.95;white-space:pre-line}.about-page__body{max-width:32rem;margin-bottom:0;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55;-webkit-hyphens:auto;hyphens:auto;text-align:justify;text-align-last:left;text-justify:inter-word;white-space:pre-line}.about-page__copy-rule{width:100%;max-width:32rem;margin-top:1.5rem;border-top:1px solid var(--portfolio-rule)}.portfolio .about-page__note{max-width:32rem;margin-top:clamp(2.5rem,5vw,4rem);margin-bottom:0;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.6875rem;line-height:1.5;-webkit-hyphens:auto;hyphens:auto;text-align:justify;text-align-last:left;text-justify:inter-word;white-space:pre-line}.about-page__categories{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.about-page__categories a{display:inline-flex;min-height:1.75rem;align-items:center;padding:0 .55rem;border:1px solid var(--portfolio-rule);border-radius:999px;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.6875rem;line-height:1.2;text-decoration:none;transition:border-color .16s ease,background .16s ease,color .16s ease}.about-page__categories a:hover,.about-page__categories a:focus-visible{border-color:var(--portfolio-ink);background:var(--portfolio-ink);color:var(--portfolio-paper);text-decoration:none}.about-page__image{position:relative;width:100%;aspect-ratio:3 / 2;margin:0;align-self:start;justify-self:stretch;background:var(--portfolio-paper)}.about-page__image img,.about-page__image--placeholder>div{display:block;width:100%;height:100%}.about-page__columns{display:grid;gap:2rem;margin-bottom:clamp(1.25rem,2.5vw,2rem);padding-top:3rem;border-top:1px solid var(--portfolio-rule)}.about-page__column h2{margin:0 0 .75rem;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.about-page__column p{margin:0;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.6875rem;line-height:1.5;white-space:pre-line}.about-page__logos{border-top:1px solid var(--portfolio-rule);padding-top:3rem;margin-bottom:clamp(1.25rem,2.5vw,2rem)}.about-page__logos-title{margin:0 0 1.25rem;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-align:left;text-transform:uppercase}.about-page__logos-list{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 4rem}.about-page .portfolio__contact{margin-top:4.5rem}.about-page__logo{display:grid;width:5.5rem;aspect-ratio:1;place-items:center;padding:1rem;border:1px solid var(--portfolio-rule);border-radius:50%}.about-page__logo--image{border-color:transparent}.about-page__logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}.about-page__logo span{color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase}.about-page__image img{object-fit:contain}.about-page__image--placeholder>div{display:grid;place-items:center;color:#1a1a1885;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(1rem,2vw,1.4rem);letter-spacing:.08em;text-transform:uppercase}@media(min-width:48rem){.about-page__columns{grid-template-columns:repeat(3,minmax(0,1fr))}.about-page__intro{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:end}.about-page .portfolio__contact{margin-top:6rem}}.home-booking{margin-top:clamp(6rem,12vw,12rem);padding:clamp(3rem,6vw,6rem) 0;border-top:0;border-bottom:1px solid var(--portfolio-rule)}.contact-page .home-booking{margin-top:0;border-bottom:0}.home-booking__heading{display:grid;gap:clamp(2.5rem,5vw,6rem);margin-bottom:clamp(2.5rem,5vw,5rem)}.home-booking__intro{display:grid;align-content:start;gap:1rem}.home-booking__intro h2{max-width:12ch;margin:0;font-size:clamp(2.5rem,6vw,5.5rem);font-weight:400;line-height:.95;letter-spacing:-.055em}.home-booking__intro>p:last-child{max-width:34rem;margin:0;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.5}.home-booking__image{aspect-ratio:4 / 3;margin:0;overflow:hidden;background:var(--portfolio-rule)}.home-booking__image .portfolio-image,.home-booking__image--placeholder>div{display:grid;width:100%;height:100%;place-items:center}.home-booking__image .portfolio-image{object-fit:cover}.home-booking__image--placeholder>div{color:var(--portfolio-muted);font:.68rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase}.home-booking__layout{display:grid;gap:clamp(2.5rem,6vw,7rem);align-items:start}.home-booking__week{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;font:700 .72rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}.home-booking__week span{margin-right:auto}.home-booking__availability{position:relative}.home-booking__scopes{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1.25rem}.home-booking__scope{min-height:2rem;padding:.45rem .7rem;border:1px solid var(--portfolio-rule);border-radius:999px;background:transparent;color:inherit;cursor:pointer;font:.68rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.035em}.home-booking__scope:hover,.home-booking__scope:focus-visible{border-color:var(--portfolio-ink)}.home-booking__scope.is-active{border-color:var(--portfolio-ink);background:var(--portfolio-ink);color:var(--portfolio-paper)}.home-booking__scope:disabled{cursor:wait;opacity:.55}.home-booking__week button{display:grid;width:2rem;height:2rem;padding:0;border:1px solid var(--portfolio-rule);place-items:center;background:transparent;color:inherit;cursor:pointer}.home-booking__week button:disabled{cursor:wait;opacity:.45}.home-booking__calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;transition:opacity .2s ease}.home-booking__calendar section h3{display:grid;gap:.25rem;margin:0 0 .5rem;padding-bottom:.5rem;border-bottom:1px solid var(--portfolio-rule);color:var(--portfolio-ink);font:600 .7rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;text-transform:uppercase}.home-booking__calendar h3 span{color:var(--portfolio-muted);font-weight:400}.home-booking__slot{position:relative;display:block;min-height:2.75rem;margin-bottom:.35rem;border:1px solid var(--portfolio-rule);background:var(--portfolio-paper);cursor:pointer}.home-booking__slot input{position:absolute;opacity:0}.home-booking__slot span{display:grid;height:100%;padding:.6rem;place-items:center;font:.72rem/1 ui-monospace,SFMono-Regular,Menlo,monospace}.home-booking__slot:has(input:checked){border-color:var(--portfolio-ink);background:var(--portfolio-ink);color:var(--portfolio-paper)}.home-booking__slot.is-busy{cursor:not-allowed;opacity:1;border-style:dashed;color:var(--portfolio-muted);background-color:var(--portfolio-paper);background-image:repeating-linear-gradient(135deg,color-mix(in srgb,currentColor 16%,transparent) 0 1px,transparent 1px 7px)}.home-booking__slot.is-busy span{opacity:.28}.home-booking__selection{min-height:1.2em;margin:2rem 0 0;padding:1rem;border:1px solid var(--portfolio-rule);color:var(--portfolio-muted);font:.72rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;transition:opacity .2s ease}.home-booking__availability.is-loading .home-booking__calendar,.home-booking__availability.is-loading .home-booking__selection{opacity:.32}.home-booking__loader{position:absolute;top:2rem;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.home-booking__loader>span:first-child{color:var(--portfolio-ink);font:2rem/1 Georgia,Times New Roman,serif;animation:home-booking-loader-spin .7s linear infinite}.home-booking__loader .screen-reader-text{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes home-booking-loader-spin{to{transform:rotate(1turn)}}.home-booking__form{display:grid;gap:1rem;padding:2rem;border:1px solid var(--portfolio-rule)}.home-booking__form p{margin:0}.home-booking__form label{display:grid;gap:.45rem;font:600 .75rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.home-booking__form input:not([type=checkbox]),.home-booking__form textarea{box-sizing:border-box;width:100%;padding:.75rem;border:1px solid var(--portfolio-rule);border-radius:0;background:transparent;color:inherit;font:inherit}.home-booking__consent{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:.55rem;font-weight:400!important;line-height:1.4!important;text-align:left}.home-booking__consent input{margin-top:.16rem}.home-booking__consent span{min-width:0}.home-booking__consent a{color:inherit;text-decoration:underline;text-underline-offset:.16em}.home-booking__form button{width:fit-content;padding:.85rem 1rem;border:1px solid currentColor;border-radius:0;background:var(--portfolio-ink);color:var(--portfolio-paper);cursor:pointer;font:700 .7rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.07em;text-transform:uppercase}.home-booking__form button:disabled{cursor:wait;opacity:.65}.home-booking__submission{display:grid;gap:.5rem;margin:0;color:var(--portfolio-muted);font:.72rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.home-booking__submission.is-sending{grid-template-columns:auto 1fr;align-items:center}.home-booking__submission.is-sending>span:first-child{color:var(--portfolio-ink);font:1.25rem/1 Georgia,Times New Roman,serif;animation:home-booking-loader-spin .7s linear infinite}.home-booking__submission.is-sending:after{grid-column:1 / -1;height:1px;content:"";background:linear-gradient(90deg,transparent,var(--portfolio-ink),transparent);background-size:200% 100%;animation:home-booking-submission-progress 1s ease-in-out infinite}.home-booking__submission.is-success{color:var(--portfolio-ink)}.home-booking__submission.is-error{color:#b3271f}@keyframes home-booking-submission-progress{to{background-position:-200% 0}}.home-booking__loading{margin:0;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.nhs-booking__trap{position:absolute!important;left:-9999px!important}@media(min-width:64rem){.home-booking__heading{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}.home-booking__layout{grid-template-columns:minmax(0,7fr) minmax(18rem,5fr)}.home-booking__form{margin-top:3rem}}@media(max-width:47.99rem){.home-booking__calendar{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}@media(prefers-reduced-motion:reduce){.home-booking__calendar,.home-booking__selection{transition:none}.home-booking__loader>span:first-child,.home-booking__submission.is-sending>span:first-child,.home-booking__submission.is-sending:after{animation:none}}.contact-page__intro{display:grid;gap:clamp(2rem,5vw,5rem);padding-bottom:clamp(4.5rem,10vw,9rem)}.contact-page__copy{max-width:34rem}.contact-page__copy h1{max-width:11ch;font-size:clamp(3rem,6vw,6rem);white-space:pre-line}.contact-page__copy>p:last-of-type{max-width:30rem;margin-bottom:2rem;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55}.contact-page__email,.contact-page__substack a{font-family:Inter,ui-sans-serif,system-ui,sans-serif;text-decoration:underline;text-underline-offset:.2em}.contact-page__email{display:block;width:fit-content}.contact-page__outline-button{display:inline-flex;align-items:center;gap:.55rem;width:fit-content;min-height:2.75rem;margin-top:1.25rem;padding:.625rem .875rem;border:1px solid var(--portfolio-ink);color:var(--portfolio-ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.8125rem;line-height:1;text-decoration:none}.contact-page__outline-button svg{width:1rem;height:1rem}.contact-page__outline-button--inactive{cursor:not-allowed;opacity:.55}.contact-page__substack-button{margin-top:0}.contact-page__substack-button img{display:block;width:1.1rem;height:1.1rem;object-fit:contain}.contact-page__image{width:100%;aspect-ratio:3 / 2;margin:0;justify-self:stretch;overflow:hidden}.contact-page__image img,.contact-page__image--placeholder>div{display:grid;width:100%;height:100%;place-items:center}.contact-page__image img{object-fit:contain}.contact-page__image--placeholder>div{color:#1a1a1885;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(1rem,2vw,1.4rem);letter-spacing:.08em;text-transform:uppercase}.contact-page__section{border-top:1px solid var(--portfolio-rule);padding:2rem 0}.contact-page__section h2{margin:0 0 1.5rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.contact-page__social-links{display:flex;flex-wrap:wrap;gap:.875rem}.contact-page__details-list{display:grid;gap:.65rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.contact-page__details-list a{width:fit-content;text-underline-offset:.2em}.contact-page__social-links a,.contact-page__social-link--inactive{display:grid;width:2rem;height:2rem;place-items:center;border:1px solid var(--portfolio-rule);color:var(--portfolio-ink)}.contact-page__social-links svg{width:1rem;height:1rem}.contact-page__social-link--inactive{cursor:not-allowed;opacity:.5}.contact-page__behance-mark{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:-.08em}.contact-page__faq{padding-bottom:clamp(4rem,8vw,7rem)}.contact-page__faq details{border-bottom:1px solid var(--portfolio-rule)}.contact-page__faq summary{display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 0;cursor:pointer}.contact-page__faq summary h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,2.5vw,2rem);font-weight:400;line-height:1.05;letter-spacing:-.03em}.contact-page__faq summary:after{content:"+"}.contact-page__faq details[open] summary:after{content:"−"}.contact-page__faq details p{max-width:38rem;margin:0 0 1.25rem;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.55;white-space:pre-line}@media(prefers-reduced-motion:no-preference){.contact-page__faq details[open] p{animation:contact-faq-reveal .22s ease-out both}}@keyframes contact-faq-reveal{0%{opacity:0;transform:translateY(-.35rem)}to{opacity:1;transform:translateY(0)}}@media(min-width:48rem){.contact-page__intro{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:end}.contact-page__section{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(0,2fr);gap:2rem}.contact-page__section h2{margin-bottom:0}.contact-page__faq-list{grid-column:2}}.portfolio__cover{margin:0 0 clamp(4.5rem,10vw,9rem)}.portfolio__cover img{display:block;width:100%;height:auto}.portfolio-card__media{display:grid;grid-template-columns:minmax(0,2fr) minmax(8rem,1fr);gap:clamp(1rem,3vw,3.5rem);align-items:center;text-decoration:none}.portfolio-card__primary,.portfolio-card__secondary{display:grid;place-items:center;overflow:hidden}.portfolio-card__primary{aspect-ratio:3 / 2}.portfolio-card__primary>span,.portfolio-card__secondary>span{color:#1a1a1880;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(.75rem,1.5vw,1rem);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.portfolio-card__secondary{aspect-ratio:2 / 3}.portfolio-card__primary img,.portfolio-card__secondary img{width:100%;height:auto;display:block}.portfolio-card__frame--image{aspect-ratio:auto}.portfolio-card:nth-child(2n) .portfolio-card__media{grid-template-columns:minmax(8rem,1fr) minmax(0,2fr)}.portfolio-card:nth-child(2n) .portfolio-card__primary{grid-column:2}.portfolio-card:nth-child(2n) .portfolio-card__secondary{grid-column:1;grid-row:1}@media(min-width:48rem){.portfolio-card,.portfolio-card:nth-child(2n){grid-column:1 / -1}}@media(max-width:48rem){.portfolio-card__media,.portfolio-card:nth-child(2n) .portfolio-card__media{grid-template-columns:1fr}.portfolio-card__primary,.portfolio-card:nth-child(2n) .portfolio-card__primary{grid-column:auto}.portfolio-card__secondary,.portfolio-card:nth-child(2n) .portfolio-card__secondary{grid-column:auto;grid-row:auto}}.portfolio__hero{position:relative;display:grid;gap:clamp(2rem,6vw,7rem);padding-bottom:clamp(4.5rem,10vw,9rem)}.portfolio__hero .portfolio__intro{padding-bottom:0}.portfolio__hero .portfolio__cover{margin:0;align-self:end}.portfolio__hero--parallax .portfolio__cover{overflow:hidden;clip-path:inset(0)}.portfolio__hero--parallax .portfolio__cover img{transform:scale(1.22);transform-origin:center;will-change:transform}.portfolio__cover--placeholder{aspect-ratio:3 / 2;display:grid;place-items:center;background:#d9e0dc;opacity:1}.portfolio__cover--position-top img{--portfolio-cover-y: top;object-position:center var(--portfolio-cover-y)}.portfolio__cover--position-center img{--portfolio-cover-y: center;object-position:center var(--portfolio-cover-y)}.portfolio__cover--position-bottom img{--portfolio-cover-y: bottom;object-position:center var(--portfolio-cover-y)}.portfolio__cover-placeholder span{color:#1a1a1885;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(1rem,2vw,1.4rem);letter-spacing:.08em;text-transform:uppercase}.portfolio__scroll-cue{position:absolute;bottom:clamp(1rem,2vw,1.5rem);left:50%;display:grid;width:2rem;height:2rem;place-items:center;transform:translate(-50%);color:var(--portfolio-ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.25rem;line-height:1;text-decoration:none}.portfolio__scroll-cue span{animation:portfolio-scroll-cue 1.8s ease-in-out infinite}.portfolio__scroll-cue:focus-visible{outline:2px solid var(--portfolio-ink);outline-offset:.25rem}@keyframes portfolio-scroll-cue{50%{transform:translateY(.25rem)}}@media(prefers-reduced-motion:reduce){.portfolio__hero--parallax .portfolio__cover img{transform:none;will-change:auto}.portfolio__scroll-cue span{animation:none}}@media(max-width:47.99rem){.portfolio__cover--mobile-position-left img{object-position:left var(--portfolio-cover-y, center)}.portfolio__cover--mobile-position-center img{object-position:center var(--portfolio-cover-y, center)}.portfolio__cover--mobile-position-right img{object-position:right var(--portfolio-cover-y, center)}}@media(min-width:48rem){.portfolio__hero:not(.portfolio__hero--full-cover){grid-template-columns:repeat(var(--nhs-grid-columns),minmax(0,1fr));column-gap:var(--nhs-grid-gap);align-items:end}.portfolio__hero:not(.portfolio__hero--full-cover) .portfolio__intro{grid-column:span 8}.portfolio__hero:not(.portfolio__hero--full-cover) .portfolio__cover{grid-column:span 4}}.portfolio__hero--full-cover{--portfolio-hero-text: #f4f2ed;--portfolio-hero-overlay: linear-gradient(90deg, rgb(0 0 0 / .52), rgb(0 0 0 / .12));display:block;min-height:min(48rem,82svh);padding:clamp(2rem,5vw,5rem);overflow:hidden;background:var(--portfolio-ink);color:var(--portfolio-hero-text)}.portfolio__hero--full-cover.portfolio__hero--text-dark{--portfolio-hero-text: #1a1a18;--portfolio-hero-overlay: linear-gradient(90deg, rgb(244 242 237 / .48), rgb(244 242 237 / .08))}.portfolio__hero--full-cover .portfolio__cover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%}.portfolio__hero--full-cover .portfolio__cover:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:var(--portfolio-hero-overlay)}.portfolio__hero--full-cover .portfolio__cover img,.portfolio__hero--full-cover .portfolio__cover--placeholder,.portfolio__hero--full-cover .portfolio__cover-placeholder{width:100%;height:100%}.portfolio__hero--full-cover .portfolio__cover img{object-fit:cover}.portfolio__hero--full-cover .portfolio__intro{position:relative;z-index:1;max-width:44rem;padding:clamp(8rem,25vh,16rem) 0 0}.portfolio__hero--full-cover .portfolio__eyebrow{color:currentColor;opacity:.72}.portfolio__hero--full-cover .portfolio__intro-copy{color:currentColor}.portfolio__hero--full-cover .portfolio__scroll-cue{z-index:1;color:currentColor}@media(min-width:48rem){.portfolio__hero--full-cover .portfolio__intro{max-width:calc((100% - (11 * 1.5rem)) / 12 * 8 + (7 * 1.5rem))}.portfolio__hero--full-cover .portfolio__intro h1,.portfolio__hero--full-cover .portfolio__intro-copy{max-width:none}}@media(min-width:120rem)and (min-height:60rem){.portfolio__hero--full-cover{min-height:85vh}}@media(max-width:47.99rem){.portfolio__header{padding-bottom:clamp(1.5rem,5vh,2.5rem)}.portfolio__hero{gap:1.5rem;padding-top:0;padding-bottom:3.5rem}.portfolio__hero--full-cover{min-height:calc(100svh - 5.5rem);padding:1.25rem}.portfolio__hero--full-cover .portfolio__intro{padding-top:clamp(3rem,10svh,5rem)}}.related-projects{margin:0 calc(-1 * var(--portfolio-page-edge, 1.25rem));padding:0 var(--portfolio-page-edge, 1.25rem) 2rem}.related-projects>h2{margin:0 0 1.5rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.related-projects__track{display:flex;gap:1rem;overflow-x:auto;padding:0 0 1rem;scroll-snap-type:x proximity;scrollbar-color:var(--portfolio-rule) transparent}.related-projects__card{flex:0 0 min(78vw,24rem);scroll-snap-align:start}.related-projects__media{display:grid;aspect-ratio:3 / 2;place-items:center;overflow:hidden}.related-projects__media img{width:100%;height:100%;object-fit:contain}.related-projects__media>span{color:#1a1a1875;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1.5rem,4vw,2.75rem);letter-spacing:-.06em}.related-projects__meta{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;padding-top:.75rem}.related-projects__meta p,.related-projects__meta time{margin:0;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}.related-projects__meta h3{grid-column:1 / -1;margin:0;font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:400;letter-spacing:-.045em;line-height:1}@media(min-width:48rem){.related-projects{--portfolio-page-edge: 2rem;padding-bottom:3rem}.related-projects__track{gap:1.5rem}.related-projects__card{flex-basis:min(58vw,44rem)}}.portfolio-card__link{width:fit-content;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.project-gallery{columns:1;column-gap:1.5rem;padding:clamp(2.5rem,5vw,4rem) 0 clamp(4rem,9vw,8rem)}.project-gallery__item{break-inside:avoid;min-width:0;margin:0 0 clamp(2rem,4vw,5rem)}.project-gallery__frame{position:relative;display:grid;place-items:center;overflow:hidden}.project-gallery__frame{width:100%;padding:0;border:0;cursor:zoom-in}.project-lightbox{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#0a0a0ac7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.project-lightbox__content{width:min(82vw,75rem);height:80vh;margin:0;color:#fff;text-align:left}.project-lightbox__content img,.project-lightbox__content>div{display:block;width:100%;height:100%;margin:auto}.project-lightbox__content img{object-fit:contain}.project-lightbox__content>div:not(.portfolio-placeholder){display:grid;place-items:center;color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.project-lightbox__content figcaption{margin-top:.5rem;font:5pt ui-monospace,monospace}.project-lightbox button{color:#fff;background:transparent;border:0;font-size:2rem;cursor:pointer}.project-lightbox__close{position:absolute;top:1rem;right:1.25rem}.project-lightbox__previous,.project-lightbox__next{position:absolute;top:50%;transform:translateY(-50%)}.project-lightbox__previous{left:1rem}.project-lightbox__next{right:1rem}.project-gallery__frame img{display:block;width:100%;height:auto}.project-gallery__frame>span{color:#1a1a187a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(2rem,5vw,4rem);letter-spacing:-.06em}.project-gallery__frame .portfolio-image-ratio{position:absolute;z-index:1;right:.5rem;bottom:.5rem;color:var(--portfolio-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:5pt;line-height:1.2;pointer-events:none}.project-page__empty{min-height:70vh;display:grid;align-content:center;max-width:50rem}.project-page__photography-details{display:grid;gap:2rem;padding:clamp(2rem,4vw,3.5rem) 0;border-top:1px solid var(--portfolio-rule);border-bottom:1px solid var(--portfolio-rule)}.project-page__photography-details h1{max-width:18ch;margin:.4rem 0 1rem;font-size:clamp(2rem,3.4vw,3.75rem);font-weight:400;letter-spacing:-.055em;line-height:.98}.project-page__photography-summary{max-width:40rem;margin:0;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(.95rem,1.3vw,1.1rem);line-height:1.55}.project-page__photography-facts{display:grid;gap:.7rem;align-content:start;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.76rem;line-height:1.45}.project-page__photography-facts div{display:grid;grid-template-columns:minmax(7rem,.8fr) minmax(0,1.2fr);gap:1rem;padding-top:.7rem;border-top:1px solid var(--portfolio-rule)}.project-page__photography-facts dt{color:var(--portfolio-muted);text-transform:uppercase}.project-page__photography-facts dd{margin:0;white-space:pre-line}.project-page__design-layout{display:grid;gap:clamp(2.5rem,5vw,5rem);align-items:start}.project-page__design-details{padding-top:clamp(1rem,3vw,2.5rem)}.project-page__design-details h1{margin-bottom:1.5rem;font-size:clamp(2.4rem,4vw,4.5rem)}.project-page__design-excerpt{margin:0 0 1rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.5}.project-page__design-description{margin:0;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.9rem;line-height:1.6;white-space:pre-line}.project-page__design-layout .project-gallery{padding-top:0}.project-page__design-layout+.related-projects{margin-top:clamp(3rem,8vw,8rem)}@media(min-width:48rem){.project-page__photography-details--with-facts{grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr);gap:clamp(3rem,8vw,9rem)}.project-page__photography-facts{padding-top:2.2rem}}@media(min-width:75rem){.project-page__design-layout{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}.project-page__design-details{position:sticky;top:2rem}.project-page__design-layout .project-gallery--design{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem}.project-page__design-layout .project-gallery--design .project-gallery__item{margin-bottom:clamp(2rem,4vw,5rem)}.project-page__design-layout .project-gallery--design .project-gallery__item--full{grid-column:1 / -1}}@media(min-width:48rem){.project-gallery{columns:2}}@media(min-width:75rem){.project-gallery{columns:3}}.projects-page__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.projects-page__context{display:grid;gap:2rem;padding-bottom:clamp(2.5rem,5vw,4rem)}.projects-page__lead{max-width:34rem;margin-bottom:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.8vw,1.25rem);line-height:1.5}.projects-page__categories{display:flex;flex-wrap:wrap;gap:.5rem;align-content:start;padding:0;margin:0;list-style:none}.projects-page__categories li{display:flex}.projects-page__categories a{display:inline-flex;min-height:2rem;align-items:center;padding:0 .7rem;border:1px solid var(--portfolio-rule);border-radius:999px;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;letter-spacing:.04em;text-decoration:none;transition:border-color .16s ease,background .16s ease,color .16s ease}.projects-page__categories a:hover,.projects-page__categories a:focus-visible{border-color:var(--portfolio-ink);background:var(--portfolio-ink);color:var(--portfolio-paper);text-decoration:none}.projects-page__list{display:block;padding-bottom:clamp(2.5rem,5vw,4rem)}.projects-page__masonry{display:grid;grid-template-columns:1fr;gap:clamp(2.5rem,4vw,4rem)}.projects-page__masonry-column{display:grid;align-content:start;gap:clamp(2.5rem,4vw,4rem)}.projects-page__masonry .portfolio-card,.projects-page__masonry .portfolio-card:nth-child(2n){grid-column:auto}.projects-page__masonry .portfolio-card__media,.projects-page__masonry .portfolio-card:nth-child(2n) .portfolio-card__media{display:block}.projects-page__masonry .portfolio-card__primary,.projects-page__masonry .portfolio-card:nth-child(2n) .portfolio-card__primary{grid-column:auto;aspect-ratio:3 / 2}.projects-page__masonry .portfolio-card__primary.portfolio-card__frame--image{aspect-ratio:auto}.projects-page__pagination{display:flex;gap:.5rem;align-items:center;padding-top:clamp(1.25rem,2.5vw,2rem);padding-bottom:clamp(4rem,9vw,8rem);border-top:1px solid var(--portfolio-rule)}.projects-page__pagination a,.projects-page__pagination span{display:grid;width:2.25rem;height:2.25rem;place-items:center;border:1px solid var(--portfolio-line);color:inherit;text-decoration:none}.projects-page__pagination [aria-current=page]{color:var(--portfolio-bg);background:var(--portfolio-text);border-color:var(--portfolio-text)}.projects-page__pagination-next{margin-left:.5rem}.projects-page .portfolio__contact{margin-top:0}.portfolio-collection-load{display:grid;place-items:center;padding:clamp(2rem,5vw,4rem) 0 clamp(4rem,8vw,7rem);border-top:1px solid var(--portfolio-rule)}.portfolio-collection-load button{padding:.7rem 1rem;border:1px solid var(--portfolio-ink);background:transparent;color:var(--portfolio-ink);font:inherit;cursor:pointer}.portfolio-collection-load button:hover,.portfolio-collection-load button:focus-visible{background:var(--portfolio-ink);color:var(--portfolio-paper)}@media(min-width:48rem){.projects-page__context{grid-template-columns:minmax(0,1fr) minmax(20rem,.9fr)}.projects-page__categories{justify-content:flex-end}.projects-page__masonry{grid-template-columns:repeat(3,minmax(0,1fr))}}.photoblog-page__intro{display:grid;gap:2rem;padding-bottom:clamp(3rem,7vw,7rem)}.photoblog-page__intro h1{margin-bottom:.75rem;font-size:clamp(2.5rem,5.4vw,6rem)}.photoblog-page__intro p:not(.portfolio__eyebrow){max-width:38rem}.photoblog-page__categories{display:flex;flex-wrap:wrap;gap:.5rem;align-content:start;padding:0;margin:0;list-style:none}.photoblog-page__categories li{display:flex}.photoblog-page__categories a{display:inline-flex;min-height:2rem;align-items:center;padding:0 .7rem;border:1px solid var(--portfolio-rule);border-radius:999px;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;letter-spacing:.04em;text-decoration:none;transition:border-color .16s ease,background .16s ease,color .16s ease}.photoblog-page__categories a:hover,.photoblog-page__categories a:focus-visible{border-color:var(--portfolio-ink);background:var(--portfolio-ink);color:var(--portfolio-paper);text-decoration:none}.photoblog-page__entries{columns:1;column-gap:1.5rem;padding-bottom:clamp(2rem,4vw,4rem)}.photoblog-card{break-inside:avoid;margin:0 0 3rem;font-family:Inter,sans-serif}.photoblog-card__link{display:block;color:inherit;text-decoration:none}.photoblog-card__link:hover,.photoblog-card__link:focus-visible{text-decoration:none}.photoblog-card__image{position:relative;display:grid;place-items:center;margin-bottom:.75rem;overflow:hidden;color:#1a1a187f;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;text-transform:uppercase}.photoblog-card__image img{width:100%;height:100%;object-fit:cover}.photoblog-card__image>.portfolio-image-loader{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--portfolio-rule);color:var(--portfolio-muted);font:600 .65rem/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.1em}.photoblog-card__image--external{display:block;background:transparent}.photoblog-card__image--external img{display:block;width:100%;height:auto;object-fit:contain}.photoblog-card__image--substack img{aspect-ratio:3 / 2;object-fit:cover}.photoblog-card__ratio{position:absolute;right:.5rem;bottom:.5rem;color:#1a1a1894;font-size:.625rem;letter-spacing:.04em}.photoblog-card__ratio--external{padding:.28rem .4rem;background:#121210d6;color:#fffffff0;font-size:.6rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.photoblog-card__meta{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.photoblog-card time,.photoblog-card h2{margin:0;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;font-weight:400;line-height:1.3}.photoblog-card h2{color:var(--portfolio-ink);text-align:right}.photoblog-card__summary{margin:.5rem 0 0;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.6875rem;line-height:1.5}.photoblog-page__pagination{display:flex;gap:.5rem;align-items:center;padding-top:clamp(1.25rem,2.5vw,2rem);padding-bottom:clamp(4rem,9vw,8rem);border-top:1px solid var(--portfolio-rule)}.photoblog-page__pagination a,.photoblog-page__pagination span{display:grid;width:2.25rem;height:2.25rem;place-items:center;border:1px solid var(--portfolio-line);color:inherit;text-decoration:none}.photoblog-page__pagination [aria-current=page]{color:var(--portfolio-bg);background:var(--portfolio-text);border-color:var(--portfolio-text)}.photoblog-page__pagination-next{margin-left:.5rem}.photoblog-post-page__columns{display:grid;gap:clamp(3rem,7vw,9rem);align-items:start}.photoblog-post-page__intro{padding-bottom:clamp(2rem,4vw,3.5rem)}.photoblog-post-page__intro h1{max-width:none;margin:0 0 1rem;font-size:min(clamp(2.75rem,5.5vw,5.5rem),12cqw);line-height:.95}.photoblog-post-page__summary{max-width:38rem;margin:0 0 1.25rem;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55}.photoblog-post-page__date{margin:0 0 1rem;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.photoblog-post-page__cover{position:relative;display:grid;place-items:center;margin:0;overflow:hidden;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.photoblog-post-page__cover img{display:block;width:100%;height:100%;object-fit:cover}.photoblog-post-page__cover figcaption{position:absolute;bottom:.5rem;left:.5rem;color:#fff;font-size:.625rem;letter-spacing:.04em;text-shadow:0 1px 3px rgb(0 0 0 / .6)}.photoblog-post-page__article{min-width:0;container-type:inline-size}.photoblog-post-page__content{max-width:46rem;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55}.photoblog-post-page__content>:first-child{margin-top:0}.photoblog-post-page__content img{max-width:100%;height:auto}.photoblog-post-page__content figure{margin:clamp(2rem,5vw,4rem) 0}.photoblog-post-page__content figcaption{margin-top:.7rem;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.photoblog-post-page__content blockquote{max-width:32rem;margin:clamp(2rem,5vw,4rem) 0;padding-left:1.25rem;border-left:1px solid var(--portfolio-ink);color:var(--portfolio-ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.08}.photoblog-post-page__content blockquote p{margin:0}.photoblog-post-page__terms,.photoblog-post-page__aside-terms{display:flex;flex-wrap:wrap;gap:.5rem}.photoblog-post-page__terms{padding:0}.photoblog-post-page__terms a,.photoblog-post-page__aside-terms a{display:inline-flex;min-height:2rem;align-items:center;padding:0 .7rem;border:1px solid var(--portfolio-rule);border-radius:999px;color:var(--portfolio-muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;letter-spacing:.04em;text-decoration:none;transition:border-color .16s ease,background .16s ease,color .16s ease}.photoblog-post-page__terms a:hover,.photoblog-post-page__terms a:focus-visible,.photoblog-post-page__aside-terms a:hover,.photoblog-post-page__aside-terms a:focus-visible{color:var(--portfolio-paper);border-color:var(--portfolio-ink);background:var(--portfolio-ink);text-decoration:none}.photoblog-post-page__aside{align-self:start;display:grid;gap:1rem;max-width:16rem;padding:2em;border:1px solid var(--portfolio-rule)}.photoblog-post-page__aside .portfolio__eyebrow{margin:0}.photoblog-post-page__author-image{display:grid;width:4rem;aspect-ratio:1;place-items:center;overflow:hidden;border-radius:50%;background:var(--portfolio-rule);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.625rem}.photoblog-post-page__author-image img{width:100%;height:100%;object-fit:cover}.photoblog-post-page__author-bio{margin:0;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;line-height:1.6;white-space:pre-line}.photoblog-post-page__aside-section,.photoblog-post-page__aside-note{display:grid;gap:.75rem;padding-top:1rem}.photoblog-post-page__aside-note p:last-child{margin:0;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;line-height:1.55;white-space:pre-line}.photoblog-post-page__substack{display:grid;gap:1rem;margin-top:clamp(3rem,6vw,6rem);padding:clamp(1.5rem,3vw,2.5rem);background:var(--portfolio-rule)}.photoblog-post-page__substack .portfolio__eyebrow,.photoblog-post-page__substack h2{margin:0}.photoblog-post-page__substack h2{max-width:11ch;font-size:clamp(2rem,4vw,3.5rem);font-weight:400;line-height:.95}.photoblog-post-page__substack a{width:fit-content;padding:.65rem .85rem;border:1px solid var(--portfolio-ink);color:var(--portfolio-ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.75rem;text-decoration:none}.photoblog-post-page__substack a:hover,.photoblog-post-page__substack a:focus-visible{color:var(--portfolio-paper);background:var(--portfolio-ink);text-decoration:none}.photoblog-post-page__divider{margin-top:clamp(4rem,9vw,10rem);border-top:1px solid var(--portfolio-rule)}.photoblog-post-page__related{padding:clamp(2rem,5vw,4rem) 0 clamp(4rem,9vw,8rem)}.photoblog-post-page__related-track{display:flex;gap:1.5rem;margin-top:1.5rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x proximity;scrollbar-color:var(--portfolio-rule) transparent}.photoblog-post-page__related-item a{color:inherit;text-decoration:none}.photoblog-post-page__related-item{flex:0 0 min(78vw,25rem);scroll-snap-align:start}.photoblog-post-page__related-image{display:grid;place-items:center;overflow:hidden;color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.photoblog-post-page__related-image img{width:100%;height:100%;object-fit:cover}.photoblog-post-page__related-item p,.photoblog-post-page__related-item h2,.photoblog-post-page__related-item>a>span{display:block;margin:.6rem 0 0}.photoblog-post-page__related-item p,.photoblog-post-page__related-item>a>span{color:var(--portfolio-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.68rem}.photoblog-post-page__related-item h2{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,2.5vw,2.25rem);font-weight:400}.photoblog-post-page__missing{min-height:42vh;padding-bottom:clamp(5rem,10vw,9rem)}@media(min-width:48rem){.photoblog-page__intro{grid-template-columns:minmax(0,1fr) minmax(20rem,.9fr)}.photoblog-page__intro h1{white-space:nowrap}.photoblog-page__categories{justify-content:flex-end}.photoblog-page__entries{columns:2}}@media(min-width:48rem){.photoblog-post-page__columns{grid-template-columns:minmax(0,1fr) minmax(12rem,.28fr)}.photoblog-post-page__aside{position:sticky;top:2rem}.photoblog-post-page__related-item{flex-basis:min(58vw,44rem)}}@media(min-width:75rem){.photoblog-page__entries{columns:3}}
