
:root{--bg:#f7f7f5;--surface:#fff;--ink:#090909;--muted:#666;--line:#d9d9d4;--soft:#efefec;--container:1240px;--shadow:0 24px 80px rgba(0,0,0,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;overflow-x:hidden;min-width:320px;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}::selection{background:#111;color:#fff}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.container{width:min(calc(100% - 48px),var(--container));margin-inline:auto}.skip-link{position:fixed;left:12px;top:12px;z-index:9999;padding:10px 14px;background:#000;color:#fff;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:1000;background:rgba(247,247,245,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.navbar{height:74px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:650;letter-spacing:-.025em}.brand img{width:44px;height:31px;object-fit:contain}.brand-name{font-size:15px}.nav-links{display:flex;align-items:center;gap:30px}.nav-link{font-size:14px;color:#666;position:relative}.nav-link:hover,.nav-link[aria-current=page]{color:#000}.nav-link[aria-current=page]::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:1px;background:#000}.nav-cta,.button{min-height:46px;padding:0 22px;border:1px solid #cfcfca;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:14px;font-weight:620;cursor:pointer;transition:.2s ease}.nav-cta:hover,.button:hover{transform:translateY(-2px);border-color:#000}.button-dark{background:#0a0a0a;color:#fff;border-color:#0a0a0a}.button-dark:hover{background:#242424}.button-light{background:#fff;color:#000;border-color:#fff}.menu-button{display:none;width:46px;height:46px;border:1px solid var(--line);background:transparent}.menu-button span,.menu-button::before,.menu-button::after{content:"";display:block;width:19px;height:1px;background:#000;margin:5px auto;transition:.2s}.menu-open .menu-button span{opacity:0}.menu-open .menu-button::before{transform:translateY(6px) rotate(45deg)}.menu-open .menu-button::after{transform:translateY(-6px) rotate(-45deg)}
.hero{min-height:780px;padding:92px 0 110px;display:grid;grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);align-items:center;gap:84px}.eyebrow,.kicker{margin:0 0 24px;text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:720}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow span{width:7px;height:7px;border-radius:50%;background:#111}.hero h1,.page-hero h1{margin:0;max-width:780px;font-size:clamp(54px,6.2vw,94px);line-height:.96;letter-spacing:-.065em;font-weight:560}.hero-lead,.page-hero>div>p:last-child{max-width:610px;margin:30px 0 0;color:var(--muted);font-size:19px;line-height:1.55}.hero-actions{display:flex;gap:10px;margin-top:38px}.hero-meta{display:flex;gap:32px;margin-top:62px;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:#777}.hero-stage{height:590px;position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 30px 100px rgba(0,0,0,.045);isolation:isolate}.stage-grid{position:absolute;inset:0;background-image:linear-gradient(#eee 1px,transparent 1px),linear-gradient(90deg,#eee 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 88%)}.stage-grid::after{content:"";position:absolute;inset:34px;border:1px solid #ecece8}.stage-logo{position:absolute;width:42%;left:29%;top:32%;z-index:2;opacity:.96}.stage-label,.stage-coordinate{position:absolute;z-index:3;font-size:9px;letter-spacing:.2em;color:#777}.stage-label{left:42px;top:42px}.stage-coordinate{right:42px;bottom:34px}.object{position:absolute;z-index:4;will-change:transform;filter:drop-shadow(0 18px 24px rgba(0,0,0,.12));transition:transform .22s ease-out}.object-sphere{width:27%;left:-7%;top:10%}.object-capsule{width:38%;right:-8%;top:9%;transform:rotate(-12deg)}.object-torus{width:36%;left:1%;bottom:-7%;transform:rotate(7deg)}.object-cube{width:27%;right:4%;bottom:2%}.marquee{overflow:hidden;border-block:1px solid var(--line);background:#fff}.marquee>div{min-width:max-content;display:flex;align-items:center;gap:30px;padding:18px 0;animation:marquee 24s linear infinite}.marquee span{font-size:11px;letter-spacing:.2em}.marquee i{width:4px;height:4px;background:#111;border-radius:50%}@keyframes marquee{to{transform:translateX(-25%)}}
.section{padding:130px 0}.section.compact-top{padding-top:20px}.section-heading{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:80px;align-items:end;margin-bottom:70px}.section-heading h2,.method-copy h2,.faq-layout h2,.identity-copy h2,.closing-inner h2,.about-main h2{margin:0;font-size:clamp(40px,4.4vw,68px);line-height:1.02;letter-spacing:-.055em;font-weight:560}.section-heading>p{margin:0;color:var(--muted);max-width:440px}.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}.capability{min-height:330px;padding:30px;border-right:1px solid var(--line);position:relative;background:#fff;transition:.25s}.capability:last-child{border-right:0}.capability:hover{background:#0b0b0b;color:#fff;transform:translateY(-8px);box-shadow:var(--shadow);z-index:2}.capability img{width:42px;height:42px;object-fit:contain;margin-bottom:72px}.capability:hover img{filter:invert(1)}.capability>span{position:absolute;right:26px;top:26px;color:#999;font-size:12px}.capability h3{margin:0 0 12px;font-size:24px;letter-spacing:-.035em}.capability p{margin:0;color:#777;font-size:14px}.capability:hover p{color:#bbb}
.work-section{background:#fff}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.project-card{grid-column:span 6;border:1px solid var(--line);background:var(--bg);overflow:hidden;transition:.25s}.project-card:nth-child(3n+1){grid-column:span 7}.project-card:nth-child(3n+2){grid-column:span 5}.project-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:#aaa}.project-art{height:420px;position:relative;overflow:hidden;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}.project-art::before{content:"";position:absolute;inset:0;background-image:url('assets/textures/dot-grid.png');background-size:220px;opacity:.22}.project-art img{position:absolute;max-width:58%;max-height:68%;object-fit:contain;filter:drop-shadow(0 22px 28px rgba(0,0,0,.18));transition:transform .45s cubic-bezier(.2,.7,.2,1)}.project-card:hover .project-art img{transform:scale(1.07) rotate(-3deg)}.project-art strong{position:absolute;left:32px;bottom:26px;font-size:clamp(30px,4vw,62px);line-height:1;letter-spacing:-.06em;font-weight:540}.project-number{position:absolute;top:24px;left:28px;font-size:11px;letter-spacing:.16em;z-index:3}.project-window{position:absolute;right:24px;top:24px;display:flex;gap:5px}.project-window span{width:5px;height:5px;border-radius:50%;background:currentColor}.project-black .project-art,.project-dark .project-art{background:#0a0a0a;color:#fff}.project-black .project-art::before,.project-dark .project-art::before{filter:invert(1);opacity:.13}.project-grid .project-grid .project-art{background:#f5f5f2}.project-light .project-art{background:#efefec}.project-info{min-height:108px;padding:24px 28px;display:flex;justify-content:space-between;gap:20px}.project-info h3{margin:0 0 5px;font-size:20px;letter-spacing:-.035em}.project-info p{margin:0;color:#777;font-size:13px}.project-info>span{font-size:24px}.section-action{margin-top:44px;text-align:right}.text-link{font-weight:620;border-bottom:1px solid #111;padding-bottom:7px}.text-link span{margin-left:20px}
.method-section{background:#efefec}.method-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:120px}.method-copy{position:sticky;top:120px;align-self:start}.method-copy p:not(.kicker){color:#666;max-width:480px;margin:24px 0 34px}.method-list{border-top:1px solid #bbb}.method-list article{display:grid;grid-template-columns:70px 1fr;gap:28px;padding:30px 0;border-bottom:1px solid #c9c9c4}.method-list article>span{font-size:12px;color:#888}.method-list h3{margin:0 0 8px;font-size:26px;letter-spacing:-.04em}.method-list p{margin:0;color:#666}.identity-section{padding-top:0}.identity-panel{min-height:650px;background:#0a0a0a;color:#fff;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.identity-art{position:relative;min-height:650px;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:44px 44px}.identity-art::after{content:"";position:absolute;inset:40px;border:1px solid rgba(255,255,255,.13)}.identity-mark{position:absolute;width:36%;left:32%;top:31%;z-index:2}.identity-object{position:absolute;z-index:3;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}.identity-object.rings{width:43%;right:-9%;top:4%}.identity-object.globe{width:39%;left:-7%;bottom:-3%}.identity-copy{padding:82px;display:flex;flex-direction:column;justify-content:center}.kicker.light{color:#aaa}.identity-copy p:not(.kicker){color:#b8b8b8;font-size:17px;max-width:560px}.identity-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:32px}.identity-tags span{padding:9px 12px;border:1px solid #393939;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.service-card{min-height:390px;padding:30px;border:1px solid var(--line);background:#fff;position:relative;display:flex;flex-direction:column}.service-card>span{position:absolute;right:26px;top:24px;color:#999;font-size:12px}.service-card img{width:42px;height:42px;object-fit:contain;margin-bottom:70px}.service-card h3{font-size:24px;letter-spacing:-.04em;margin:0 0 14px}.service-card p{color:#707070;margin:0}.service-card a{margin-top:auto;padding-top:32px;font-size:13px;font-weight:650;border-top:1px solid var(--line);display:flex;justify-content:space-between}.faq-section{background:#fff}.faq-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:110px}.faq-layout>div:first-child>p:not(.kicker){color:#666;max-width:390px;margin:22px 0 30px}.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-question{width:100%;padding:25px 0;border:0;background:none;display:flex;justify-content:space-between;text-align:left;font-size:20px;cursor:pointer}.faq-question span{font-size:28px;font-weight:300;transition:.2s}.faq-item.open .faq-question span{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease}.faq-answer p{margin:0;padding:0 54px 28px 0;color:#666}.closing-section{background:#0a0a0a;color:#fff}.closing-inner{min-height:390px;display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:60px}.closing-inner>img{width:170px;max-height:160px;object-fit:contain}.closing-inner p:not(.kicker){color:#aaa;max-width:580px}.site-footer{background:#0a0a0a;color:#fff;border-top:1px solid #2d2d2d;padding:80px 0 26px}.footer-grid{display:grid;grid-template-columns:1.7fr repeat(3,.55fr);gap:70px}.footer-brand img{width:92px}.footer-brand p{max-width:420px;color:#999}.footer-grid h3{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#777;margin:0 0 20px}.footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:10px}.footer-grid a{font-size:14px;color:#bbb}.footer-grid a:hover{color:#fff}.footer-bottom{border-top:1px solid #2b2b2b;margin-top:72px;padding-top:23px;display:flex;justify-content:space-between;color:#777;font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.page-hero{min-height:610px;padding:100px 0;display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:center;border-bottom:1px solid var(--line)}.page-object{height:390px;position:relative;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);overflow:hidden}.page-object::before{content:"";position:absolute;inset:0;background-image:url('assets/textures/line-grid.png');background-size:230px;opacity:.18}.page-object img{position:relative;max-width:76%;max-height:78%;object-fit:contain;filter:drop-shadow(0 24px 30px rgba(0,0,0,.14))}.logo-object img{max-width:52%}.all-projects .project-card{grid-column:span 6}.all-projects .project-card:nth-child(n){grid-column:span 6}.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:120px}.about-main p:not(.kicker){font-size:19px;color:#616161;max-width:710px}.about-facts{border-top:1px solid var(--line)}.about-facts div{padding:24px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:30px}.about-facts span{color:#777;font-size:13px}.about-facts strong{text-align:right;font-weight:550}.discipline-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}.discipline-grid article{padding:32px;min-height:320px;border-right:1px solid var(--line);background:#fff}.discipline-grid article:last-child{border-right:0}.discipline-grid img{width:42px;height:42px;object-fit:contain;margin-bottom:76px}.discipline-grid h3{font-size:22px;margin:0 0 10px}.discipline-grid p{color:#707070;margin:0;font-size:14px}.contact-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.contact-form{background:#fff;border:1px solid var(--line);padding:38px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{display:flex;flex-direction:column;gap:9px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:650;margin-bottom:20px}.contact-form input,.contact-form textarea,.contact-form select{width:100%;border:1px solid #d3d3cf;background:#f8f8f6;padding:14px;color:#111;outline:none;text-transform:none;letter-spacing:0;font-weight:400}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:#000;background:#fff}.contact-form textarea{resize:vertical}.form-submit{display:flex;align-items:center;gap:24px}.form-status{font-size:12px;color:#777;margin:0}.contact-aside{background:#0a0a0a;color:#fff;display:flex;flex-direction:column}.contact-aside-art{position:relative;min-height:360px;display:flex;align-items:center;justify-content:center;overflow:hidden;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:40px 40px}.contact-aside-art>img:first-child{width:36%;position:relative;z-index:2}.contact-orbit{position:absolute!important;width:54%!important;right:-16%;top:-10%;filter:drop-shadow(0 20px 35px rgba(0,0,0,.5))}.contact-details{padding:40px}.contact-details>a{font-size:26px;letter-spacing:-.03em;border-bottom:1px solid #555}.contact-details>p:not(.kicker){color:#aaa}.contact-socials{display:flex;gap:22px;margin-top:34px}.contact-socials a{font-size:13px;color:#ccc}.error-page{display:grid;min-height:100vh}.error-main{margin:auto;text-align:center;padding:40px}.error-main img{width:180px;margin:0 auto 36px}.error-main h1{font-size:clamp(70px,14vw,190px);line-height:.85;letter-spacing:-.08em;margin:10px 0 30px;font-weight:560}.error-main>p{color:#666}.error-main .button{margin-top:20px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}:focus-visible{outline:2px solid #111;outline-offset:4px}
@media(max-width:1050px){.hero{grid-template-columns:1fr;gap:56px;padding-top:80px}.hero-stage{height:560px}.capability-grid,.service-grid,.discipline-grid{grid-template-columns:1fr 1fr}.capability:nth-child(2),.discipline-grid article:nth-child(2){border-right:0}.capability:nth-child(-n+2),.discipline-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}.method-layout,.faq-layout,.about-grid,.contact-layout{grid-template-columns:1fr;gap:60px}.method-copy{position:static}.identity-panel{grid-template-columns:1fr}.identity-art{min-height:540px}.section-heading{grid-template-columns:1fr;gap:26px}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}.footer-grid>div:last-child{grid-column:2}.closing-inner{grid-template-columns:140px 1fr}.closing-inner .button{grid-column:2;justify-self:start}.page-hero{grid-template-columns:1fr}.page-object{height:430px}}
@media(max-width:760px){.container{width:min(calc(100% - 28px),var(--container))}.navbar{height:66px}.menu-button{display:block}.nav-links{position:fixed;top:66px;left:0;right:0;height:calc(100dvh - 66px);background:#f7f7f5;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:22px 14px;transform:translateX(105%);transition:.25s}.menu-open .nav-links{transform:none}.nav-link{padding:18px 6px;border-bottom:1px solid var(--line);font-size:20px}.nav-link[aria-current=page]::after{display:none}.nav-cta{margin-top:18px}.hero{min-height:0;padding:70px 0 80px}.hero h1,.page-hero h1{font-size:clamp(48px,14vw,72px)}.hero-lead,.page-hero>div>p:last-child{font-size:17px}.hero-meta{flex-direction:column;gap:8px;margin-top:46px}.hero-stage{height:440px}.stage-logo{width:48%;left:26%;top:34%}.stage-label{left:24px;top:24px}.stage-coordinate{right:22px;bottom:20px}.object-sphere{width:33%}.object-capsule{width:46%}.object-torus{width:45%}.object-cube{width:34%}.section{padding:90px 0}.section-heading{margin-bottom:45px}.section-heading h2,.method-copy h2,.faq-layout h2,.identity-copy h2,.closing-inner h2,.about-main h2{font-size:clamp(38px,11vw,55px)}.capability-grid,.service-grid,.discipline-grid{grid-template-columns:1fr}.capability,.discipline-grid article{border-right:0;border-bottom:1px solid var(--line)!important;min-height:270px}.capability:last-child,.discipline-grid article:last-child{border-bottom:0!important}.capability img,.discipline-grid img{margin-bottom:50px}.project-grid,.all-projects{display:block}.project-card,.project-card:nth-child(n),.all-projects .project-card:nth-child(n){display:block;margin-bottom:16px}.project-art{height:350px}.identity-copy{padding:48px 28px}.identity-art{min-height:440px}.service-card{min-height:330px}.faq-layout{gap:45px}.closing-inner{grid-template-columns:1fr;padding:70px 0;gap:28px}.closing-inner>img{width:120px}.closing-inner .button{grid-column:auto}.footer-grid{grid-template-columns:1fr 1fr;gap:46px}.footer-brand{grid-column:1/-1}.footer-grid>div:last-child{grid-column:auto}.footer-bottom{flex-direction:column;gap:8px}.page-hero{min-height:0;padding:75px 0}.page-object{height:340px}.about-facts div{flex-direction:column;gap:7px}.about-facts strong{text-align:left}.field-row{grid-template-columns:1fr}.contact-form{padding:24px}.form-submit{align-items:flex-start;flex-direction:column}.contact-aside-art{min-height:320px}.contact-details>a{font-size:21px}.brand-name{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.marquee>div{animation:none}.object{transition:none}}

/* V3 — interactive ASCII hero, empty project archive, and section object system */
.float-zone{position:relative;isolation:isolate;overflow:hidden}.float-zone>.floating-object-layer{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;--pointer-x:0;--pointer-y:0}.float-zone>:not(.floating-object-layer){position:relative;z-index:1}.floating-object{position:absolute;width:clamp(170px,24vw,390px);height:auto;object-fit:contain;opacity:.115;image-rendering:auto;filter:drop-shadow(0 28px 48px rgba(0,0,0,.12));will-change:transform}.floating-object-1{right:-8%;top:8%;animation:sectionFloatOne 11s ease-in-out infinite;translate:calc(var(--pointer-x)*11px) calc(var(--pointer-y)*9px)}.floating-object-2{left:-9%;bottom:1%;animation:sectionFloatTwo 14s ease-in-out infinite;translate:calc(var(--pointer-x)*-8px) calc(var(--pointer-y)*-7px)}.identity-section .floating-object,.closing-section .floating-object,.contact-aside .floating-object{opacity:.16;filter:drop-shadow(0 32px 58px rgba(0,0,0,.42))}.work-section .floating-object{opacity:.085}.page-hero .floating-object{opacity:.14}@keyframes sectionFloatOne{0%,100%{transform:translate3d(0,0,0) rotate(-7deg)}50%{transform:translate3d(-18px,26px,0) rotate(4deg)}}@keyframes sectionFloatTwo{0%,100%{transform:translate3d(0,0,0) rotate(8deg)}50%{transform:translate3d(24px,-22px,0) rotate(-3deg)}}

.ascii-stage{height:590px;position:relative;overflow:hidden;background:#080808;color:#fff;border:1px solid #202020;box-shadow:0 34px 110px rgba(0,0,0,.16);isolation:isolate;cursor:crosshair;outline:none}.ascii-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(255,255,255,.1),transparent 28%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px;z-index:0}.ascii-stage::after{content:"";position:absolute;inset:0;background:url('assets/textures/noise.png');background-size:220px;opacity:.08;mix-blend-mode:screen;pointer-events:none;z-index:2}.ascii-stage:focus-visible{outline:2px solid #111;outline-offset:6px}.ascii-toolbar{position:absolute;inset:0 0 auto;z-index:4;min-height:54px;padding:0 20px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:22px;border-bottom:1px solid rgba(255,255,255,.14);background:rgba(8,8,8,.72);backdrop-filter:blur(14px);font:600 9px/1.2 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:.16em;color:#aaa}.ascii-toolbar button{border:0;border-left:1px solid rgba(255,255,255,.14);align-self:stretch;padding:0 0 0 20px;background:transparent;color:#fff;font:inherit;letter-spacing:inherit;cursor:pointer}.ascii-toolbar button:hover{color:#aaa}.ascii-output{position:absolute;inset:72px 18px 42px;margin:0;overflow:hidden;white-space:pre;text-align:center;font:500 clamp(8px,.69vw,11px)/1.26 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:.02em;color:#d7d7d7;opacity:.94;user-select:none;z-index:1}.ascii-caption{position:absolute;left:22px;right:22px;bottom:18px;z-index:4;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.ascii-caption strong{font:700 30px/.8 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-.12em}.ascii-caption span{font:600 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.18em;color:#999}.ascii-noscript{position:absolute;inset:40% 20px auto;text-align:center;font:600 12px/1.5 ui-monospace,monospace;letter-spacing:.15em}

.project-placeholder-grid{gap:18px}.project-slot{grid-column:span 6;border:1px solid var(--line);background:#fafaf8;overflow:hidden;min-width:0}.project-slot:nth-child(3n+1){grid-column:span 7}.project-slot:nth-child(3n+2){grid-column:span 5}.project-slot-canvas{height:420px;position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:#f2f2ef}.project-slot-gridlines{position:absolute;inset:0;background-image:linear-gradient(rgba(0,0,0,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.055) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,#000,transparent 92%)}.project-slot-canvas::before,.project-slot-canvas::after{content:"";position:absolute;z-index:2;width:54px;height:54px;border-color:#aaa;border-style:solid;opacity:.65}.project-slot-canvas::before{left:28px;bottom:28px;border-width:0 0 1px 1px}.project-slot-canvas::after{right:28px;top:28px;border-width:1px 1px 0 0}.project-slot .project-number{z-index:3}.project-slot-status{position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-50%);font-size:10px;letter-spacing:.22em;color:#888;white-space:nowrap}.project-slot-meta{min-height:86px;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.15em;color:#777}.slot-tone-2 .project-slot-canvas{background:#0b0b0b;color:#fff}.slot-tone-2 .project-slot-gridlines{filter:invert(1);opacity:.44}.slot-tone-2 .project-slot-status{color:#888}.slot-tone-3 .project-slot-canvas{background:#e8e8e4}.slot-tone-4 .project-slot-canvas{background:linear-gradient(135deg,#f7f7f5,#deded9)}

.page-hero-copy-only{grid-template-columns:minmax(0,900px);min-height:520px}.contact-details{gap:0}.contact-details .contact-primary{display:block;font-size:clamp(20px,2vw,28px);letter-spacing:-.03em;border-bottom:1px solid #555;padding-bottom:13px}.contact-details .contact-phone{display:block;color:#ddd;font-size:17px;padding:15px 0 8px}.contact-handle{font:600 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;color:#fff!important}.contact-socials{flex-wrap:wrap}.contact-socials a{white-space:nowrap}.footer-grid>div:nth-child(3) a{color:#bbb;font-size:14px;overflow-wrap:anywhere}.footer-grid>div:nth-child(3) a:hover{color:#fff}

img[src*="assets/objects/"]{image-rendering:auto;backface-visibility:hidden}

@media(max-width:1050px){.ascii-stage{height:540px}.project-slot:nth-child(n){grid-column:span 6}}
@media(max-width:760px){.floating-object{width:clamp(150px,52vw,270px);opacity:.07}.ascii-stage{height:440px}.ascii-toolbar{grid-template-columns:1fr auto;padding:0 14px;gap:12px}.ascii-toolbar>span:nth-child(2){display:none}.ascii-toolbar button{padding-left:12px}.ascii-output{inset:70px 10px 42px;font-size:7px;line-height:1.3}.ascii-caption{left:14px;right:14px}.project-placeholder-grid{display:block}.project-slot{display:block;margin-bottom:16px}.project-slot-canvas{height:330px}.project-slot-meta{min-height:76px;padding:19px 20px}.page-hero-copy-only{min-height:440px}}
@media(prefers-reduced-motion:reduce){.floating-object{animation:none!important}.ascii-stage{cursor:default}}

/* V4 — full-screen interactive ASCII portrait hero */
.home-page{background:var(--bg)}.home-page .site-header{position:fixed;inset:0 0 auto;z-index:1000;background:rgba(247,247,245,.76);color:#121212;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.home-page .navbar{width:min(calc(100% - 72px),1536px);height:88px;border-bottom-color:var(--line)}.home-page .brand-name{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:12px;font-weight:560;letter-spacing:.06em}.home-page .nav-link{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:#5f5f59;text-transform:uppercase;letter-spacing:.14em;font-size:11px}.home-page .nav-link:hover{color:#111}.home-page .nav-cta{min-height:38px;padding:0 17px;border-color:#cfcfca;color:#111;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.home-page .nav-cta:hover{border-color:#111}.home-page .menu-button{border-color:var(--line)}.home-page .menu-button span,.home-page .menu-button::before,.home-page .menu-button::after{background:#111}.home-page main{background:var(--bg)}
.portrait-hero{min-height:100svh;padding:20px;background:linear-gradient(180deg,#fbfbf9 0%,#f4f4f1 100%);color:#121212;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.portrait-frame{position:relative;width:min(100%,1600px);min-height:calc(100svh - 40px);margin:0 auto;padding:118px 58px 34px;border:1px solid #d9d9d4;clip-path:polygon(15px 0,calc(100% - 15px) 0,100% 15px,100% calc(100% - 15px),calc(100% - 15px) 100%,15px 100%,0 calc(100% - 15px),0 15px);overflow:hidden;isolation:isolate;background:radial-gradient(circle at 52% 36%,rgba(0,0,0,.035),transparent 28%),linear-gradient(#ffffff,#f6f6f3)}.portrait-frame::before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(0,0,0,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.045) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(circle at center,#000 0,transparent 74%)}.portrait-frame::after{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;background:url('assets/textures/noise.png');background-size:240px;opacity:.045;mix-blend-mode:multiply}.portrait-grid{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(490px,1.62fr) minmax(250px,.7fr);align-items:center;min-height:calc(100svh - 220px);gap:26px;position:relative;z-index:2}.portrait-copy{align-self:center;padding:32px 0 20px;max-width:360px}.portrait-kicker{margin:0 0 18px;color:#5d5d58;font-size:13px;letter-spacing:.04em}.portrait-copy h1{margin:0;color:#090909;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:clamp(49px,4.3vw,78px);font-weight:450;line-height:.88;letter-spacing:-.065em;text-transform:uppercase}.portrait-role{display:flex;align-items:center;margin:24px 0 22px;color:#101010;font-size:clamp(24px,2.2vw,38px);line-height:1;letter-spacing:-.05em}.portrait-role i{display:block;width:2px;height:1.05em;margin-left:8px;background:#111;animation:portraitCaret .8s steps(1,end) infinite}.portrait-intro{max-width:330px;margin:0;color:#5e5e59;font-size:13px;line-height:1.75}.portrait-link{display:inline-block;margin-top:27px;padding-bottom:7px;border-bottom:1px dashed #8a8a85;color:#111;font-size:13px;letter-spacing:.02em;transition:.2s ease}.portrait-link:hover{padding-right:10px;border-color:#111}.portrait-visual{position:relative;height:min(75svh,760px);min-height:560px;align-self:end;overflow:hidden;outline:none;cursor:crosshair;--cursor-x:50%;--cursor-y:50%}.portrait-visual:focus-visible{outline:1px solid #111;outline-offset:8px}.portrait-visual canvas,.portrait-fallback{position:absolute;inset:0;width:100%;height:100%}.portrait-visual canvas{z-index:2;display:block}.portrait-fallback{z-index:1;object-fit:contain;object-position:50% 100%;filter:grayscale(1) contrast(1.2) brightness(1.02);opacity:.1;transition:opacity .45s ease}.portrait-visual.is-ready .portrait-fallback{opacity:0}.portrait-visual::before{content:"";position:absolute;inset:6% 3% 0;z-index:0;background:radial-gradient(ellipse at center,rgba(0,0,0,.04),transparent 68%)}.portrait-visual::after{content:"";position:absolute;left:var(--cursor-x);top:var(--cursor-y);z-index:4;width:150px;height:150px;border:1px solid rgba(17,17,17,.2);border-radius:50%;transform:translate(-50%,-50%) scale(.45);opacity:0;box-shadow:0 0 40px rgba(0,0,0,.06);transition:opacity .2s ease,transform .22s ease;pointer-events:none}.portrait-visual:hover::after,.portrait-visual:focus::after{opacity:1;transform:translate(-50%,-50%) scale(1)}.portrait-scanline{position:absolute;left:5%;right:5%;top:16%;z-index:5;height:1px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.34),transparent);box-shadow:0 0 10px rgba(0,0,0,.06);animation:portraitScan 5.5s ease-in-out infinite;pointer-events:none}.portrait-reticle{position:absolute;left:var(--cursor-x);top:var(--cursor-y);z-index:6;width:12px;height:12px;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.portrait-reticle::before,.portrait-reticle::after{content:"";position:absolute;background:#111}.portrait-reticle::before{left:0;right:0;top:50%;height:1px}.portrait-reticle::after{top:0;bottom:0;left:50%;width:1px}.portrait-visual:hover .portrait-reticle,.portrait-visual:focus .portrait-reticle{opacity:.72}.portrait-instruction{position:absolute;left:50%;bottom:14px;z-index:6;transform:translateX(-50%);margin:0;color:#5f5f59;font-size:8px;letter-spacing:.2em;white-space:nowrap}.portrait-stats{justify-self:end;width:min(100%,270px);padding:26px 24px 22px;border:1px solid #d5d5d0;background:rgba(255,255,255,.74);box-shadow:0 24px 80px rgba(0,0,0,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px)}.portrait-stats>p{margin:0 0 20px;color:#32322f;font-size:11px;letter-spacing:.05em}.stat-row{position:relative;display:grid;grid-template-columns:1fr auto;gap:16px;padding:7px 0 11px;color:#565651;font-size:11px}.stat-row strong{color:#111;font-weight:600}.stat-row i{position:absolute;left:0;bottom:3px;width:100%;height:1px;background:#dadad5;overflow:hidden}.stat-row i::after{content:"";display:block;width:calc(var(--level)*100%);height:100%;background:#111;transform-origin:left;animation:statReveal 1.2s .45s both}.portrait-stats button{margin-top:17px;padding:10px 0 0;border:0;border-top:1px solid #d9d9d4;background:none;color:#4b4b47;font:inherit;font-size:9px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.portrait-stats button:hover{color:#111}.portrait-bottom{position:relative;z-index:3;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:20px;min-height:55px;color:#5d5d58;font-size:9px;letter-spacing:.08em}.portrait-status{justify-self:start;padding:11px 14px;border:1px solid #d8d8d3;color:#30302d;background:rgba(255,255,255,.72)}.portrait-status span{color:#666}.portrait-status i{display:inline-block;width:6px;height:6px;margin-left:10px;border-radius:50%;background:#111;box-shadow:0 0 8px rgba(0,0,0,.18);animation:statusPulse 1.8s ease-in-out infinite}.portrait-coordinates{justify-self:center;color:#666}.portrait-scroll{justify-self:end;display:flex;align-items:center;gap:12px}.portrait-scroll b{display:block;width:1px;height:25px;background:linear-gradient(#111,transparent);animation:scrollLine 1.7s ease-in-out infinite}.home-page .marquee{border-block-color:var(--line);background:#fff;color:#666}.home-page .marquee i{background:#111}
@keyframes portraitCaret{50%{opacity:0}}@keyframes portraitScan{0%,100%{top:12%;opacity:.25}50%{top:86%;opacity:.8}}@keyframes statusPulse{50%{opacity:.35;box-shadow:none}}@keyframes scrollLine{0%,100%{transform:scaleY(.45);transform-origin:top}50%{transform:scaleY(1)}}@keyframes statReveal{from{transform:scaleX(0)}}
@media(max-width:1180px){.portrait-frame{padding-inline:38px}.portrait-grid{grid-template-columns:minmax(220px,.75fr) minmax(430px,1.4fr)}.portrait-stats{position:absolute;right:0;top:10%;z-index:7;width:230px}.portrait-visual{min-height:520px}.portrait-copy{z-index:5}}
@media(max-width:820px){.home-page .navbar{width:min(calc(100% - 48px),1536px);height:76px}.home-page .nav-links{top:76px;height:calc(100dvh - 76px);background:#fbfbf8}.home-page .nav-link{border-bottom-color:var(--line);color:#555}.portrait-hero{padding:10px}.portrait-frame{min-height:calc(100svh - 20px);padding:98px 24px 24px}.portrait-grid{display:flex;flex-direction:column;min-height:auto;gap:14px}.portrait-copy{align-self:stretch;max-width:none;padding:28px 0 0}.portrait-copy h1{font-size:clamp(48px,14vw,78px);line-height:.9}.portrait-role{font-size:28px;margin:17px 0}.portrait-intro{max-width:500px}.portrait-link{margin-top:20px}.portrait-visual{order:2;width:100%;height:59svh;min-height:440px;align-self:auto}.portrait-stats{position:relative;order:3;top:auto;right:auto;align-self:stretch;justify-self:auto;width:100%;display:grid;grid-template-columns:1fr 1fr;column-gap:24px;padding:20px}.portrait-stats>p,.portrait-stats button{grid-column:1/-1}.portrait-bottom{grid-template-columns:1fr auto;margin-top:18px}.portrait-coordinates{display:none}.portrait-scroll{grid-column:2}.portrait-status{font-size:8px}.home-page .brand-name{display:none}}
@media(max-width:520px){.portrait-frame{padding-inline:16px}.portrait-copy h1{font-size:50px}.portrait-kicker{font-size:11px}.portrait-intro{font-size:12px}.portrait-visual{height:54svh;min-height:390px}.portrait-stats{grid-template-columns:1fr}.portrait-stats>p,.portrait-stats button{grid-column:auto}.portrait-bottom{display:flex;align-items:center;justify-content:space-between}.portrait-scroll{font-size:0}.portrait-status{padding:9px 10px}.home-page .navbar{width:calc(100% - 32px)}}
@media(prefers-reduced-motion:reduce){.portrait-role i,.portrait-scanline,.portrait-status i,.portrait-scroll b,.stat-row i::after{animation:none!important}}
.portrait-role{min-height:1.1em;white-space:nowrap}.portrait-role [data-role-cycle]{display:inline-block;white-space:nowrap}


/* Hero fixes */
.portrait-hero{padding:0;min-height:100svh}
.portrait-frame{width:100%;max-width:none;min-height:100svh;margin:0;padding:118px 48px 32px;border-inline:0;clip-path:none}
.portrait-grid{min-height:calc(100svh - 180px);align-items:stretch}
.portrait-copy{display:flex;flex-direction:column;justify-content:center}
.portrait-visual{height:calc(100svh - 210px);min-height:640px;align-self:stretch;cursor:default}
.portrait-visual::after,.portrait-reticle{display:none!important}
.portrait-instruction{opacity:.7}
@media(max-width:1180px){.portrait-frame{padding-inline:32px}.portrait-visual{min-height:560px;height:calc(100svh - 220px)}}
@media(max-width:820px){.portrait-hero{padding:0}.portrait-frame{min-height:100svh;padding:96px 24px 24px}.portrait-grid{min-height:auto}.portrait-visual{height:58svh;min-height:460px}}
@media(max-width:520px){.portrait-frame{padding-inline:16px}.portrait-visual{height:52svh;min-height:400px}}


/* v7 interaction and crop fixes */
.portrait-frame{width:100%;max-width:none;min-height:100svh;margin:0;padding:118px 42px 34px;border-inline:0;clip-path:none}
.portrait-grid{min-height:calc(100svh - 190px);align-items:stretch}
.portrait-copy{display:flex;flex-direction:column;justify-content:center}
.portrait-visual{height:calc(100svh - 220px);min-height:640px;align-self:stretch;cursor:none;overflow:visible}
.portrait-visual::after{display:none!important}
.portrait-reticle{display:none!important}
.portrait-pointer{position:absolute;left:var(--cursor-x,50%);top:var(--cursor-y,48%);z-index:7;width:26px;height:26px;transform:translate(-18%,-18%) rotate(-8deg);opacity:0;pointer-events:none;transition:opacity .18s ease;filter:drop-shadow(0 8px 14px rgba(0,0,0,.12))}
.portrait-pointer::before{content:"";position:absolute;left:0;top:0;width:0;height:0;border-top:13px solid transparent;border-bottom:5px solid transparent;border-left:17px solid #111}
.portrait-pointer::after{content:"";position:absolute;left:5px;top:10px;width:44px;height:1px;background:linear-gradient(90deg,rgba(17,17,17,.5),transparent);transform:rotate(28deg);transform-origin:left center}
.portrait-visual:hover .portrait-pointer,.portrait-visual:focus .portrait-pointer,.portrait-visual.is-active .portrait-pointer{opacity:1}
.portrait-instruction{bottom:10px}
.float-zone{overflow:clip}
.float-zone>.floating-object-layer{overflow:visible}
.floating-object{width:clamp(140px,18vw,280px);opacity:.14;filter:drop-shadow(0 26px 44px rgba(0,0,0,.11));}
.floating-object-1{right:3%;top:7%;animation:sectionFloatOne 12s ease-in-out infinite,sectionBobOne 8s ease-in-out infinite}
.floating-object-2{left:3%;bottom:6%;animation:sectionFloatTwo 15s ease-in-out infinite,sectionBobTwo 10s ease-in-out infinite}
.floating-object-3{right:18%;bottom:12%;animation:sectionFloatThree 13s ease-in-out infinite,sectionBobThree 9s ease-in-out infinite}
.identity-section .floating-object,.closing-section .floating-object,.contact-aside .floating-object{opacity:.16}
.work-section .floating-object{opacity:.1}
.page-hero .floating-object{opacity:.15}
.page-object{overflow:visible}
.page-object img{max-width:70%;max-height:70%}
.logo-object img{max-width:48%;max-height:58%}
.identity-panel{overflow:visible}
.identity-art{overflow:hidden}
.identity-mark{width:30%;left:35%;top:34%}
.identity-object.rings{width:35%;right:4%;top:8%}
.identity-object.globe{width:30%;left:3%;bottom:5%}
.contact-orbit{right:-4%!important;top:-4%;width:46%!important}
.closing-inner>img{width:150px;max-height:150px}
@keyframes sectionFloatOne{0%,100%{transform:translate3d(0,0,0) rotate(-8deg)}50%{transform:translate3d(-20px,30px,0) rotate(7deg)}}
@keyframes sectionFloatTwo{0%,100%{transform:translate3d(0,0,0) rotate(9deg)}50%{transform:translate3d(28px,-26px,0) rotate(-5deg)}}
@keyframes sectionFloatThree{0%,100%{transform:translate3d(0,0,0) rotate(-3deg)}50%{transform:translate3d(12px,-30px,0) rotate(6deg)}}
@keyframes sectionBobOne{0%,100%{margin-top:0}50%{margin-top:12px}}
@keyframes sectionBobTwo{0%,100%{margin-bottom:0}50%{margin-bottom:14px}}
@keyframes sectionBobThree{0%,100%{margin-bottom:0}50%{margin-bottom:10px}}
@media(max-width:1180px){.portrait-frame{padding-inline:30px}.portrait-visual{height:calc(100svh - 230px);min-height:560px}.floating-object-3{right:14%;bottom:9%}}
@media(max-width:820px){.portrait-frame{padding:98px 24px 24px}.portrait-grid{min-height:auto}.portrait-visual{height:58svh;min-height:460px}.page-object{overflow:hidden}.page-object img{max-width:76%;max-height:76%}.floating-object{width:clamp(120px,28vw,220px);opacity:.11}.floating-object-1{right:0;top:5%}.floating-object-2{left:0;bottom:5%}.floating-object-3{right:10%;bottom:14%}.identity-mark{width:38%;left:31%;top:33%}.identity-object.rings{width:40%;right:0}.identity-object.globe{width:36%;left:0}}
@media(max-width:520px){.portrait-frame{padding-inline:16px}.portrait-visual{height:53svh;min-height:390px}.portrait-pointer{display:none}.floating-object-3{display:none}}
@media(prefers-reduced-motion:reduce){.portrait-pointer,.floating-object-3{display:none}.floating-object{animation:none!important}}


/* v8 reliable ASCII hero */
.portrait-visual canvas{display:none!important}
.portrait-ascii-output{position:absolute;inset:1.5% 0 0;z-index:3;display:block;width:100%;height:100%;margin:0;padding:10px 0 0;overflow:hidden;white-space:pre;text-align:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(8px,.62vw,11px);line-height:1.04;letter-spacing:.03em;color:#111;user-select:none;pointer-events:none}
.portrait-visual.is-ready .portrait-fallback{opacity:.04}
@media(max-width:820px){.portrait-ascii-output{font-size:clamp(7px,1.4vw,10px);line-height:1.02;letter-spacing:.015em;padding-top:8px}}
@media(max-width:520px){.portrait-ascii-output{font-size:6px;line-height:1.01;letter-spacing:0;padding-top:4px}}


/* v9 visual correction */
.portrait-grid{align-items:center}
.portrait-visual{overflow:hidden;height:calc(100svh - 190px);min-height:620px}
.portrait-fallback{display:none!important}
.portrait-scanline{display:none!important}
.portrait-frame::after{opacity:.012}
.portrait-frame::before{opacity:.45}
.portrait-ascii-output{inset:0;display:flex;align-items:center;justify-content:center;padding:0;font-size:clamp(9px,.78vw,13px);line-height:1.02;letter-spacing:.015em;color:#0a0a0a;transform:translateY(1%)}
.portrait-stats{align-self:center;height:auto;min-height:0;max-height:max-content;padding:24px 22px 20px;background:rgba(255,255,255,.9)}
.portrait-copy{align-self:center}
.portrait-pointer{width:20px;height:20px;filter:none}
.portrait-pointer::before{border-top-width:10px;border-bottom-width:4px;border-left-width:14px}
.portrait-pointer::after{display:none}
@media(max-width:1180px){.portrait-ascii-output{font-size:clamp(8px,.92vw,11px)}.portrait-visual{min-height:560px}}
@media(max-width:820px){.portrait-visual{height:58svh;min-height:450px}.portrait-ascii-output{font-size:clamp(6.2px,1.25vw,8.5px);line-height:1.01}.portrait-stats{align-self:stretch}}
@media(max-width:520px){.portrait-ascii-output{font-size:5.2px;letter-spacing:0}}


/* v10 static portrait hero */
.portrait-static{display:flex;align-items:flex-end;justify-content:center;cursor:default;overflow:visible}
.portrait-static::before,.portrait-static::after,.portrait-scanline,.portrait-reticle,.portrait-pointer,.portrait-ascii-output{display:none!important}
.portrait-static-image{display:block;position:relative;z-index:2;width:min(100%,860px);max-height:100%;height:auto;object-fit:contain;filter:grayscale(1) contrast(1.08);transform:translateY(10px)}
.portrait-visual canvas,.portrait-fallback{display:none!important}
.portrait-stats button{display:none!important}
.portrait-stats>p{margin-bottom:16px}
.portrait-stats{padding-bottom:18px}
.portrait-coordinates{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#777}
@media(max-width:1180px){.portrait-static-image{width:min(100%,720px)}}
@media(max-width:820px){.portrait-static{height:56svh;min-height:420px}.portrait-static-image{width:min(100%,560px);transform:translateY(0)}}
@media(max-width:520px){.portrait-static{height:50svh;min-height:340px}.portrait-static-image{width:min(100%,430px)}}


/* v11 bigger transparent portrait */
.portrait-static{background:transparent!important;overflow:visible;align-items:flex-end;justify-content:center}
.portrait-static::before,.portrait-static::after{display:none!important;background:none!important}
.portrait-static-image{width:min(118%,980px);max-width:none;max-height:none;filter:grayscale(1) contrast(1.08);transform:translateY(22px)}
.portrait-visual{overflow:visible}
@media(max-width:1180px){.portrait-static-image{width:min(112%,840px)}}
@media(max-width:820px){.portrait-static-image{width:min(114%,640px);transform:translateY(8px)}}
@media(max-width:520px){.portrait-static-image{width:min(120%,470px);transform:translateY(4px)}}


/* v12 typography and spacing system */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:"Space Grotesk",Inter,system-ui,sans-serif;line-height:1.6;letter-spacing:-.01em}
h1,h2,h3,h4,h5,h6{font-family:"Space Grotesk",Inter,system-ui,sans-serif;font-weight:600;letter-spacing:-.05em;line-height:.96}
p,li,input,textarea,select{font-family:"Space Grotesk",Inter,system-ui,sans-serif}
.brand-name,.nav-link,.nav-cta,.button,.kicker,.portrait-role,.portrait-stats>p,.stat-row,.portrait-status,.portrait-coordinates,.portrait-scroll,.project-number,.project-slot-status,.project-slot-meta span,.footer-bottom,.footer-grid h3,.contact-form label,.form-status,.about-facts span,.about-facts strong,.faq-question,.method-list article>span,.eyebrow,.contact-socials a{font-family:"IBM Plex Mono",ui-monospace,monospace}
.portrait-kicker,.page-hero .eyebrow{font-family:"Caveat",cursive;font-weight:700;letter-spacing:.01em;text-transform:none}
.portrait-kicker{font-size:clamp(22px,2vw,28px);line-height:1;margin-bottom:10px;color:#6c645a}
.page-hero .eyebrow{font-size:clamp(20px,1.6vw,24px);letter-spacing:.02em}
.kicker,.eyebrow,.portrait-stats>p,.footer-grid h3,.contact-form label,.portrait-status,.portrait-coordinates,.portrait-scroll,.project-slot-meta span,.project-number,.project-slot-status{letter-spacing:.12em;text-transform:uppercase}
.navbar{height:84px}.nav-links{gap:28px}.nav-link,.nav-cta,.button{font-size:12px;letter-spacing:.08em}
.brand-name{font-size:13px;letter-spacing:.04em;font-weight:500}
.section{padding:112px 0}.section-heading{margin-bottom:56px}.section-heading h2,.method-copy h2,.faq-layout h2,.identity-copy h2,.closing-inner h2,.about-main h2{line-height:.98}
.section-heading p:last-child,.method-copy p:not(.kicker),.method-list p,.capability p,.service-card p,.faq-answer p,.identity-copy p:not(.kicker),.closing-inner p:not(.kicker),.about-main p:not(.kicker),.contact-details>p:not(.kicker),.portrait-intro{line-height:1.72;letter-spacing:-.01em}
.portrait-copy h1{margin-bottom:4px}.portrait-role{margin:18px 0 18px;font-size:clamp(24px,2.1vw,36px)}.portrait-intro{max-width:34ch}.portrait-link{margin-top:24px}
.button,.nav-cta{min-height:44px;padding-inline:20px}
.capability-grid,.service-grid{gap:16px}.about-grid,.contact-layout,.faq-layout,.method-layout,.footer-grid{gap:clamp(28px,4vw,72px)}
.method-list article{padding:26px 0}.faq-question{font-size:22px;line-height:1.2}.contact-form input,.contact-form textarea,.contact-form select{font-size:15px;line-height:1.5}
.portrait-static{align-items:flex-end;justify-content:center;background:transparent!important}.portrait-static-image{width:min(124%,1040px);max-width:none;filter:grayscale(1) contrast(1.06);transform:translateY(26px)}
.portrait-visual{height:calc(100svh - 180px);min-height:680px;overflow:visible}.portrait-grid{align-items:end}.portrait-stats{width:min(100%,255px)}
.page-object,.closing-inner>img,.identity-art,.contact-aside-art{border-radius:0}.closing-inner>img{width:146px;max-height:146px}
@media(max-width:1180px){.portrait-static-image{width:min(118%,900px)}.portrait-visual{min-height:590px}.section{padding:96px 0}}
@media(max-width:820px){.navbar{height:76px}.nav-links{gap:0}.section{padding:84px 0}.section-heading{margin-bottom:42px}.portrait-static-image{width:min(118%,680px);transform:translateY(8px)}.portrait-visual{height:57svh;min-height:430px}.portrait-role{font-size:28px}.page-hero .eyebrow{font-size:20px}}
@media(max-width:520px){body{letter-spacing:0}.portrait-kicker{font-size:20px}.section{padding:72px 0}.portrait-static-image{width:min(124%,500px);transform:translateY(2px)}.portrait-visual{height:50svh;min-height:340px}.nav-link,.nav-cta,.button{font-size:11px}}


/* v13 refinement: portrait scale, clean CTA, logo contrast */
.portrait-static-image{
  width:min(92%,790px);
  max-width:none;
  max-height:calc(100svh - 195px);
  transform:translateY(14px);
}
.portrait-visual{
  height:calc(100svh - 198px);
  min-height:610px;
}
.clean-closing .closing-inner{
  grid-template-columns:minmax(0,1fr) auto;
  min-height:350px;
  gap:clamp(36px,7vw,120px);
}
.clean-closing .closing-inner>div{max-width:820px}
.clean-closing .floating-object-layer,
.clean-closing .floating-object,
.clean-closing .closing-inner>img{display:none!important}
.site-footer .footer-brand img{filter:none}
@media(max-width:1180px){
  .portrait-static-image{width:min(91%,700px);max-height:calc(100svh - 210px)}
  .portrait-visual{min-height:540px}
}
@media(max-width:820px){
  .portrait-static-image{width:min(92%,540px);max-height:55svh;transform:translateY(4px)}
  .portrait-visual{height:54svh;min-height:400px}
  .clean-closing .closing-inner{grid-template-columns:1fr;min-height:0;padding:76px 0;gap:28px}
}
@media(max-width:520px){
  .portrait-static-image{width:min(94%,410px);max-height:49svh;transform:none}
  .portrait-visual{height:48svh;min-height:320px}
}


/* v15 site-wide final refinement */
/* The object-free CTA treatment is consistent on every page. */
.closing-section .floating-object-layer,
.closing-section .floating-object,
.closing-section .closing-inner>img{display:none!important}
.closing-section .closing-inner{
  grid-template-columns:minmax(0,1fr) auto;
  min-height:350px;
  gap:clamp(36px,7vw,120px);
}
.closing-section .closing-inner>div{max-width:820px}

/* Hero portrait: clean transparent presentation without halo or melting effect. */
.portrait-static{
  position:relative;
  isolation:isolate;
  overflow:visible!important;
  background:transparent!important;
}
.portrait-static::before,
.portrait-static::after,
.portrait-melt,
.portrait-melt::before,
.portrait-melt::after{
  content:none!important;
  display:none!important;
  background:none!important;
  filter:none!important;
}
.portrait-static-image{
  position:relative;
  z-index:2;
  width:min(86%,735px);
  max-height:calc(100svh - 205px);
  transform:translateY(10px);
}

/* Logo contrast remains explicit in every light and dark context. */
.site-header .brand img,
.page-object.logo-object img,
.error-main>img{content:url('assets/brand/logo-black.svg')}
.identity-section .identity-mark,
.contact-aside-art>img:first-child,
.site-footer .footer-brand img{content:url('assets/brand/logo-white.svg')}

@media(max-width:1180px){
  .portrait-static-image{width:min(84%,650px);max-height:calc(100svh - 220px)}
}
@media(max-width:820px){
  .closing-section .closing-inner{grid-template-columns:1fr;min-height:0;padding:76px 0;gap:28px}
  .portrait-static-image{width:min(87%,510px);max-height:52svh;transform:translateY(2px)}
}
@media(max-width:520px){
  .portrait-static-image{width:min(89%,390px);max-height:47svh;transform:none}
}


/* v16 positioning, credibility, and conversion polish */
.portrait-role{font-size:clamp(21px,1.65vw,29px);letter-spacing:-.045em;line-height:1.12}
.portrait-role i{height:1em}
.portrait-intro{font-size:14px;max-width:38ch}
.portrait-link{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.portrait-stats{align-self:center}
.portrait-stats .stat-row{grid-template-columns:minmax(0,1fr) auto;padding:11px 0;border-bottom:1px solid #deded9;align-items:center}
.portrait-stats .stat-row:last-of-type{border-bottom:0}
.portrait-stats .stat-row i{display:none}
.portrait-stats .stat-row strong{font-size:9px;letter-spacing:.1em;font-weight:600;color:#757570}
.credibility-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.credibility-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.credibility-grid>div{min-height:96px;padding:22px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:5px}
.credibility-grid>div:first-child{border-left:1px solid var(--line)}
.credibility-grid span{font:500 9px/1.2 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#858580}
.credibility-grid strong{font-size:14px;line-height:1.3;letter-spacing:-.02em;font-weight:550}
.project-slot-status{padding:8px 11px;border:1px solid currentColor;background:rgba(255,255,255,.62);letter-spacing:.14em}
.slot-tone-2 .project-slot-status{background:rgba(10,10,10,.68)}
.closing-section h2{max-width:850px}
.closing-section .closing-inner p:not(.kicker){max-width:650px}
.footer-brand p{max-width:460px}
@media(max-width:900px){.credibility-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.credibility-grid>div:nth-child(2){border-right:1px solid var(--line)}.credibility-grid>div:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:820px){.portrait-role{font-size:24px}.portrait-intro{font-size:13px}.portrait-stats{align-self:stretch}.credibility-grid>div{min-height:82px;padding:18px 20px}}
@media(max-width:520px){.credibility-grid{grid-template-columns:1fr 1fr}.credibility-grid strong{font-size:12px}.credibility-grid span{font-size:8px}.portrait-role{font-size:21px}}


/* v18 static supplied hero portrait */
.portrait-photo-final{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  align-self:stretch;
  height:calc(100svh - 198px);
  min-height:610px;
  overflow:visible!important;
  background:transparent!important;
  cursor:default;
}
.portrait-photo-final::before,
.portrait-photo-final::after{display:none!important;content:none!important}
.portrait-photo-final-image{
  position:relative;
  z-index:2;
  display:block;
  width:min(104%,860px);
  max-width:none;
  max-height:100%;
  height:auto;
  object-fit:contain;
  object-position:center bottom;
  filter:none;
  transform:translateY(8px);
  user-select:none;
  pointer-events:none;
}
@media(max-width:1180px){
  .portrait-photo-final{min-height:540px}
  .portrait-photo-final-image{width:min(100%,760px)}
}
@media(max-width:820px){
  .portrait-photo-final{order:2;width:100%;height:55svh;min-height:410px}
  .portrait-photo-final-image{width:min(100%,590px);transform:translateY(2px)}
}
@media(max-width:520px){
  .portrait-photo-final{height:49svh;min-height:340px}
  .portrait-photo-final-image{width:min(108%,470px);transform:none}
}

/* v19 — selected work system */
.showcase-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:22px 18px;
}
.showcase-card{
  grid-column:span 6;
  min-width:0;
  border:1px solid var(--line);
  background:#fff;
  overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,border-color .35s ease;
}
.showcase-card.showcase-wide{grid-column:span 7}
.showcase-card.showcase-narrow{grid-column:span 5}
.showcase-card:hover{transform:translateY(-7px);border-color:#b9b9b3;box-shadow:0 28px 70px rgba(0,0,0,.075)}
.showcase-link{display:block;height:100%}
.showcase-link:focus-visible{outline:2px solid #111;outline-offset:4px}
.showcase-media{
  position:relative;
  height:430px;
  overflow:hidden;
  background:#ecece8;
  border-bottom:1px solid var(--line);
  isolation:isolate;
}
.showcase-wide .showcase-media{height:470px}
.showcase-number,.showcase-kind,.showcase-open,.visual-wordmark{
  font-family:"IBM Plex Mono",ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.12em;
  line-height:1;
}
.showcase-number,.showcase-kind{
  position:absolute;
  top:22px;
  z-index:6;
  font-size:9px;
  padding:8px 9px;
  border:1px solid rgba(0,0,0,.22);
  background:rgba(247,247,245,.88);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.showcase-number{left:22px}
.showcase-kind{right:22px}
.showcase-open{
  position:absolute;
  right:22px;
  bottom:22px;
  z-index:7;
  display:flex;
  align-items:center;
  gap:14px;
  padding:11px 12px;
  background:#0a0a0a;
  color:#fff;
  font-size:9px;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .25s ease,transform .25s ease;
}
.showcase-open b{font-size:13px;font-weight:500}
.showcase-card:hover .showcase-open{opacity:1;transform:none}
.showcase-visual{position:absolute;inset:0;overflow:hidden}
.showcase-visual>img:not(.nourfe-product):not(.nourfe-fashion):not(.nourfe-main){width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.showcase-card:hover .showcase-visual>img:not(.nourfe-product):not(.nourfe-fashion):not(.nourfe-main){transform:scale(1.035)}
.visual-wordmark{position:absolute;left:24px;bottom:23px;z-index:4;color:#fff;font-size:9px;text-shadow:0 1px 12px rgba(0,0,0,.45)}
.showcase-body{min-height:218px;padding:26px 28px 24px;display:flex;flex-direction:column}
.showcase-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:20px}
.showcase-title-row h3{margin:0;font-size:clamp(25px,2.1vw,34px);letter-spacing:-.055em;line-height:1;font-weight:600}
.showcase-title-row>span{font:500 9px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.14em;color:#8a8a84}
.showcase-body>p{margin:18px 0 26px;max-width:58ch;color:#686863;font-size:14px;line-height:1.65}
.showcase-meta{margin-top:auto;padding-top:16px;border-top:1px solid #e1e1dc;display:flex;align-items:center;justify-content:space-between;gap:20px}
.showcase-meta span{font:500 9px/1.45 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:#777770}
.showcase-meta b{font-size:17px;font-weight:450;transition:transform .25s ease}
.showcase-card:hover .showcase-meta b{transform:translate(3px,-3px)}
.showcase-footer{margin-top:46px;padding-top:24px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:32px}
.showcase-footer p{margin:0;color:#777;font-size:13px}
.archive-note{margin-top:72px;padding:26px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:190px minmax(0,520px);justify-content:space-between;gap:40px}
.archive-note span{font:500 9px/1.3 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#777}
.archive-note p{margin:0;color:#666;font-size:14px;line-height:1.65}
.archive-section{padding-bottom:120px}
.work-archive-hero{padding-bottom:88px}

/* Nourfe — editorial studio collage */
.showcase-visual.showcase-nourfe{background:#d7c7b7}
.showcase-visual.showcase-nourfe::before{content:"PRODUCT / CONTENT / ALGIERS";position:absolute;left:7%;top:19%;z-index:1;font:500 9px/1 "IBM Plex Mono",monospace;letter-spacing:.18em;color:#5d534b;transform:rotate(-90deg);transform-origin:left top}
.nourfe-main,.nourfe-product,.nourfe-fashion{position:absolute;object-fit:cover;box-shadow:0 20px 50px rgba(32,23,17,.17);transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.nourfe-main{width:58%;height:67%;left:17%;top:13%;z-index:2}
.nourfe-product{width:31%;height:38%;right:7%;bottom:8%;z-index:3}
.nourfe-fashion{width:25%;height:32%;left:7%;bottom:4%;z-index:4;filter:grayscale(1)}
.showcase-card:hover .nourfe-main{transform:translate(-5px,-4px) scale(1.018)}
.showcase-card:hover .nourfe-product{transform:translate(7px,-6px) rotate(1deg)}
.showcase-card:hover .nourfe-fashion{transform:translate(-6px,5px) rotate(-1deg)}
.showcase-visual.showcase-nourfe .visual-wordmark{color:#17120e;text-shadow:none;left:auto;right:7%;top:13%;bottom:auto;writing-mode:vertical-rl}

/* Servio — product dashboard abstraction */
.showcase-visual.showcase-servio{background:#08271d;color:#eaf5e9;padding:58px 44px 42px}
.showcase-visual.showcase-servio::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:38px 38px;opacity:.65}
.servio-shell{position:relative;z-index:2;height:100%;border:1px solid rgba(255,255,255,.22);background:rgba(2,17,12,.7);padding:24px;box-shadow:0 26px 70px rgba(0,0,0,.24);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.showcase-card:hover .servio-shell{transform:translateY(-5px) scale(1.01)}
.servio-top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid rgba(255,255,255,.13);padding-bottom:18px}
.servio-top img{width:92px;height:56px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);opacity:.96}
.servio-top span,.servio-status span{font:500 8px/1 "IBM Plex Mono",monospace;letter-spacing:.13em;color:#9ab3a8}
.servio-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:24px 0 18px}
.servio-metrics span{min-height:74px;border:1px solid rgba(255,255,255,.12);padding:12px;font:500 7px/1.35 "IBM Plex Mono",monospace;letter-spacing:.11em;color:#86a296}
.servio-metrics b{display:block;margin-bottom:10px;font:500 24px/1 "Space Grotesk",sans-serif;letter-spacing:-.04em;color:#fff}
.servio-orders{display:grid;gap:7px}
.servio-orders i{display:block;height:10px;background:linear-gradient(90deg,rgba(255,255,255,.22) 0 22%,rgba(105,186,80,.85) 22% 27%,rgba(255,255,255,.08) 27%)}
.servio-orders i:nth-child(2){background:linear-gradient(90deg,rgba(255,255,255,.16) 0 42%,rgba(105,186,80,.85) 42% 47%,rgba(255,255,255,.07) 47%)}
.servio-orders i:nth-child(3){background:linear-gradient(90deg,rgba(255,255,255,.13) 0 31%,rgba(105,186,80,.85) 31% 36%,rgba(255,255,255,.06) 36%)}
.servio-orders i:nth-child(4){background:linear-gradient(90deg,rgba(255,255,255,.11) 0 53%,rgba(105,186,80,.85) 53% 58%,rgba(255,255,255,.05) 58%)}
.servio-status{position:absolute;left:24px;right:24px;bottom:22px;display:flex;justify-content:space-between;gap:10px}
.showcase-card.showcase-servio .showcase-number,.showcase-card.showcase-servio .showcase-kind,.showcase-card.showcase-noire .showcase-number,.showcase-card.showcase-noire .showcase-kind{color:#fff;border-color:rgba(255,255,255,.26);background:rgba(8,8,8,.5)}

/* Téniri */
.showcase-visual.showcase-teniri{background:#e8f9fb}
.showcase-visual.showcase-teniri::after{content:"SPECIALIST CARE / HYDRA";position:absolute;right:24px;bottom:24px;z-index:3;padding:9px 10px;background:rgba(255,255,255,.84);font:500 8px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;color:#275c63}
.showcase-visual.showcase-teniri img{object-position:center 48%;filter:saturate(.75) brightness(1.05)}
.showcase-visual.showcase-teniri .visual-wordmark{color:#18373b;text-shadow:none;background:rgba(239,252,253,.8);padding:8px 9px}

/* Bricool */
.showcase-visual.showcase-bricool{background:#f47b20;color:#101010}
.showcase-visual.showcase-bricool::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.23),transparent 42%),radial-gradient(circle at 15% 80%,rgba(255,255,255,.22),transparent 28%)}
.bricool-copy{position:absolute;left:8%;top:19%;width:52%;z-index:2}
.bricool-copy>span{font:650 11px/1 "IBM Plex Mono",monospace;letter-spacing:.2em}
.bricool-copy strong{display:block;margin:25px 0 21px;font:600 clamp(31px,3.2vw,52px)/.98 "Space Grotesk",sans-serif;letter-spacing:-.06em}
.bricool-copy small{display:block;max-width:32ch;font:500 8px/1.7 "IBM Plex Mono",monospace;letter-spacing:.11em}
.bricool-phone{position:absolute;right:7%;top:11%;width:28%;height:78%;border:5px solid #111;border-radius:28px;background:#f8f8f6;box-shadow:0 28px 50px rgba(86,37,7,.25);padding:24px 12px 12px;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.showcase-card:hover .bricool-phone{transform:translate(-5px,-6px) rotate(-1deg)}
.phone-notch{position:absolute;top:7px;left:50%;width:38%;height:9px;border-radius:20px;background:#111;transform:translateX(-50%)}
.phone-ui b{font-size:9px;color:#f47b20}.phone-search{display:block;margin-top:18px;padding:10px;background:#ecece9;font-size:7px;color:#999}.phone-pills{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0}.phone-pills i{height:30px;background:#f0d2bb}.phone-pills i:nth-child(2){background:#ddd}.phone-pills i:nth-child(3){background:#ead1be}.phone-cards{display:grid;gap:6px}.phone-cards i{height:62px;border:1px solid #ddd;background:linear-gradient(90deg,#e6e6e2 38%,#fff 38%)}
.showcase-visual.showcase-bricool .visual-wordmark{display:none}

/* BenakPool */
.showcase-visual.showcase-benakpool{background:#c8edf2}
.showcase-visual.showcase-benakpool::after{content:"PRIVATE / BEN AKNOUN";position:absolute;left:24px;bottom:24px;z-index:3;padding:9px 10px;background:rgba(231,252,255,.88);font:500 8px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;color:#063f58}
.showcase-visual.showcase-benakpool img{filter:saturate(.86) contrast(.96)}
.showcase-visual.showcase-benakpool .visual-wordmark{left:auto;right:24px;bottom:24px;background:rgba(2,27,55,.72);padding:9px 10px}

/* Noiré */
.showcase-visual.showcase-noire{background:#050505}
.showcase-visual.showcase-noire img{filter:grayscale(1) contrast(1.05);object-position:center}
.showcase-visual.showcase-noire::after{content:"FORM / SILENCE / PERMANENCE";position:absolute;left:24px;bottom:24px;z-index:5;color:#b9b9b9;font:500 8px/1 "IBM Plex Mono",monospace;letter-spacing:.15em}
.showcase-visual.showcase-noire .visual-wordmark{left:auto;right:24px;bottom:24px;color:#fff}

/* Innoest */
.showcase-visual.showcase-innoest{background:#101315}
.showcase-visual.showcase-innoest img{object-position:center 35%;filter:saturate(.72) contrast(1.03)}
.showcase-visual.showcase-innoest::after{content:"STARTUP DEVELOPMENT / ALGERIA";position:absolute;left:24px;bottom:24px;z-index:4;padding:9px 10px;background:rgba(10,13,14,.78);color:#fff;font:500 8px/1 "IBM Plex Mono",monospace;letter-spacing:.14em}
.showcase-visual.showcase-innoest .visual-wordmark{left:auto;right:24px;bottom:24px}

/* Al-Osra */
.showcase-visual.showcase-alosra{background:#355423}
.showcase-visual.showcase-alosra img{filter:saturate(.86) contrast(.98);object-position:center}
.showcase-visual.showcase-alosra::after{content:"FOOD / FAMILY / PROVENANCE";position:absolute;left:24px;bottom:24px;z-index:4;padding:9px 10px;background:rgba(26,49,15,.76);color:#fff;font:500 8px/1 "IBM Plex Mono",monospace;letter-spacing:.14em}
.showcase-visual.showcase-alosra .visual-wordmark{left:auto;right:24px;bottom:24px}

@media(max-width:1060px){
  .showcase-card.showcase-wide,.showcase-card.showcase-narrow,.showcase-card{grid-column:span 6}
  .showcase-media,.showcase-wide .showcase-media{height:400px}
  .showcase-body{min-height:235px}
  .bricool-copy{width:55%;left:7%}.bricool-phone{width:31%;right:5%}
}
@media(max-width:820px){
  .showcase-grid{gap:16px}
  .showcase-card.showcase-wide,.showcase-card.showcase-narrow,.showcase-card{grid-column:span 12}
  .showcase-media,.showcase-wide .showcase-media{height:min(66vw,480px)}
  .showcase-body{min-height:0;padding:23px 24px 22px}
  .showcase-body>p{max-width:65ch;margin:15px 0 22px}
  .showcase-open{opacity:1;transform:none}
  .showcase-footer{align-items:flex-start;flex-direction:column;gap:18px}
  .archive-note{grid-template-columns:1fr;gap:14px;margin-top:52px}
  .work-archive-hero{padding-bottom:66px}
  .showcase-visual.showcase-servio{padding:54px 36px 34px}
  .bricool-copy strong{font-size:clamp(32px,7vw,48px)}
}
@media(max-width:520px){
  .showcase-grid{gap:14px}
  .showcase-media,.showcase-wide .showcase-media{height:340px}
  .showcase-number,.showcase-kind{top:16px;padding:7px 8px;font-size:8px}.showcase-number{left:16px}.showcase-kind{right:16px}
  .showcase-open{right:16px;bottom:16px;font-size:8px}
  .showcase-body{padding:21px 19px 19px}
  .showcase-title-row h3{font-size:27px}
  .showcase-body>p{font-size:13px;line-height:1.6}
  .showcase-meta{align-items:flex-end}.showcase-meta span{font-size:8px;max-width:85%}
  .showcase-visual.showcase-servio{padding:48px 18px 26px}.servio-shell{padding:18px}.servio-metrics{gap:6px}.servio-metrics span{padding:9px}.servio-metrics b{font-size:19px}.servio-status{left:18px;right:18px}.servio-status span:nth-child(3){display:none}
  .nourfe-main{width:66%;height:66%;left:12%;top:15%}.nourfe-product{width:35%;height:34%;right:6%;bottom:8%}.nourfe-fashion{width:29%;height:29%;left:5%}
  .bricool-copy{left:7%;top:17%;width:62%}.bricool-copy strong{font-size:31px}.bricool-copy small{max-width:25ch}.bricool-phone{right:-3%;top:15%;width:36%;height:72%;border-width:4px;border-radius:22px}
  .showcase-visual.showcase-teniri::after,.showcase-visual.showcase-benakpool::after,.showcase-visual.showcase-innoest::after,.showcase-visual.showcase-alosra::after,.showcase-visual.showcase-noire::after{left:16px;bottom:16px;font-size:7px}
  .visual-wordmark{display:none}
  .archive-section{padding-bottom:84px}
}
@media(prefers-reduced-motion:reduce){
  .showcase-card,.showcase-visual>img,.servio-shell,.bricool-phone,.nourfe-main,.nourfe-product,.nourfe-fashion,.showcase-open,.showcase-meta b{transition:none!important}
}
/* Ensure photographic project media owns the visual layer explicitly. */
.showcase-visual>img:not(.nourfe-product):not(.nourfe-fashion):not(.nourfe-main){position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;max-width:none;object-fit:cover}
/* Accessibility: keep skip navigation visually hidden until keyboard focus. */
.skip-link{opacity:0;pointer-events:none}
.skip-link:focus{opacity:1;pointer-events:auto}
