.project-page{position:relative;z-index:var(--z-content);max-width:var(--container-max);margin:0 auto;padding:calc(var(--space-3xl) + var(--space-md) + env(safe-area-inset-top,0px)) var(--container-padding) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-2xl)}.project-page~.section--cta{min-height:0;padding-top:var(--space-xl);padding-bottom:var(--space-2xl);align-items:flex-start}.project__back{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-text-muted);align-self:flex-start;padding:.5em 0;position:relative;transition:color var(--duration-base) var(--ease-out-expo)}.project__back:hover{color:var(--color-accent)}.project__hero{display:grid;grid-template-columns:1fr;gap:var(--space-2xl);margin-bottom:var(--space-3xl)}@media (min-width: 900px){.project__hero{grid-template-columns:minmax(320px,5fr) 7fr;align-items:end;gap:var(--space-3xl)}}.project__hero-text{display:flex;flex-direction:column;gap:var(--space-md)}.project__num{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-accent)}.project__title{margin:0;font-family:var(--font-display);font-size:clamp(2.25rem,6vw,5rem);font-weight:700;letter-spacing:-.04em;line-height:.95;max-width:14ch;color:var(--color-text)}.project__title span{display:block;overflow:visible}.project__category{margin:0;font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-text-muted)}.project__hero-frame,.project__capture-frame{margin:0;display:flex;flex-direction:column;background:var(--color-bone);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 1px #1515130a,0 32px 64px -24px #1515132e}.project__frame-chrome{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.project__frame-dot{width:10px;height:10px;border-radius:999px;background:#1515132e}.project__frame-dot:nth-child(1){background:#e16b198c}.project__frame-dot:nth-child(2){background:#e16b1952}.project__frame-dot:nth-child(3){background:#e16b192e}.project__frame-media{width:100%;aspect-ratio:16 / 10;overflow:hidden;background:var(--color-surface)}.project__frame-media img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}.project__layout{display:grid;grid-template-columns:280px 1fr;column-gap:var(--space-3xl);align-items:start}.project__sidebar{position:sticky;top:calc(var(--space-2xl) + 80px);align-self:start;display:flex;flex-direction:column;gap:var(--space-md)}.project__sidebar-inner{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);background:#5e5a5229;backdrop-filter:saturate(1.1) blur(6px);-webkit-backdrop-filter:saturate(1.1) blur(6px);border:1px solid rgba(94,90,82,.18);border-radius:var(--radius-md)}.project__main{display:flex;flex-direction:column;gap:var(--space-2xl);min-width:0}@media (max-width: 1024px){.project__layout{grid-template-columns:1fr;gap:var(--space-2xl)}.project__sidebar{position:static}}.project__intro{font-family:var(--font-display);font-size:clamp(1.25rem,2vw,1.625rem);font-weight:500;line-height:1.4;letter-spacing:-.015em;max-width:56ch;color:var(--color-text);margin:0}.project__factsheet-list{display:flex;flex-direction:column;gap:var(--space-md);margin:0;padding:0}.project__factsheet-row{display:flex;flex-direction:column;gap:.3em}.project__factsheet-row dt{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-text-muted)}.project__factsheet-row dd{margin:0;font-family:var(--font-display);font-size:var(--font-size-md);font-weight:500;color:var(--color-text)}.project__factsheet-link{color:var(--color-text);text-decoration:none;border-bottom:1px solid currentColor;transition:opacity .2s ease;word-break:break-all}.project__factsheet-link:hover{opacity:.7}.project__factsheet-link:after{content:" ↗";font-family:var(--font-mono)}.project__section-title{font-family:var(--font-display);font-size:clamp(1.875rem,4vw,2.75rem);font-weight:600;letter-spacing:-.025em;line-height:1.05;margin:var(--space-xs) 0 0;max-width:22ch}.project__process-head,.project__stack-head{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-lg)}.project__section-title span{display:block}.project__numbers{display:flex;flex-direction:column;gap:var(--space-xl);padding:var(--space-xl) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.project__numbers-stats,.project__numbers-outcomes{display:flex;flex-direction:column;gap:var(--space-md)}.project__numbers .stats{margin:0;padding:0;border:none;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.project__numbers .stat{padding:var(--space-lg);background:#5e5a5229;backdrop-filter:saturate(1.1) blur(6px);-webkit-backdrop-filter:saturate(1.1) blur(6px);border:1px solid rgba(94,90,82,.18);border-radius:var(--radius-md);transition:border-color var(--duration-base) var(--ease-out-expo)}.project__numbers .stat:hover{border-color:var(--color-accent)}.project__numbers .stat__value{font-size:clamp(2.5rem,5vw,4rem);font-weight:700;color:var(--color-accent);letter-spacing:-.04em;line-height:.9}.project__numbers .stat__label{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-text-muted);max-width:24ch}.project__numbers-outcomes .project__outcomes-list{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0;padding:0;border:none}.project__numbers-outcomes .project__outcome{padding:var(--space-md) var(--space-lg);border-left:1px solid var(--color-border)}.project__numbers-outcomes .project__outcome:first-child{border-left:none;padding-left:0}.project__numbers-outcomes .project__outcome-value{font-size:clamp(2rem,4vw,3rem);color:var(--color-text)}.project__numbers-outcomes .project__outcome-label{color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-md);text-transform:none;letter-spacing:0;line-height:1.4;max-width:28ch}.project__numbers-stats .eyebrow,.project__numbers-outcomes .eyebrow{margin-bottom:0}@media (max-width: 768px){.project__numbers .stats,.project__numbers-outcomes .project__outcomes-list{grid-template-columns:1fr}.project__numbers-outcomes .project__outcome{border-left:none;border-top:1px solid var(--color-border);padding:var(--space-md) 0}.project__numbers-outcomes .project__outcome:first-child{border-top:none;padding-top:0}}.project__process{position:relative}.project__process-head{margin-bottom:var(--space-xl)}.project__process-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);position:relative}.project__process-list:before{content:"";position:absolute;top:calc(var(--space-lg) + 2.5rem + var(--space-sm));left:var(--space-lg);right:var(--space-lg);height:1px;background:var(--color-border);z-index:0;pointer-events:none}.project__process-item{position:relative;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);background:#5e5a5229;backdrop-filter:saturate(1.1) blur(6px);-webkit-backdrop-filter:saturate(1.1) blur(6px);border:1px solid rgba(94,90,82,.18);border-radius:var(--radius-md);z-index:1;transition:border-color var(--duration-base) var(--ease-out-expo)}.project__process-item:hover{border-color:var(--color-accent)}.project__process-num{font-family:var(--font-display);font-size:clamp(1.875rem,3vw,2.5rem);font-weight:700;letter-spacing:-.04em;line-height:.85;color:var(--color-accent);font-variant-numeric:tabular-nums}.project__process-phase{margin:0;font-family:var(--font-display);font-size:clamp(1rem,1.4vw,1.25rem);font-weight:600;letter-spacing:-.015em;color:var(--color-text)}.project__process-note{margin:0;font-size:var(--font-size-sm);line-height:1.5;color:var(--color-text-muted)}@media (max-width: 900px){.project__process-list{grid-template-columns:repeat(2,1fr)}.project__process-list:before{display:none}}@media (max-width: 480px){.project__process-list{grid-template-columns:1fr}}.project__stack-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);margin:0;padding:0}.project__stack-item{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-lg);background:#5e5a5229;backdrop-filter:saturate(1.1) blur(6px);-webkit-backdrop-filter:saturate(1.1) blur(6px);border:1px solid rgba(94,90,82,.18);border-radius:var(--radius-md);transition:border-color var(--duration-base) var(--ease-out-expo)}.project__stack-item:hover{border-color:var(--color-accent)}.project__stack-name{font-family:var(--font-display);font-size:clamp(1.125rem,1.6vw,1.375rem);font-weight:600;letter-spacing:-.015em;color:var(--color-text)}.project__stack-note{font-size:var(--font-size-md);line-height:var(--line-height-body);color:var(--color-text-muted)}.project__outcomes-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-lg);margin:0;padding:var(--space-lg) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.project__outcome{display:flex;flex-direction:column;gap:var(--space-xs)}.project__outcome-value{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);font-weight:700;letter-spacing:-.04em;line-height:.95;color:var(--color-accent);font-variant-numeric:tabular-nums}.project__outcome-label{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-text-muted);max-width:28ch}.project__quote-block{margin:0;padding:var(--space-2xl) 0 var(--space-2xl) var(--space-lg);position:relative;border-left:4px solid var(--color-accent)}.project__quote-block p{margin:0 0 var(--space-md);font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.5rem);font-weight:500;font-style:italic;line-height:1.2;letter-spacing:-.02em;color:var(--color-text);max-width:28ch}.project__quote-author{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-text-muted)}@media (max-width: 768px){.project__factsheet-list{grid-template-columns:repeat(2,1fr)}.project__stack-list{grid-template-columns:1fr}.project__process-item{grid-template-columns:auto 1fr;column-gap:var(--space-md)}}.project__context{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2xl);padding:var(--space-xl) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.project__block{display:flex;flex-direction:column;gap:var(--space-md)}.project__block-title{font-family:var(--font-display);font-size:clamp(1.25rem,1.8vw,1.75rem);font-weight:600;letter-spacing:-.02em}.project__block-title span{display:block;overflow:hidden}.project__block-body{font-size:var(--font-size-lg);line-height:1.6;color:var(--color-text);max-width:48ch}.project__captures{margin:0}.project__captures-head{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-xl)}.project__captures-viewer{display:flex;flex-direction:column;gap:var(--space-md)}.project__capture-featured{margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.project__capture-featured .project__capture-frame{margin:0}.project__capture-featured figcaption{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-text-muted);padding:0 var(--space-sm)}.project__capture-thumbs{list-style:none;margin:0;padding:var(--space-xs) 0 var(--space-sm);display:grid;grid-auto-flow:column;grid-auto-columns:28%;gap:var(--space-sm);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:rgba(21,21,19,.24) transparent;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.project__capture-thumbs::-webkit-scrollbar{height:6px}.project__capture-thumbs::-webkit-scrollbar-thumb{background:#1515133d;border-radius:999px}.project__capture-thumb{scroll-snap-align:start;margin:0;min-width:0}.project__capture-thumb-btn{width:100%;padding:0;margin:0;border:1px solid var(--color-border);background:var(--color-bone);border-radius:var(--radius-sm, 6px);overflow:hidden;cursor:pointer;aspect-ratio:16 / 10;display:block;opacity:.55;transition:opacity var(--duration-base) var(--ease-out-expo),border-color var(--duration-base) var(--ease-out-expo),transform var(--duration-base) var(--ease-out-expo)}.project__capture-thumb-btn:hover{opacity:.9;border-color:#e16b1966}.project__capture-thumb.is-active .project__capture-thumb-btn{opacity:1;border-color:var(--color-accent)}.project__capture-thumb-btn img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}@media (max-width: 600px){.project__capture-thumbs{grid-auto-columns:44%}}.project__gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.project__gallery-item{aspect-ratio:16 / 10;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.project__gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.project__next{border-top:1px solid var(--color-border);padding-top:var(--space-md)}.project__next-link{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:var(--space-lg);padding:var(--space-md) 0;transition:padding var(--duration-base) var(--ease-out-expo)}.project__next-link:hover{padding-left:var(--space-lg)}.project__next-label{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-text-muted)}.project__next-num{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-muted)}.project__next-title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.5rem);font-weight:600;letter-spacing:-.02em;color:var(--color-text)}.project__next-arrow{font-size:1.5rem;color:var(--color-text-muted);transition:transform var(--duration-base) var(--ease-out-expo),color var(--duration-base) var(--ease-out-expo)}.project__next-link:hover .project__next-arrow{transform:translate(8px);color:var(--color-accent)}@media (max-width: 768px){.project-page{gap:var(--space-2xl);padding:calc(var(--space-2xl) + env(safe-area-inset-top)) var(--container-padding) var(--space-2xl)}.project__hero{gap:var(--space-xl)}.project__context,.project__gallery{grid-template-columns:1fr;gap:var(--space-xl)}.project__context{padding:var(--space-lg) 0}.project__next-link{grid-template-columns:auto 1fr auto;gap:var(--space-md);padding:var(--space-lg) 0}.project__next-link:hover{padding-left:0}.project__next-label{grid-column:1 / -1}}@media (max-width: 480px){.project-page{gap:var(--space-xl);padding:calc(var(--space-xl) + env(safe-area-inset-top)) var(--container-padding) var(--space-xl)}.project__hero-media{border-radius:var(--radius-md)}.project__sidebar-inner,.project__numbers .stat,.project__process-item,.project__stack-item{padding:var(--space-md)}.project__quote-block{padding:var(--space-lg) 0 var(--space-lg) var(--space-md)}}@media (max-width: 768px){.project__hero{grid-template-columns:1fr;gap:var(--space-xl)}.project__hero-text{gap:var(--space-md)}.project__title{font-size:clamp(2.4rem,10vw,4rem)}.project__layout{gap:var(--space-xl)}.project__numbers{grid-template-columns:1fr;gap:var(--space-xl)}.project__numbers .stats,.project__numbers-outcomes .project__outcomes-list{grid-template-columns:1fr}.project__process-list{grid-template-columns:1fr;gap:var(--space-md)}.project__process-list:before{display:none}.project__capture-thumbs{grid-auto-columns:44%}.project__quote-block p{font-size:clamp(1.25rem,4vw,1.75rem)}}@media (max-width: 480px){.project__title{font-size:clamp(2rem,11vw,3rem)}.project__intro{font-size:var(--font-size-md)}.project__sidebar-inner{padding:var(--space-md)}.project__capture-thumbs{grid-auto-columns:56%}.project__next-link{grid-template-columns:auto 1fr auto;gap:var(--space-sm);padding:var(--space-md) 0}.project__next-label{grid-column:1 / -1}}
