.project-page .project-hero{isolation:isolate;padding:1.25rem 2.25rem 1.75rem;position:relative}.project-page .project-eyebrow{font:.625rem/1.7 var(--font-mono);color:var(--signal);letter-spacing:.07em;margin:0 0 .75rem}.project-page .project-hero__heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.project-page .project-hero__heading>div{min-width:0}.project-page h1{font:900 clamp(2rem, 4.1vw, 3.75rem)/1.12 var(--font-display);text-transform:uppercase;letter-spacing:-.045em;overflow-wrap:anywhere;margin:0 0 1rem}.project-page .project-hero__intro{max-width:52ch;color:var(--text);margin:0;font-size:1rem;line-height:1.65}.project-page .project-hero__actions{flex-wrap:wrap;flex-shrink:0;gap:.75rem;padding-bottom:.25rem;display:flex}.project-page .project-cover{--cut-shape:var(--shape-card);--cut-line:var(--line-bright);--cut-surface:var(--surface);isolation:isolate;background:var(--cut-line);clip-path:var(--cut-shape);border:.0625rem solid #0000;border-radius:0;position:relative}.project-page .project-cover:before{content:"";z-index:-1;pointer-events:none;background:var(--cut-surface);clip-path:var(--cut-shape);position:absolute;inset:0}.project-page .project-cover:focus-visible{--cut-line:var(--accent);text-underline-offset:.25rem;outline:none;text-decoration:underline}.project-page .project-cover{--cut-surface:var(--surface-gradient);padding:.75rem}.project-page .project-cover__bar{color:var(--muted);font:.5625rem/1.5 var(--font-mono);justify-content:space-between;align-items:center;gap:1rem;padding:.125rem .5rem .875rem;display:flex}.project-page .project-cover__bar span:last-child{color:var(--signal);font-size:1rem}.project-page .project-cover__screen{height:clamp(17rem,38vw,35rem);clip-path:var(--shape-control);background:var(--black);position:relative;overflow:hidden}.project-page .project-cover img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.project-page .project-cover__index{background:var(--black);border-left:2px solid var(--signal);font:.5625rem var(--font-mono);text-transform:uppercase;padding:.5rem .75rem;position:absolute;bottom:1.5rem;right:1.5rem}.project-page .project-meta{grid-template-columns:.8fr 1fr 1.2fr;gap:1.5rem;margin:1.75rem 0 0;display:grid}.project-page .project-meta>div{border-left:1px solid var(--line);min-width:0;padding-left:1rem}.project-page dt{font:.5625rem/1.5 var(--font-mono);color:var(--muted);text-transform:uppercase;margin-bottom:.5rem}.project-page dd{margin:0;font-size:.875rem}.project-page .project-meta__tags{flex-wrap:wrap;gap:.375rem;display:flex}.project-page .project-section{padding:1.25rem 1.5rem 1.5rem}.project-page .project-context{grid-template-columns:.9fr 1.3fr;gap:3rem;padding:1rem .5rem .5rem;display:grid}.project-page .project-context__overview{color:var(--white);max-width:38ch;margin:0;font-size:1.25rem;line-height:1.6}.project-page .project-context__columns{grid-template-columns:1fr 1fr;gap:1.75rem;display:grid}.project-page h3{margin:0 0 .875rem;font-size:1.125rem;font-weight:500;line-height:1.4}.project-page .project-context h3 span{color:var(--signal);font:.625rem var(--font-mono);margin-bottom:1rem;display:block}.project-page .project-context__columns p,.project-page .project-feature p{color:var(--text);margin:0;font-size:.875rem;line-height:1.8}.project-page .project-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.project-page .project-feature{--cut-shape:var(--shape-card);--cut-line:var(--line-bright);--cut-surface:var(--surface);isolation:isolate;background:var(--cut-line);clip-path:var(--cut-shape);border:.0625rem solid #0000;border-radius:0;position:relative}.project-page .project-feature:before{content:"";z-index:-1;pointer-events:none;background:var(--cut-surface);clip-path:var(--cut-shape);position:absolute;inset:0}.project-page .project-feature:focus-visible{--cut-line:var(--accent);text-underline-offset:.25rem;outline:none;text-decoration:underline}.project-page .project-feature{--cut-line:var(--line);--cut-surface:var(--surface-gradient);padding:1.5rem}.project-page .project-feature__number{color:var(--signal);font:.625rem var(--font-mono);margin-bottom:1.75rem;display:block}.project-page .project-feature>svg{color:var(--signal);position:absolute;top:1.5rem;right:1.5rem}.project-page .project-gallery{gap:1.5rem;display:grid}.project-page figure{min-width:0;margin:0}.project-page .project-gallery__image{background:var(--surface);border:1px solid var(--line);clip-path:var(--shape-control);overflow:hidden}.project-page .project-gallery img{width:100%;height:auto;display:block}.project-page figcaption{font:.625rem/1.7 var(--font-mono);color:var(--muted);gap:1rem;padding:.875rem .25rem 0;display:flex}.project-page figcaption span{color:var(--signal)}.project-page .project-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1.25rem 0 .25rem;display:flex}.project-page .project-next{margin-left:auto}@media (width<=600px){.project-page .project-pagination{flex-direction:column;align-items:stretch;padding:1rem 0 .25rem}.project-page .project-next{margin-left:0}}@media (width<=1000px){.project-page .project-hero__heading{flex-direction:column;align-items:start;gap:1.25rem}.project-page .project-context{grid-template-columns:1fr;gap:1.5rem}.project-page .project-context__overview{max-width:60ch}}@media (width<=600px){.project-page .project-hero{padding:1rem .875rem 1.25rem}.project-page .project-eyebrow{font-size:.5rem}.project-page h1{font-size:clamp(1.625rem,7.4vw,2.5rem)}.project-page .project-hero__intro{font-size:.875rem}.project-page .project-hero__actions{width:100%}.project-page .project-hero__actions .button{flex:1}.project-page .project-cover{padding:.375rem}.project-page .project-cover__bar{gap:.5rem;padding:.375rem .25rem .625rem;font-size:.4375rem}.project-page .project-cover__screen{aspect-ratio:1.4;height:auto}.project-page .project-cover__index{font-size:.4375rem;bottom:.75rem;right:.75rem}.project-page .project-meta{grid-template-columns:1fr 1fr;gap:1.25rem .5rem;margin-top:1.25rem}.project-page .project-meta>div{padding-left:.625rem}.project-page .project-meta>div:last-child{grid-column:1/-1}.project-page dd{font-size:.8125rem}.project-page dt{font-size:.5rem}.project-page .project-section{padding:.875rem .75rem 1rem}.project-page .project-context{padding:.75rem .25rem .25rem}.project-page .project-context__overview{font-size:1.0625rem}.project-page .project-context__columns{grid-template-columns:1fr;gap:1.5rem}.project-page .project-context h3 span{margin-bottom:.5rem}.project-page .project-features{grid-template-columns:1fr;gap:.75rem}.project-page .project-feature{padding:1.25rem}.project-page .project-feature__number{margin-bottom:1.25rem}.project-page .project-feature p,.project-page .project-context__columns p{font-size:.8125rem}}.blog-page .project-hero__intro{max-width:65ch}.blog-page .blog-cover{margin-top:1.75rem}.blog-page .blog-cover .project-cover__screen{width:100%;height:clamp(16rem,33vw,31rem)}.blog-page .blog-meta{margin-bottom:1.75rem}.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.blog-tags{flex-wrap:wrap;gap:.375rem;display:flex}.blog-draft{width:fit-content;font:.625rem/1.6 var(--font-mono);color:var(--accent);border:1px solid var(--line);margin:0 0 1rem;padding:.375rem .625rem}.blog-empty{color:var(--text);padding:2rem 1rem;line-height:1.7}.blog-content-layout{grid-template-columns:15rem minmax(0,48rem);justify-content:center;gap:clamp(2rem,5vw,5rem);padding:2rem 1.5rem 3rem;display:grid}.blog-updated{color:var(--muted);margin-top:.375rem!important;font-size:.75rem!important}.blog-pagination{flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.75rem .5rem;display:flex}.blog-content-layout--plain{grid-template-columns:minmax(0,48rem)}.blog-card{--cut-shape:var(--shape-card);--cut-line:var(--line-bright);--cut-surface:var(--surface);isolation:isolate;background:var(--cut-line);clip-path:var(--cut-shape);border:.0625rem solid #0000;border-radius:0;position:relative}.blog-card:before{content:"";z-index:-1;pointer-events:none;background:var(--cut-surface);clip-path:var(--cut-shape);position:absolute;inset:0}.blog-card:focus-visible{--cut-line:var(--accent);text-underline-offset:.25rem;outline:none;text-decoration:underline}.blog-card{--cut-surface:var(--surface-gradient);flex-direction:column;min-width:0;display:flex;overflow:hidden}.blog-card__image{aspect-ratio:16/9;clip-path:var(--shape-control);margin:.625rem;display:block;overflow:hidden}.blog-card__image img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .3s}.blog-card:hover .blog-card__image img{transform:scale(1.025)}.blog-card__body{flex-direction:column;flex:1;align-items:start;padding:1rem 1.375rem 1.375rem;display:flex}.blog-card__meta{font:.625rem/1.7 var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.blog-card h3{font:700 clamp(1.125rem, 1.8vw, 1.625rem)/1.35 var(--font-display);margin:1rem 0 .75rem}.blog-card h3 a{color:var(--white);text-decoration:none}.blog-card h3 a:hover{color:var(--signal)}.blog-card__description{color:var(--text);flex:1;margin:0 0 1rem;font-size:1rem;line-height:1.7}@media (prefers-reduced-motion:reduce){.blog-card__image img{transition:none}}.blog-toc{align-self:start;position:sticky;top:2rem}.blog-toc>p{color:var(--signal);font:.6875rem/1.6 var(--font-mono);text-transform:uppercase;letter-spacing:.04em;margin:0 0 1rem}.blog-toc ol{border-left:1px solid var(--line);margin:0;padding:0;list-style:none}.blog-toc li{margin:0}.blog-toc a{color:var(--muted);border-left:2px solid #0000;margin-left:-1px;padding:.625rem 1rem;font-size:.875rem;line-height:1.5;text-decoration:none;display:block}.blog-toc a[aria-current=location]{color:var(--accent);border-left-color:var(--accent);background:var(--surface)}.blog-toc a:hover{color:var(--accent);background:var(--surface)}.blog-toc__sub a{padding-left:1.75rem;font-size:.8125rem}.blog-prose{min-width:0;color:var(--text);overflow-wrap:anywhere;font-size:1.125rem;line-height:1.85}.blog-prose>:first-child{margin-top:0}.blog-prose>:last-child{margin-bottom:0}.blog-prose p,.blog-prose ul,.blog-prose ol,.blog-prose blockquote,.blog-prose pre,.blog-prose table{margin:0 0 1.5rem}.blog-prose h2,.blog-prose h3,.blog-prose h4,.blog-prose h5,.blog-prose h6{color:var(--white);font-family:var(--font-display);scroll-margin-top:2rem;line-height:1.4}.blog-prose h2{margin:2.75rem 0 1.25rem;font-size:clamp(1.375rem,2.2vw,1.875rem)}.blog-prose h3{margin:2rem 0 1rem;font-size:1.25rem}.blog-prose h4,.blog-prose h5,.blog-prose h6{margin:1.75rem 0 .75rem;font-size:1.0625rem}.blog-prose a{color:var(--signal);text-underline-offset:.25em}.blog-prose a:hover{color:var(--accent)}.blog-prose strong{color:var(--white);font-weight:700}.blog-prose ul,.blog-prose ol{padding-left:1.5rem}.blog-prose li{margin-bottom:.5rem;padding-left:.25rem}.blog-prose li::marker{color:var(--signal)}.blog-prose li p{margin:.5rem 0}.blog-prose blockquote{border-left:3px solid var(--brand);background:var(--surface);color:var(--white);padding:1.25rem 1.5rem}.blog-prose blockquote p:last-child{margin-bottom:0}.blog-prose code{font-family:var(--font-mono);color:var(--cyan);background:var(--surface);padding:.2em .4em;font-size:.8em}.blog-prose pre{background:var(--black);border:1px solid var(--line);border-left:3px solid var(--signal);max-width:100%;padding:1.25rem;line-height:1.75;overflow-x:auto}.blog-prose pre code{overflow-wrap:normal;white-space:pre;background:0 0;padding:0;font-size:.8125rem}.blog-prose picture{margin:2rem 0;display:block}.blog-prose img{width:100%;height:auto;clip-path:var(--shape-control);display:block}.blog-prose table{border-collapse:collapse;max-width:100%;font-size:.9375rem;display:block;overflow-x:auto}.blog-prose th,.blog-prose td{border:1px solid var(--line);text-align:left;min-width:8rem;padding:.75rem 1rem}.blog-prose th{color:var(--white);background:var(--surface)}.blog-prose hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}@media (width<=1000px){.blog-content-layout{grid-template-columns:minmax(0,48rem);gap:2rem}.blog-toc{position:static}}@media (width<=760px){.blog-grid{grid-template-columns:minmax(0,1fr)}.blog-content-layout{padding:1rem .25rem 1.5rem}.blog-prose{font-size:1rem;line-height:1.8}.blog-prose blockquote{padding:1rem}.blog-card__body{padding:.75rem 1rem 1rem}}@media (width<=600px){.blog-page .blog-cover .project-cover__screen{aspect-ratio:1.4;height:auto}}
