.portfolio__work-card{gap:var(--space-element-gap);padding:var(--space-component-gap) 0;color:inherit;grid-template-columns:1fr;text-decoration:none;display:grid}.portfolio__work-card-text{gap:calc(var(--space-element-gap) / 2);flex-direction:column;display:flex}.portfolio__work-card-title{font-family:var(--font-family-heading);font-size:var(--font-size-body);font-weight:var(--font-weight-heading);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary);transition:color var(--duration-interaction) var(--easing-default)}.portfolio__work-card:hover .portfolio__work-card-title{color:var(--color-accent-default)}.portfolio__work-card-tags{flex-wrap:wrap;gap:0;margin:0;padding:0;list-style:none;display:flex}.portfolio__work-card-tag{font-family:var(--font-family-base);font-size:var(--font-size-caption);font-weight:var(--font-weight-label);letter-spacing:var(--letter-spacing-label);text-transform:lowercase;color:var(--color-text-secondary);line-height:1}.portfolio__work-card-tag+.portfolio__work-card-tag:before{content:"·";color:var(--color-border-strong);padding-inline:.4em}.portfolio__work-card-description{font-family:var(--font-family-base);font-size:var(--font-size-small);color:var(--color-text-secondary);line-height:var(--line-height-small);margin-top:calc(var(--space-element-gap) / 2)}.portfolio__work-card-outcome{font-family:var(--font-family-base);font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-label);letter-spacing:var(--letter-spacing-label);color:var(--color-accent-default);text-transform:lowercase;margin-top:calc(var(--space-element-gap) / 2)}.portfolio__work-card-media{aspect-ratio:4/3;background:var(--card-media-bg,var(--color-surface-secondary));border-radius:var(--border-radius-image);width:100%;transition:box-shadow var(--duration-interaction) var(--easing-default);position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0000}.portfolio__work-card:hover .portfolio__work-card-media{box-shadow:inset 0 0 0 1px var(--color-border-strong)}.portfolio__work-card-media-frame{will-change:transform;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.portfolio__work-card-media-frame{will-change:auto}}.portfolio__work-card-thumb{object-fit:var(--card-thumb-fit,cover);width:100%;height:100%;display:block}.portfolio__work-card-placeholder{background:var(--color-border-default);border-radius:calc(var(--border-radius-component) / 2);opacity:.4;width:100%;height:100%}.portfolio__work-card:focus-visible{outline:var(--focus-ring-width) solid var(--color-border-focus);outline-offset:var(--focus-ring-offset)}
.principle-carousel{gap:var(--space-component-gap);flex-direction:column;display:flex}.principle-carousel__header{align-items:flex-end;gap:var(--space-element-gap);flex-wrap:wrap;display:flex}.principle-carousel__title{flex:14ch;min-width:0}.principle-carousel__track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:stretch;width:100%;display:flex;overflow-x:auto}.principle-carousel__track::-webkit-scrollbar{display:none}.principle-carousel__slide{justify-content:center;align-items:flex-start;gap:var(--space-element-gap);padding-block:var(--space-layout-margin);text-align:start;scroll-snap-align:center;scroll-snap-stop:always;flex-direction:column;flex:0 0 100%;display:flex}.principle-carousel__number{font-family:var(--font-family-base);font-size:var(--font-size-h1-fluid);font-weight:var(--font-weight-display);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-heading);line-height:1}.principle-carousel__text{font-family:var(--font-family-base);font-size:var(--font-size-body);color:var(--color-text-primary);line-height:var(--line-height-body);max-width:56ch}.principle-carousel__controls{gap:var(--space-inline-gap);margin-inline-start:auto;display:none}.principle-carousel__control{isolation:isolate;width:var(--principle-carousel-control-size);height:var(--principle-carousel-control-size);border-radius:var(--border-radius-pill);color:var(--color-text-primary);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:inline-grid;position:relative}.principle-carousel__control:before{content:"";z-index:-1;border-radius:var(--border-radius-pill);background:var(--color-surface-secondary);opacity:0;transition:opacity var(--duration-fast) var(--easing-out);position:absolute;inset:0}.principle-carousel__control-icon{width:var(--size-icon-md);height:var(--size-icon-md);pointer-events:none;transition:opacity var(--duration-fast) var(--easing-out);grid-area:1/1}.principle-carousel__control-icon--play,.principle-carousel__control--paused .principle-carousel__control-icon--pause{opacity:0}.principle-carousel__control--paused .principle-carousel__control-icon--play{opacity:1}.principle-carousel__dots{flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.principle-carousel__dot{width:var(--principle-carousel-dot-hit-width-compact);height:var(--principle-carousel-dot-hit-height);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.principle-carousel__dot:before{content:"";width:var(--principle-carousel-dot-size);height:var(--principle-carousel-dot-size);border-radius:var(--border-radius-pill);background:var(--principle-carousel-dot-inactive);transition:opacity var(--duration-fast) var(--easing-out)}.principle-carousel__dot-bar{width:var(--principle-carousel-dot-active-width);height:var(--principle-carousel-dot-size);margin-top:calc(var(--principle-carousel-dot-size) / -2);margin-left:calc(var(--principle-carousel-dot-active-width) / -2);border-radius:var(--border-radius-pill);background:var(--principle-carousel-dot-inactive);opacity:0;transition:opacity var(--duration-interaction) var(--easing-out);position:absolute;top:50%;left:50%;overflow:hidden}.principle-carousel__dot-bar:after{content:"";background:var(--principle-carousel-dot-active);transform-origin:0;position:absolute;inset:0}.principle-carousel__dot[aria-current=true]:before{opacity:0}.principle-carousel__dot[aria-current=true] .principle-carousel__dot-bar{opacity:1}.principle-carousel--rotating .principle-carousel__dot[aria-current=true] .principle-carousel__dot-bar:after{animation:principle-carousel-countdown var(--principle-carousel-interval) linear both}@keyframes principle-carousel-countdown{0%{transform:scaleX(0)}to{transform:none}}@media (hover:hover){.principle-carousel__control:hover:before{opacity:1}.principle-carousel__dot:not([aria-current=true]):hover:before{background:var(--principle-carousel-dot-active)}}@supports (animation-timeline:view()){.principle-carousel__slide{view-timeline:--principle-carousel-slide inline}.principle-carousel__number,.principle-carousel__text{animation:linear both principle-carousel-depth;animation-timeline:--principle-carousel-slide}.principle-carousel__number{--principle-carousel-layer-shift:var(--principle-carousel-parallax-number)}.principle-carousel__text{--principle-carousel-layer-shift:var(--principle-carousel-parallax-text)}}@keyframes principle-carousel-depth{0%,15%{opacity:0;transform:translateX(var(--principle-carousel-layer-shift)) scale(.94)}50%{opacity:1;transform:none}85%,to{opacity:0;transform:translateX(calc(var(--principle-carousel-layer-shift) * -1)) scale(.94)}}.principle-carousel__track:focus-visible{outline:var(--focus-ring-width) solid var(--color-border-focus);outline-offset:var(--focus-ring-offset)}.principle-carousel__control:focus-visible,.principle-carousel__dot:focus-visible{outline:var(--focus-ring-width) solid var(--color-border-focus);outline-offset:calc(var(--focus-ring-offset) * -1);border-radius:var(--border-radius-pill)}@media (min-width:768px){.principle-carousel__text{font-size:var(--font-size-h4);line-height:var(--line-height-h4)}.principle-carousel__dot{width:var(--principle-carousel-dot-hit-width)}.principle-carousel__dots{margin-inline-start:calc((var(--principle-carousel-dot-active-width) - var(--principle-carousel-dot-hit-width)) / 2)}}@media (min-width:1024px){.principle-carousel__controls{display:flex}.principle-carousel__slide{justify-content:flex-start;align-items:center;gap:var(--principle-carousel-number-gap);flex-direction:row}.principle-carousel__number{font-variant-numeric:tabular-nums;flex-shrink:0}}@media (prefers-reduced-motion:reduce){.principle-carousel__number,.principle-carousel__text,.principle-carousel__dot-bar:after{animation:none}.principle-carousel__control:before,.principle-carousel__control-icon,.principle-carousel__dot:before,.principle-carousel__dot-bar{transition:none}}
.portfolio{background:var(--color-surface-primary);min-height:100svh}.portfolio__content{padding:0 var(--space-site-gutter) var(--space-section-gap)}.portfolio__content .contact-footer{margin-inline:calc(-1 * var(--space-site-gutter));margin-bottom:calc(-1 * var(--space-section-gap))}.portfolio__hero{padding:calc(var(--nav-height) + var(--space-section-gap)) var(--space-site-gutter) var(--space-section-gap);flex-direction:column;justify-content:center;display:flex;position:relative}.portfolio__hero-inner{flex-direction:column;display:flex}@media (min-width:1024px){.portfolio__hero-inner{max-width:66vw}}.portfolio__hero-text{gap:var(--space-component-gap);flex-direction:column;display:flex}.portfolio__hero-title{font-family:var(--font-family-heading);font-size:var(--font-size-h1-fluid);font-weight:var(--font-weight-display);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary);line-height:1.125}.portfolio__hero-title em{color:var(--color-accent-default);font-style:italic}.portfolio__hero-title-line{display:block}.portfolio__hero-lead{font-family:var(--font-family-base);font-size:var(--font-size-emphasis);color:var(--color-text-secondary);line-height:var(--line-height-body)}@media (min-width:1024px){.portfolio__hero-lead{max-width:50vw}}.portfolio__hero-lead p+p{margin-top:var(--space-component-gap)}.portfolio__hero-actions{gap:var(--space-element-gap);flex-wrap:wrap;display:flex}.portfolio__hero-scroll{bottom:var(--space-component-gap);left:var(--space-site-gutter);align-items:center;gap:var(--space-element-gap);display:flex;position:absolute}.portfolio__hero-scroll-label{font-family:var(--font-family-base);font-size:var(--font-size-caption);line-height:var(--line-height-caption);letter-spacing:var(--letter-spacing-label);text-transform:lowercase;color:var(--color-text-secondary)}.portfolio__hero-scroll-line{background:var(--color-border-default);width:48px;height:1px;display:block}.portfolio__hero-title,.portfolio__hero-actions .button,.portfolio__hero-scroll{opacity:0}.portfolio__divider{background:var(--color-border-default);height:1px;margin:calc(var(--space-section-gap) / 2) 0}.portfolio__section{gap:var(--space-component-gap);padding:calc(var(--space-section-gap) / 2) 0;flex-direction:column;display:flex}.work__header{gap:var(--space-component-gap);padding:calc(var(--space-section-gap) / 2) 0 var(--space-element-gap);flex-direction:column;display:flex}.work__heading{font-family:var(--font-family-heading);font-size:var(--font-size-h2-fluid);font-weight:var(--font-weight-display);line-height:var(--line-height-display);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary)}.work__list{padding-bottom:var(--nav-height);flex-direction:column;display:flex}@media (min-width:1024px){.work__list{gap:var(--space-section-gap);grid-template-columns:repeat(3,1fr);align-items:start;display:grid}.work__list>.portfolio__work-card:nth-child(3n+1){grid-column:span 2}.work__list>.portfolio__work-card:nth-child(3n+2),.work__list>.portfolio__work-card:nth-child(3n+3){grid-column:span 1;align-self:center}.work__list>.portfolio__work-card{padding:0}.work__list>.portfolio__work-card[data-slug=better-energy],.work__list>.portfolio__work-card[data-slug=scout]{grid-column:span 1;align-self:center}}.portfolio__intro{gap:var(--space-section-gap);padding:calc(var(--space-section-gap) / 2) 0;grid-template-columns:1fr 1fr;align-items:start;display:grid}.portfolio__intro-text{gap:var(--space-component-gap);flex-direction:column;display:flex}.portfolio__intro-lead{font-family:var(--font-family-heading);font-size:var(--font-size-h3);font-weight:var(--font-weight-heading);line-height:var(--line-height-h3);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary)}.portfolio__intro-body{font-family:var(--font-family-base);font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:var(--line-height-body);max-width:52ch}.portfolio__intro-visual{justify-content:center;align-items:center;gap:var(--space-element-gap);padding:var(--space-section-gap) var(--space-component-gap);flex-direction:column;display:flex;position:relative}.portfolio__intro-word{font-family:var(--font-family-heading);font-size:var(--font-size-h2-fluid);font-weight:var(--font-weight-display);letter-spacing:var(--letter-spacing-heading);line-height:var(--line-height-display);color:var(--color-text-primary)}.portfolio__intro-word--code{font-style:italic}.portfolio__intro-divider{background:var(--color-border-default);width:1px;height:40px;display:block}.portfolio__intro-resolved{font-family:var(--font-family-base);font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-label);letter-spacing:var(--letter-spacing-label);text-transform:lowercase;color:var(--color-accent-default);opacity:0;transition:opacity var(--duration-reveal) var(--easing-default), transform var(--duration-reveal) var(--easing-default);transition-delay:var(--duration-reveal-delay);transform:translateY(8px)}.reveal.visible .portfolio__intro-resolved{opacity:1;transform:none}.portfolio__manifesto{gap:var(--space-component-gap);padding:calc(var(--space-section-gap) / 2) 0;flex-direction:column;display:flex}.portfolio__manifesto-statement{font-family:var(--font-family-heading);font-size:var(--font-size-h2-fluid);font-weight:var(--font-weight-heading);font-style:italic;line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary);border:none;max-width:20em;margin:0;padding:0}.portfolio__capabilities{gap:var(--space-component-gap);padding:calc(var(--space-section-gap) / 2) 0;flex-direction:column;display:flex}.portfolio__work-list{flex-direction:column;display:flex}.portfolio__work-card{gap:var(--space-element-gap);padding:var(--space-component-gap) 0;color:inherit;grid-template-columns:1fr;text-decoration:none;display:grid}.portfolio__work-card-text{gap:calc(var(--space-element-gap) / 2);flex-direction:column;display:flex}.portfolio__work-card-title{font-family:var(--font-family-heading);font-size:var(--font-size-h4);font-weight:var(--font-weight-heading);line-height:var(--line-height-h4);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary)}.portfolio__principles{gap:var(--space-component-gap);padding:var(--nav-height) 0;flex-direction:column;display:flex}.portfolio__principles-label{font-family:var(--font-family-heading);font-size:var(--font-size-h2-fluid);font-weight:var(--font-weight-display);line-height:var(--line-height-display);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary)}.portfolio__system{border-top:1px solid var(--color-border-default);padding:var(--space-section-gap) 0;gap:var(--space-component-gap);flex-direction:column;display:flex}.portfolio__system-header{justify-content:space-between;align-items:baseline;gap:var(--space-component-gap);display:flex}.portfolio__system-eyebrow{font-family:var(--font-family-base);font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-label);letter-spacing:var(--letter-spacing-label);text-transform:lowercase;color:var(--color-text-secondary)}.portfolio__system-link{font-family:var(--font-family-base);font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-label);letter-spacing:var(--letter-spacing-label);text-transform:lowercase;color:var(--color-accent-default);white-space:nowrap;transition:color var(--duration-interaction) var(--easing-default);text-decoration:none}.portfolio__system-link:hover{color:var(--color-accent-hover)}.portfolio__system-stats{gap:var(--space-section-gap) var(--space-component-gap);flex-wrap:wrap;display:flex}.portfolio__system-stat{flex-direction:column;gap:4px;display:flex}.portfolio__system-stat-value{font-family:var(--font-family-heading);font-size:var(--font-size-h2-fluid);font-weight:var(--font-weight-display);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary);line-height:1}.portfolio__system-stat-label{font-family:var(--font-family-base);font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-label);letter-spacing:var(--letter-spacing-label);text-transform:lowercase;color:var(--color-text-secondary)}@media (max-width:768px){.portfolio__system-stats{gap:var(--space-component-gap)}}.portfolio__contact-heading{font-family:var(--font-family-heading);font-size:var(--font-size-h1-fluid);font-weight:var(--font-weight-display);line-height:var(--line-height-display);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary)}.portfolio__contact-subheading{font-family:var(--font-family-base);font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:var(--line-height-body);max-width:48ch;margin-top:0}.portfolio__contact-phone{color:inherit;margin-top:var(--space-inline-gap);text-decoration:none;display:block}.portfolio__contact-phone-label{font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-label);letter-spacing:var(--letter-spacing-label);text-transform:lowercase;color:var(--color-text-secondary);margin-bottom:var(--space-inline-gap);display:block}.portfolio__contact-phone-number{font-family:var(--font-family-heading);font-size:clamp(3rem,8vw,5.5rem);font-weight:var(--font-weight-display);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary);transition:color var(--duration-interaction) var(--easing-default);line-height:1;display:block}.portfolio__contact-phone:hover .portfolio__contact-phone-number{color:var(--color-accent-default)}.portfolio__contact-phone-note{font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text-secondary);margin-top:var(--space-element-gap);display:block}.portfolio__contact-icons{gap:var(--space-element-gap);display:flex}.portfolio__contact-icon-btn{border:var(--button-outline-border-width) solid var(--color-border-strong);width:56px;height:56px;color:var(--color-text-secondary);transition:background var(--duration-interaction) var(--easing-default), border-color var(--duration-interaction) var(--easing-default), color var(--duration-interaction) var(--easing-default);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;display:flex}.portfolio__contact-icon-btn:hover{background:var(--color-accent-default);border-color:var(--color-accent-default);color:var(--color-accent-foreground)}.portfolio__contact-icon-btn svg{width:50%;height:50%}.portfolio__contact-icon-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.portfolio__contact-location{font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text-secondary);margin-top:var(--space-element-gap);display:block}@media (max-width:768px){.portfolio__intro{grid-template-columns:1fr}.portfolio__intro-visual{display:none}}@media (prefers-reduced-motion:reduce){.portfolio__intro-resolved,.portfolio__system-link,.portfolio__contact-phone-number,.portfolio__contact-icon-btn{transition:none}}
