@font-face{font-family:Vazirmatn;src:url('../fonts/vazirmatn-400.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Vazirmatn;src:url('../fonts/vazirmatn-600.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:Vazirmatn;src:url('../fonts/vazirmatn-800.woff2') format('woff2');font-weight:800;font-display:swap}@font-face{font-family:Manrope;src:url('../fonts/manrope-400.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url('../fonts/manrope-600.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:Manrope;src:url('../fonts/manrope-800.woff2') format('woff2');font-weight:800;font-display:swap}
:root{--bg:#071a2d;--surface:#0c233a;--surface-2:#102d49;--text:#f6ecd7;--muted:#a9b3bc;--accent:#d7ae5d;--accent-2:#f6ecd7;--line:rgba(246,236,215,.17);--shadow:0 28px 80px rgba(0,0,0,.23);--radius:3px;--max:1320px;--font:Manrope,sans-serif;--display:Manrope,sans-serif;color-scheme:dark}
html[lang=fa]{--font:Vazirmatn,sans-serif;--display:Vazirmatn,sans-serif}html[data-theme=light]{--bg:#f7f5f0;--surface:#fff;--surface-2:#e8edf3;--text:#17202a;--muted:#65707c;--accent:#2563a9;--accent-2:#17202a;--line:rgba(23,32,42,.14);--shadow:0 28px 80px rgba(31,53,78,.12);--radius:18px;color-scheme:light}html[data-theme=dark]{--bg:#141413;--surface:#1d1d1b;--surface-2:#282622;--text:#f7f4ee;--muted:#aaa69f;--accent:#c87b4b;--accent-2:#fff;--line:rgba(255,255,255,.13);--shadow:0 28px 80px rgba(0,0,0,.38);--radius:10px;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.75;overflow-x:hidden;transition:background-color .45s,color .45s}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display);line-height:1.15}.sr-only,.skip{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip:focus{width:auto;height:auto;clip:auto;z-index:1000;padding:.7rem 1rem;margin:1rem;background:var(--accent);color:var(--bg)}
.site-header{height:92px;position:absolute;z-index:20;top:0;inset-inline:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(1rem,4vw,4.5rem);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.8rem;font-weight:700;line-height:1.1}.brand small{display:block;color:var(--muted);font-size:.62rem;font-weight:400;margin-top:.28rem}.brand-mark{width:41px;height:41px;border:1px solid var(--accent);display:grid;place-items:center;color:var(--accent);font:800 .72rem Manrope;letter-spacing:.08em;border-radius:var(--radius)}.main-nav{display:flex;gap:2rem;font-size:.82rem}.main-nav a{position:relative}.main-nav a:after{content:"";position:absolute;height:1px;background:var(--accent);bottom:-8px;inset-inline-start:0;width:0;transition:width .25s}.main-nav a:hover:after{width:100%}.header-tools{justify-self:end;display:flex;align-items:center;gap:1.3rem}.language{display:flex;gap:.2rem;border:1px solid var(--line);padding:.2rem}.language a{font:600 .66rem Manrope;padding:.35rem .5rem;color:var(--muted)}.language a[aria-current=page]{background:var(--accent);color:var(--bg)}.theme-picker{position:relative}.theme-trigger{border:0;background:transparent;display:flex;align-items:center;gap:.45rem;cursor:pointer;font-size:.72rem}.theme-dot{width:14px;height:14px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent),transparent 75%)}.theme-menu{position:absolute;top:calc(100% + 14px);inset-inline-end:0;background:var(--surface);border:1px solid var(--line);padding:.45rem;width:145px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.2s;box-shadow:var(--shadow)}.theme-picker.open .theme-menu{opacity:1;visibility:visible;transform:none}.theme-menu button{width:100%;border:0;background:transparent;padding:.55rem;text-align:start;cursor:pointer;font-size:.75rem;display:flex;gap:.55rem;align-items:center}.theme-menu button:hover{background:var(--surface-2)}.theme-menu i{width:10px;height:10px;border-radius:50%;background:var(--accent)}.menu-button{display:none;background:none;border:0;width:42px;height:42px}.menu-button i{display:block;width:24px;height:1px;background:currentColor;margin:7px}
.hero{min-height:100svh;position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);align-items:center;padding:150px max(5vw,calc((100vw - var(--max))/2)) 90px;isolation:isolate;overflow:hidden}.hero:before{content:"";position:absolute;width:65vw;height:65vw;inset-inline-end:-18vw;top:-20vw;border:1px solid var(--line);border-radius:50%;z-index:-2}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,color-mix(in srgb,var(--accent),transparent 94%));z-index:-3}.hero-copy{max-width:890px;position:relative;z-index:2}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.19em;color:var(--accent);font-size:.69rem;font-weight:700}.hero h1{font-size:clamp(3rem,6.8vw,7rem);letter-spacing:-.055em;max-width:1100px;margin:.8rem 0 1.6rem;text-wrap:balance}html[lang=fa] .hero h1{letter-spacing:-.035em;font-size:clamp(2.8rem,6.2vw,6.4rem)}.hero-lead{color:var(--muted);font-size:clamp(1rem,1.45vw,1.25rem);max-width:690px}.hero-actions{display:flex;align-items:center;gap:2rem;margin-top:2.4rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-width:180px;padding:.85rem 1rem;border:1px solid var(--accent);font-weight:600;font-size:.82rem}.button.primary{background:var(--accent);color:var(--bg)}.button span{font-size:1.2rem}.text-link{font-size:.82rem;border-bottom:1px solid var(--line);padding:.5rem 0;display:flex;gap:1rem}.hero-signature{justify-self:end;position:relative;text-align:end;font-family:Manrope;line-height:.75;transform:rotate(-4deg);opacity:.9}.hero-signature strong,.hero-signature>span{display:block;font-size:clamp(3rem,6vw,6rem);letter-spacing:-.09em}.hero-signature strong{font-weight:400;color:var(--muted)}.hero-signature>span{font-weight:800;color:var(--accent)}.hero-signature small{display:block;margin-top:2rem;letter-spacing:.24em;color:var(--muted);font-size:.55rem}.scroll-cue{position:absolute;bottom:2rem;inset-inline-start:max(5vw,calc((100vw - var(--max))/2));font-size:.64rem;color:var(--muted);letter-spacing:.08em;display:flex;align-items:center;gap:.7rem}.scroll-cue span{width:38px;height:1px;background:var(--accent)}.hero-orbit{position:absolute;width:520px;height:520px;inset-inline-end:2vw;top:20%;border-radius:50%;border:1px solid var(--line);z-index:-1;animation:spin 28s linear infinite}.hero-orbit span{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--accent)}.hero-orbit span:nth-child(1){top:-4px;left:50%}.hero-orbit span:nth-child(2){right:5%;top:28%}.hero-orbit span:nth-child(3){bottom:9%;left:18%}@keyframes spin{to{transform:rotate(360deg)}}
.proof{display:grid;grid-template-columns:repeat(3,1fr);max-width:var(--max);margin:auto;border-block:1px solid var(--line)}.proof div{padding:2.3rem clamp(1rem,3vw,3.5rem);display:flex;align-items:center;gap:1.2rem;border-inline-end:1px solid var(--line)}.proof div:last-child{border:0}.proof strong{font:400 clamp(2rem,4vw,4rem)/1 Manrope;color:var(--accent)}.proof span{color:var(--muted);font-size:.78rem;max-width:140px;line-height:1.5}.section{max-width:var(--max);margin:auto;padding:clamp(6rem,10vw,10rem) 1.2rem}.section-heading{display:grid;grid-template-columns:.7fr 1.5fr 1fr;gap:4rem;align-items:start;margin-bottom:4rem}.section-heading h2,.about h2,.process h2,.impact>h2,.contact h2{font-size:clamp(2.3rem,5vw,5rem);letter-spacing:-.045em;text-wrap:balance}.section-heading p:last-child,.process-intro>p:last-child,.about-copy>p:last-child,.contact>p{color:var(--muted)}
.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.2rem}.project-card{grid-column:span 6}.project-card:nth-child(3n){grid-column:span 7}.project-card:nth-child(4n){grid-column:span 5}.project-card a{display:block}.project-visual{height:clamp(260px,35vw,520px);background:var(--surface);border:1px solid var(--line);position:relative;overflow:hidden;border-radius:var(--radius);transition:transform .4s,background .45s}.project-visual:after{content:"";position:absolute;width:65%;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 45px color-mix(in srgb,var(--accent),transparent 96%),0 0 0 90px color-mix(in srgb,var(--accent),transparent 98%)}.project-card:nth-child(2n) .project-visual:after{border-radius:4%;transform:translate(-50%,-50%) rotate(24deg)}.project-card:hover .project-visual{transform:translateY(-7px);background:var(--surface-2)}.project-no,.project-domain,.project-arrow{position:absolute;z-index:2}.project-no{top:1.2rem;inset-inline-start:1.2rem;font:600 .7rem Manrope;color:var(--muted)}.project-domain{top:50%;left:50%;transform:translate(-50%,-50%);font:800 clamp(1.15rem,2.4vw,2.6rem) Manrope;letter-spacing:-.05em;white-space:nowrap;color:var(--accent)}.project-arrow{bottom:1rem;inset-inline-end:1rem;width:44px;height:44px;border:1px solid var(--line);display:grid;place-items:center;border-radius:50%}.project-info{padding:1.2rem .15rem 2.4rem;position:relative}.project-info p{font-size:.69rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:.35rem}.project-info h3{font-size:clamp(1.3rem,2vw,2rem);margin:0}.project-info>span{position:absolute;inset-inline-end:0;bottom:2.6rem;color:var(--muted);font-size:.7rem}
.process{--progress:0;min-height:450vh;position:relative;background:var(--surface);border-block:1px solid var(--line)}.process-intro{max-width:var(--max);margin:auto;padding:8rem 1.2rem 3rem;display:grid;grid-template-columns:.8fr 1.5fr 1fr;gap:4rem}.process-stage{position:sticky;top:0;min-height:100vh;max-width:var(--max);margin:auto;padding:9rem 1.2rem 3rem;display:grid;grid-template-columns:50px 1fr 1fr;gap:2.5rem;align-items:center}.process-rail{height:60vh;width:2px;background:var(--line);position:relative}.process-rail span{position:absolute;inset:0;background:var(--accent);transform:scaleY(var(--progress));transform-origin:top}.process-steps{display:grid;gap:1.1rem}.process-step{display:grid;grid-template-columns:45px 1fr;gap:1rem;opacity:.28;transform:translateX(calc((1 - var(--progress)) * 12px));transition:opacity .25s}.process-step.active{opacity:1}.process-step>span{font:600 .68rem Manrope;color:var(--accent);padding-top:.2rem}.process-step h3{font-size:clamp(1.1rem,1.6vw,1.55rem);margin-bottom:.25rem}.process-step p{color:var(--muted);font-size:.78rem;max-width:500px;margin:0}.process-map{width:min(38vw,510px);aspect-ratio:1;position:relative;justify-self:end;transform:rotate(calc(var(--progress) * 32deg))}.process-map svg{width:100%;height:100%;fill:none;stroke:var(--line);stroke-width:1}.map-core{position:absolute;inset:38%;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--bg);font:800 1rem Manrope;z-index:2}.map-node{position:absolute;background:var(--bg);border:1px solid var(--line);padding:.5rem .7rem;font:600 .58rem Manrope;font-style:normal;z-index:3}.n1{top:7%;left:40%}.n2{right:0;top:45%}.n3{bottom:6%;left:34%}.n4{left:0;top:44%}
.impact>h2{max-width:1000px}.impact-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:4rem}.impact-grid article{padding:2.5rem 2rem;border-inline-end:1px solid var(--line)}.impact-grid article:last-child{border:0}.impact-grid span{font:600 .65rem Manrope;color:var(--accent)}.impact-grid h3{font-size:1.5rem;margin:2rem 0 .7rem}.impact-grid p{color:var(--muted);font-size:.85rem}.about{display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-top:1px solid var(--line)}.about-copy>p:last-child{max-width:570px}.timeline article{display:grid;grid-template-columns:120px 1fr;gap:1.5rem;padding:1.7rem 0;border-bottom:1px solid var(--line)}.timeline time{color:var(--accent);font:600 .69rem Manrope}.timeline h3{margin:0;font-size:1.1rem}.timeline p{margin:0;color:var(--muted);font-size:.78rem}.marquee{border-block:1px solid var(--line);overflow:hidden;padding:1.3rem 0}.marquee>div{display:flex;width:max-content;animation:marquee 35s linear infinite}.marquee span{font:600 .75rem Manrope;letter-spacing:.08em;white-space:nowrap}.marquee i{font-style:normal;color:var(--accent);margin:0 2rem}@keyframes marquee{to{transform:translateX(-50%)}}[dir=rtl] .marquee>div{animation-direction:reverse}.contact{text-align:center;max-width:1050px;margin:auto;padding:clamp(7rem,12vw,12rem) 1.2rem}.contact h2{margin-inline:auto}.contact>p{max-width:620px;margin:0 auto 2rem}.contact-actions{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:.8rem}.contact .button{margin:0}.button.whatsapp{background:transparent;color:var(--text)}.button.whatsapp:hover{background:color-mix(in srgb,var(--accent),transparent 90%)}footer{max-width:var(--max);margin:auto;padding:2rem 1.2rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.7rem}footer .brand{color:var(--text)}
@media(max-width:920px){.site-header{grid-template-columns:1fr auto auto;height:76px}.menu-button{display:block;order:2}.main-nav{position:absolute;top:76px;inset-inline:1rem;background:var(--surface);border:1px solid var(--line);padding:1.2rem;display:none;flex-direction:column;gap:.8rem;box-shadow:var(--shadow)}.main-nav.open{display:flex}.header-tools{order:3}.theme-trigger>span:last-child{display:none}.hero{grid-template-columns:1fr;padding-top:125px}.hero-copy{align-self:end}.hero-signature{display:none}.hero-orbit{width:70vw;height:70vw;opacity:.65}.section-heading,.process-intro{grid-template-columns:1fr;gap:1rem}.process-intro{padding-bottom:4rem}.process-stage{grid-template-columns:24px 1.1fr .9fr;gap:1rem;padding-top:6rem}.project-info>span{display:none}.about{gap:3rem}.impact-grid article{padding:2rem 1rem}}
@media(max-width:650px){body{font-size:15px}.site-header{padding:0 1rem}.brand small{display:none}.brand-mark{width:36px;height:36px}.language a{padding:.3rem}.hero{padding-inline:1rem;min-height:780px}.hero h1{font-size:clamp(2.7rem,13vw,4.5rem)}html[lang=fa] .hero h1{font-size:clamp(2.45rem,11.5vw,4rem)}.hero-actions{align-items:flex-start;flex-direction:column;gap:.6rem}.proof{grid-template-columns:1fr;margin:0 1rem}.proof div{border-inline-end:0;border-bottom:1px solid var(--line);padding:1.2rem}.proof div:last-child{border:0}.section{padding-block:5.5rem}.section-heading{margin-bottom:2.5rem}.project-grid{display:block}.project-visual{height:280px}.process{min-height:420vh}.process-intro{padding:5.5rem 1rem 2rem}.process-stage{grid-template-columns:12px 1fr;padding:5.5rem 1rem 2rem;align-items:start}.process-rail{height:70vh}.process-map{position:absolute;width:180px;opacity:.12;inset-inline-end:-30px;top:36%;z-index:-1}.process-step{grid-template-columns:34px 1fr}.process-step p{font-size:.75rem}.impact-grid{grid-template-columns:1fr}.impact-grid article{border-inline-end:0;border-bottom:1px solid var(--line)}.about{grid-template-columns:1fr}.timeline article{grid-template-columns:90px 1fr}footer{align-items:flex-start;gap:1rem;flex-direction:column}.scroll-cue{inset-inline-start:1rem}.header-tools{gap:.6rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.process{min-height:auto}.process-stage{position:relative;min-height:auto}.process-step{opacity:1;transform:none}.process-rail span{transform:none}.process-map{transform:none}}

/* Scroll-linked personal introduction. The fully open frame is the CSS/no-JS default. */
.portrait-story{--portrait-progress:1;position:relative;min-height:auto;border-block:1px solid var(--line);background:var(--surface)}
.portrait-stage{min-height:100svh;max-width:var(--max);margin:auto;padding:7rem 1.2rem;display:grid;grid-template-columns:minmax(280px,.82fr) minmax(340px,1.18fr);gap:clamp(3rem,8vw,9rem);align-items:center}
.portrait-copy{position:relative;z-index:2}.portrait-copy h2{font-size:clamp(2.4rem,5vw,5.2rem);letter-spacing:-.045em;margin:.8rem 0 1.5rem;text-wrap:balance}.portrait-copy>p:last-of-type{color:var(--muted);max-width:610px}.portrait-copy .text-link{width:max-content;margin-top:2rem}
.portrait-wrap{height:min(76vh,780px);max-height:800px;position:relative;display:grid;place-items:center}.portrait-frame{width:100%;height:100%;margin:0;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background:#303030;box-shadow:var(--shadow)}.portrait-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 42%;transform:none}.portrait-glow{position:absolute;inset:-1rem;border:1px solid color-mix(in srgb,var(--accent),transparent 45%);border-radius:calc(var(--radius) + 8px);pointer-events:none}.portrait-index{position:absolute;bottom:-2rem;inset-inline-end:0;font:600 .62rem Manrope;letter-spacing:.18em;color:var(--accent)}
.js .portrait-story{--portrait-progress:0;min-height:185vh}.js .portrait-stage{position:sticky;top:0}.js .portrait-frame{width:calc(28% + var(--portrait-progress) * 72%)}.js .portrait-frame img{transform:translate3d(0,calc((1 - var(--portrait-progress)) * 1.5%),0) scale(calc(1.08 - var(--portrait-progress) * .08));will-change:transform}.js .portrait-glow{inset-inline:calc((1 - var(--portrait-progress)) * 34% - 1rem)}
.inline-about{display:block;width:max-content;margin-top:1rem;color:var(--accent);font-weight:600;font-size:.78rem;border-bottom:1px solid var(--line)}
.inner-header{position:relative}.about-detail{max-width:var(--max);margin:auto}.about-detail-hero{min-height:calc(100svh - 92px);padding:clamp(5rem,9vw,9rem) 1.2rem;display:grid;grid-template-columns:1fr minmax(300px,.7fr);gap:8vw;align-items:center}.about-detail-hero h1{font-size:clamp(3rem,7vw,7rem);letter-spacing:-.055em;margin:.8rem 0 1.5rem}.about-detail-hero h1 span{display:block;color:var(--accent);font:600 clamp(1rem,2vw,1.6rem) Manrope;letter-spacing:.05em;margin-top:1rem}.about-detail-hero p:last-child{color:var(--muted);max-width:680px}.about-detail-hero figure{margin:0;height:min(68vh,720px);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius)}.about-detail-hero img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 42%}.about-page .about{max-width:none}
@media(max-width:920px){.portrait-stage{grid-template-columns:1fr 1fr;gap:2rem}.portrait-copy h2{font-size:clamp(2.2rem,5vw,4rem)}}
@media(max-width:650px){.portrait-story,.js .portrait-story{min-height:auto}.portrait-stage,.js .portrait-stage{position:relative;min-height:auto;padding:5rem 1rem;grid-template-columns:1fr;gap:2.5rem}.portrait-copy{order:2}.portrait-wrap{height:min(68vh,600px);width:100%}.js .portrait-frame{width:calc(56% + var(--portrait-progress) * 44%)}.portrait-frame img{object-position:50% 40%}.js .portrait-frame img{transform:translate3d(0,calc((1 - var(--portrait-progress)) * 1%),0) scale(calc(1.045 - var(--portrait-progress) * .045))}.js .portrait-glow{inset-inline:calc((1 - var(--portrait-progress)) * 22% - .7rem)}.about-detail-hero{grid-template-columns:1fr;padding:4rem 1rem}.about-detail-hero figure{height:58vh;order:-1}.about-detail-hero h1{font-size:clamp(2.7rem,13vw,4.5rem)}}
@media(prefers-reduced-motion:reduce){.js .portrait-story{min-height:auto}.js .portrait-stage{position:relative}.js .portrait-frame{width:100%}.js .portrait-frame img{transform:none}.js .portrait-glow{inset:-1rem}}

/* Keep animated children inside their own sections instead of relying on body clipping. */
.portrait-story,.process{overflow-x:clip}.process-stage>*{min-width:0}
@media(max-width:920px){.process-step{transform:translateY(calc((1 - var(--progress)) * 8px))}.process-map{max-width:100%;justify-self:center}.process-steps,.process-step>div{min-width:0}}
@media(max-width:650px){.process{min-height:auto}.process-stage{position:relative;min-height:auto;display:block;padding:1rem 1rem 5rem}.process-rail,.process-map{display:none}.process-steps{gap:.75rem}.process-step{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.75rem;padding:1rem;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);opacity:1;transform:none}.process-step p{font-size:.78rem}.contact-actions{flex-direction:column;align-items:center}.contact-actions .button{width:min(100%,320px);min-height:48px}}
@media(prefers-reduced-motion:reduce){.process-step{transform:none}}
.article-shell{max-width:1100px;margin:auto;padding:9rem 1.2rem 6rem}.article-shell>h1,.article-body h1{font-size:clamp(2.8rem,7vw,6rem);margin:.5rem 0 3rem}.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.article-grid article{border:1px solid var(--line);background:var(--surface);padding:1.5rem;border-radius:var(--radius)}.article-grid time,.article-meta{color:var(--muted);font-size:.76rem}.article-grid h2{font-size:1.5rem}.article-grid p,.article-lead{color:var(--muted)}.article-body{max-width:800px;margin:auto}.rich-text{font-size:1.05rem}.rich-text h2{font-size:2rem;margin-top:2.5rem}.rich-text img{max-width:100%;height:auto}.rich-text a{color:var(--accent);text-decoration:underline}@media(max-width:800px){.article-grid{grid-template-columns:1fr}.article-shell{padding-top:7rem}}
.card-image,.featured-image{display:block;width:100%;height:auto;object-fit:cover;border-radius:var(--radius)}.card-image{aspect-ratio:16/9;margin-bottom:1rem}.featured-image{margin:1.5rem 0;max-height:620px}.breadcrumb{display:flex;flex-wrap:wrap;gap:.55rem;color:var(--muted);font-size:.78rem;margin-bottom:2rem}.breadcrumb a:hover{color:var(--accent)}.pagination{display:flex;gap:.5rem;justify-content:center;margin-top:3rem}.pagination a{border:1px solid var(--line);padding:.55rem .8rem}.pagination a[aria-current=page]{background:var(--accent);color:var(--bg)}.related{max-width:1100px;margin:5rem auto 0;border-top:1px solid var(--line);padding-top:3rem}.latest-content{overflow:hidden}.latest-content .section-heading{align-items:end}.latest-content .article-grid{width:100%;min-width:0}.latest-content article{min-width:0}.latest-content h3{font-size:1.35rem}.empty-state{grid-column:1/-1}.inner-header{position:relative}.articles-page footer{gap:1.5rem;flex-wrap:wrap}
.project-image,.featured-image{display:block;width:100%;height:100%;object-fit:cover}.project-image{position:absolute;inset:0;z-index:1;opacity:.72}.featured-image{height:auto;max-height:560px;margin:0 0 2rem;border-radius:var(--radius)}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,2rem);margin-block:2rem 5rem}.portfolio-card{background:var(--surface);border:1px solid var(--line);border-radius:1rem;padding:1rem;box-shadow:0 18px 50px rgb(0 0 0/.08);transition:transform .25s ease,border-color .25s ease}.portfolio-card:hover,.portfolio-card:focus-within{transform:translateY(-4px);border-color:var(--accent)}.portfolio-card img,.project-hero-image,.project-gallery img{display:block;width:100%;height:auto;border-radius:.75rem}.portfolio-filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-block:2rem}.portfolio-filters a{padding:.55rem .9rem;border:1px solid var(--line);border-radius:99px;color:inherit;text-decoration:none}.portfolio-filters a[aria-current=page]{background:var(--accent);color:var(--bg)}.project-shell{width:min(1040px,calc(100% - 2rem));margin:8rem auto 5rem}.project-shell h1{font-size:clamp(2.4rem,7vw,6rem);line-height:1.05}.project-intro,.page-lead{font-size:clamp(1.05rem,2vw,1.35rem);max-width:68ch}.case-study{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-block:3rem}.case-study section{padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--line);border-radius:1rem;background:var(--surface)}.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-block:3rem}.error-shell{width:min(680px,calc(100% - 2rem));min-height:100vh;margin:auto;display:grid;place-content:center;gap:1rem}.error-shell h1{font-size:clamp(5rem,20vw,12rem);margin:0}@media(max-width:760px){.portfolio-grid,.case-study,.project-gallery{grid-template-columns:1fr}.portfolio-card:hover{transform:none}}
