/* MATRIX / presentation only. All existing content and controls remain active. */
@property --matrix-ring-angle{syntax:'<angle>';inherits:false;initial-value:0deg}
@view-transition{navigation:auto}
:root[data-visual=matrix]{--bg:#111112;--surface:#1b1b1e;--raised:#262629;--text:#f3f1ed;--muted:#b0aeb1;--border:#555256;--accent:#ff526f;--brand:#dc143c;--soft:#22171a;--matrix-glass:rgba(17,17,18,.86);--matrix-shadow:rgba(220,20,60,.17)}
:root[data-visual=matrix][data-theme=light]{--bg:#f4f2ed;--surface:#eae7e1;--raised:#dedbd5;--text:#171719;--muted:#626067;--border:#aaa6a2;--accent:#c11237;--brand:#bd143b;--soft:#eae0e0;--matrix-glass:rgba(244,242,237,.92);--matrix-shadow:rgba(180,18,52,.12)}
body{isolation:isolate}#matrix-rain{position:fixed;inset:0;z-index:-2;width:100%;height:100%;pointer-events:none;opacity:.65}.matrix-scanlines{position:fixed;inset:0;z-index:90;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.035) 3px 4px);opacity:.45}main,footer{position:relative}.site-header{background:var(--matrix-glass,var(--bg));backdrop-filter:blur(14px)}.section{border-color:var(--border)}.work-section,.capability-section,.build-section,.process-section,.systems-section{background:var(--matrix-glass,var(--surface))}.capability-card,.lab-card,.project-visual,.system-panel,.case-cover,.case-block blockquote,.limit-block,dialog,.matrix-field-panel{background:var(--matrix-glass,var(--surface));border-color:var(--border);box-shadow:0 0 26px var(--matrix-shadow);backdrop-filter:blur(8px)}.hero-object{border-color:var(--border);box-shadow:0 0 36px var(--matrix-shadow)}.button.primary{color:#fff;background:var(--brand)}:root[data-theme=light] .button.primary{color:#fff}.button.primary:hover{background:var(--accent);color:#fff}.filters button[aria-pressed=true],.system-tabs [aria-selected=true],.direction-buttons button[aria-pressed=true]{background:var(--brand);color:#fff}:root[data-theme=light] .filters button[aria-pressed=true],:root[data-theme=light] .system-tabs [aria-selected=true],:root[data-theme=light] .direction-buttons button[aria-pressed=true]{color:#fff}.manifesto-strip,.closing-section{background:#39111d;color:#ffe7ec}.process-plus,.object-plus{color:var(--accent)}.text-link:hover,.brand-mark,.matrix-label{color:var(--accent)}::selection{background:#901132;color:#fff}.button,.project-visual,.capability-card{transition:transform .25s cubic-bezier(.22,1,.36,1),opacity .25s}.hero h1{position:relative;text-shadow:0 0 42px var(--matrix-shadow)}.hero h1:hover .title-line:first-child>span{transform:translateX(1px)}.project-visual:hover{box-shadow:0 0 32px var(--matrix-shadow)}
.matrix-cinema{position:relative;display:grid;grid-template-columns:1.2fr .8fr;gap:28px;margin-top:40px;padding:32px 36px 22px;border:1px solid var(--border);background:linear-gradient(105deg,var(--matrix-glass),transparent);overflow:hidden;min-height:260px}.matrix-cinema-copy{position:relative;z-index:2}.matrix-cinema h2{font-size:clamp(32px,4vw,56px);margin-top:14px;margin-bottom:12px;max-width:20ch}.matrix-cinema p{color:var(--muted)}.matrix-cinema-actions{display:flex;flex-wrap:wrap;gap:20px;margin-top:22px;align-items:center}.matrix-cinema-actions .button{min-height:48px}.matrix-cinema-stats{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:24px;align-items:center;padding-top:16px;border-top:1px solid var(--border);color:var(--muted);font-size:14px}.matrix-cinema-stats b{color:var(--accent);font-family:var(--mono);font-size:20px;font-weight:400;display:inline-block;min-width:2ch}.matrix-cinema-stats>span:last-child{margin-inline-start:auto}.matrix-core{position:relative;min-height:200px;display:grid;place-items:center;contain:layout paint;direction:ltr}.matrix-core>span{font:16px var(--mono);color:var(--accent);text-shadow:0 0 18px var(--accent);z-index:2}.matrix-core-ring,.matrix-core-ring-two,.matrix-core-orbit{position:absolute;width:188px;height:188px;border:1px solid var(--accent);border-radius:50%;opacity:.7;box-shadow:0 0 25px var(--matrix-shadow)}.matrix-core-ring-two{width:130px;height:130px;transform:rotateX(58deg);border-width:2px}.matrix-core-orbit{width:216px;height:216px;border-style:dashed;opacity:.3}.matrix-core::after{content:'';position:absolute;inset:20% 35%;background:radial-gradient(circle,var(--matrix-shadow),transparent 70%);pointer-events:none}.matrix-core-ring::before{content:'';position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(from var(--matrix-ring-angle),transparent 0 75%,var(--accent) 85%,transparent 96%);mask:radial-gradient(transparent 66%,black 67% 69%,transparent 70%);transform:rotate(0deg);animation:matrix-orbit 12s linear infinite}
@keyframes matrix-orbit{to{transform:rotate(360deg)}}
.matrix-decoding{position:relative;color:transparent!important;text-shadow:none!important}.matrix-decoding::after{content:attr(data-cipher);position:absolute;inset:0;color:var(--accent);white-space:pre-line;font:inherit;letter-spacing:inherit;line-height:inherit;pointer-events:none}.matrix-shared-ghost{position:fixed;z-index:120;display:flex;align-items:center;justify-content:center;border:1px solid var(--accent);background:var(--surface);color:var(--accent);font:16px var(--body);pointer-events:none;box-shadow:0 0 26px var(--matrix-shadow)}
#matrix-portal{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:0;display:grid;place-items:center;contain:strict}.matrix-portal-ring{width:min(60vw,620px);aspect-ratio:1;border-radius:50%;border:1px solid #ff748e;box-shadow:0 0 50px #dc143c44,inset 0 0 50px #dc143c33;background:radial-gradient(circle,transparent 42%,#dc143c19 60%,transparent 70%);transform:rotateX(24deg)}.matrix-portal-line{position:absolute;inset:49% 0 auto;height:1px;background:linear-gradient(90deg,transparent,#ff748e,transparent);box-shadow:0 0 12px #dc143c}
.matrix-story-deck{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:28px 0 42px;padding-top:24px}.matrix-story-step{border:1px solid var(--border);padding:20px;display:flex;gap:16px;align-items:center;background:var(--matrix-glass);color:var(--muted)}.matrix-story-step .mono{color:var(--accent)}.matrix-story-step strong{font-size:16px;line-height:1.4}.matrix-story-step.is-active{color:var(--text);border-color:var(--accent)}.matrix-story-rail{position:absolute;inset:0 0 auto;height:2px;background:var(--border)}.matrix-story-rail i{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}.process-list li{position:relative}.process-list li::before{position:absolute;inset:-12px;content:'';border:1px solid var(--border);opacity:.35;pointer-events:none}.process-section{view-timeline-name:--matrix-story;view-timeline-axis:block}.process-section p{color:var(--text)}
@supports(animation-timeline:view()){.matrix-story-rail i{animation:matrix-story-progress linear both;animation-timeline:--matrix-story;animation-range:entry 20% exit 80%}@keyframes matrix-story-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}}
.matrix-field-panel{padding:28px;border:1px solid var(--border);margin-bottom:32px}.matrix-field-head{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:24px}.matrix-field-head h3{margin-top:10px}.matrix-field{position:relative;min-height:280px;overflow:hidden;border:1px solid var(--border);background:#140c10;contain:layout paint;touch-action:pan-y;direction:ltr}.matrix-field-grid{position:absolute;inset:-40%;background-image:linear-gradient(#ff526f23 1px,transparent 1px),linear-gradient(90deg,#ff526f23 1px,transparent 1px);background-size:40px 40px;transform:perspective(650px) rotateX(50deg) scale(1.4);transform-origin:center}.matrix-field-glow{position:absolute;width:300px;height:300px;left:calc(50% - 150px);top:calc(50% - 150px);background:radial-gradient(circle,#ff526f3b,transparent 68%);pointer-events:none}.matrix-field-target{position:absolute;width:100px;height:100px;left:calc(50% - 50px);top:calc(50% - 50px);border:1px solid #ff526f;box-shadow:0 0 36px #ff526f22;border-radius:50%;display:grid;place-items:center;pointer-events:none}.matrix-field-target i{position:absolute;inset:12px;border:1px dashed #ff526f;border-radius:50%;opacity:.5}.matrix-field-target span{font:32px monospace;color:#ffd5de}.matrix-field-coordinate{position:absolute;bottom:16px;left:20px;color:#ffd5de;pointer-events:none}.matrix-field-panel>.form-note{margin-top:18px;max-width:80ch}.matrix-field-reset{flex-shrink:0}
[data-matrix-wait]{position:relative;min-height:80px}[data-matrix-wait]::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#ff526f25,transparent);transform:translateX(-100%);animation:matrix-media-scan 1.8s ease-in-out infinite;pointer-events:none}@keyframes matrix-media-scan{to{transform:translateX(100%)}}
::view-transition-old(root){animation:matrix-exit .45s cubic-bezier(.22,1,.36,1) both}::view-transition-new(root){animation:matrix-enter .6s cubic-bezier(.22,1,.36,1) both}::view-transition-group(matrix-project-title),::view-transition-group(matrix-project-cover){animation-duration:.65s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(matrix-project-title),::view-transition-new(matrix-project-title){height:100%;mix-blend-mode:normal}::view-transition-group(root){animation-duration:.6s}
@keyframes matrix-exit{to{opacity:0;transform:scale(1.045) translateY(-18px)}}@keyframes matrix-enter{from{opacity:0;transform:scale(.965) translateY(28px)}to{opacity:1;transform:none}}
@media(max-width:980px){.matrix-cinema{padding:24px;grid-template-columns:1.4fr .6fr}.matrix-core-ring,.matrix-core-orbit{width:144px;height:144px}.matrix-core-ring-two{width:100px;height:100px}.matrix-story-deck{grid-template-columns:repeat(2,1fr)}.matrix-cinema-stats>span:last-child{margin-inline-start:0}.site-header{backdrop-filter:none}.matrix-scanlines{display:none}}
@media(max-width:600px){.matrix-cinema{grid-template-columns:1fr;padding:22px;margin-top:28px;gap:14px}.matrix-core{min-height:156px}.matrix-core-ring,.matrix-core-orbit{width:140px;height:140px}.matrix-core-ring-two{width:100px;height:100px}.matrix-cinema h2{font-size:34px}.matrix-cinema-actions{gap:12px}.matrix-cinema-actions .button{padding:12px 16px}.matrix-cinema-stats{gap:12px}.matrix-cinema-stats span{font-size:13px}.matrix-story-deck{gap:10px}.matrix-story-step{padding:14px;gap:10px;flex-direction:column;align-items:start}.matrix-field-panel{padding:18px}.matrix-field-head{flex-wrap:wrap}.matrix-field{min-height:240px}.matrix-field-coordinate{left:12px;font-size:12px!important}.matrix-field-target{width:80px;height:80px;left:calc(50% - 40px);top:calc(50% - 40px)}.matrix-cinema-stats>span:last-child{flex-basis:100%}.capability-card,.lab-card,.project-visual,.system-panel,.case-cover,.matrix-field-panel{backdrop-filter:none}}
:root[data-motion=off] .matrix-core-ring::before,:root[data-motion=off] [data-matrix-wait]::after{animation:none}:root[data-motion=off] .matrix-story-rail i{animation:none;transform:scaleX(1)}:root[data-motion=off] #matrix-portal{display:none}:root[data-motion=off] .matrix-scanlines{display:none}
:root[data-motion=off]::view-transition-old(root),:root[data-motion=off]::view-transition-new(root),:root[data-motion=off]::view-transition-group(*){animation:none!important}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}#matrix-portal,.matrix-scanlines{display:none}.matrix-core-ring::before,[data-matrix-wait]::after,.matrix-story-rail i{animation:none!important}.matrix-story-rail i{transform:scaleX(1)}::view-transition-old(root),::view-transition-new(root),::view-transition-group(*){animation:none!important}}
/* Chapter pacing: the original four steps remain intact, now one per scroll beat. */
.matrix-story .matrix-story-deck{position:sticky;top:110px;z-index:4;background:var(--bg);padding-bottom:12px;box-shadow:0 18px 28px var(--bg)}.matrix-story .process-list{display:grid;grid-template-columns:1fr;gap:64px;max-width:840px;margin-inline:auto;margin-top:42px}.matrix-story .process-list>li{padding:32px;min-height:240px;border:1px solid var(--border);background:var(--matrix-glass)}.matrix-story .process-list>li::before{display:none}.matrix-story .process-list>li p{max-width:60ch}.matrix-story .process-list>li h3{margin-top:24px}.matrix-story .process-list>li .process-num{font-size:56px}.mobile-menu>span{font-size:0;width:20px;height:16px;display:block;background:linear-gradient(currentColor,currentColor) 0 0/100% 2px no-repeat,linear-gradient(currentColor,currentColor) 0 7px/100% 2px no-repeat,linear-gradient(currentColor,currentColor) 0 14px/100% 2px no-repeat}.hero .title-line>span{position:relative}.hero .title-line>span::after{content:attr(data-matrix-label);position:absolute;inset:0;pointer-events:none;color:var(--accent);clip-path:inset(32% 0 49% 0);opacity:0}.hero h1:hover .title-line>span::after{animation:matrix-glitch-slice .9s steps(1,end) 1}@keyframes matrix-glitch-slice{0%,35%,72%,100%{opacity:0;transform:none}28%{opacity:.6;transform:translateX(3px)}65%{opacity:.4;transform:translateX(-2px)}}
@media(max-width:980px){.matrix-story .matrix-story-deck{top:94px}.matrix-story .process-list{gap:42px}}@media(max-width:600px){.matrix-story .process-list>li{padding:24px;min-height:240px}.matrix-story .matrix-story-deck{top:88px}.matrix-story .matrix-story-step{padding:10px;gap:6px}.matrix-story .matrix-story-step strong{font-size:14px}}:root[data-motion=off] .hero h1:hover .title-line>span::after{animation:none!important}
@media(prefers-reduced-motion:reduce){.hero h1:hover .title-line>span::after{animation:none!important}.matrix-story .matrix-story-deck{position:static}}
/* Signature motifs from the first portfolio: paths, rotating chapter marker, stars, typewriter footer. */
.matrix-trace-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}.matrix-trace-frame path{fill:none;stroke:var(--accent);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:400;stroke-dashoffset:0;opacity:.7}.capability-card,.lab-card{position:relative}.matrix-legacy-star{margin-inline-start:auto;color:var(--accent);font:30px/1 Arial;display:inline-block;animation:legacy-star-pulse 3s ease-in-out infinite}@keyframes legacy-star-pulse{50%{transform:scale(1.12) rotate(12deg);opacity:.6}}
.matrix-chapter-dial{position:fixed;inset:auto 22px 24px auto;z-index:24;width:104px;padding:16px 8px 8px;text-align:center;background:var(--matrix-glass);border:1px solid var(--border);border-radius:55px 55px 4px 4px;backdrop-filter:blur(8px)}html[dir=rtl] .matrix-chapter-dial{right:auto;left:22px}.matrix-dial-orbit{position:absolute;top:4px;left:9px;right:9px;height:43px;border:1px dashed var(--accent);border-bottom:0;border-radius:50px 50px 0 0;pointer-events:none;transform-origin:center bottom}.matrix-dial-count{display:block;color:var(--accent);position:relative;font-size:12px!important}.matrix-dial-name{display:block;position:relative;font-size:11px;line-height:1.4;margin-top:9px;overflow-wrap:anywhere;min-height:30px}.matrix-chapter-dial>div:last-child{display:flex;justify-content:center;gap:5px}.matrix-chapter-dial a{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);font-size:21px}.matrix-chapter-dial a[aria-disabled=true]{opacity:.25;pointer-events:none}
.matrix-legacy-footer{position:relative;overflow:hidden;min-height:340px;padding:62px 24px 44px;text-align:center;border-top:1px solid var(--border);isolation:isolate}.matrix-legacy-border{position:absolute;top:0;left:-45%;width:45%;height:3px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:legacy-border-travel 4s linear infinite}@keyframes legacy-border-travel{to{transform:translateX(330%)}}.matrix-legacy-watermark{position:absolute;inset:0;display:grid;place-items:center;font:900 clamp(140px,27vw,360px)/1 Arial;color:var(--text);opacity:.035;z-index:-1;pointer-events:none;animation:legacy-watermark-pulse 5s ease-in-out infinite}@keyframes legacy-watermark-pulse{50%{opacity:.065;transform:scale(1.025)}}.matrix-legacy-title{font:700 clamp(30px,6vw,72px)/1.1 Arial,sans-serif!important;letter-spacing:-.025em;min-height:82px;display:flex;justify-content:center;align-items:center;margin:0}.matrix-legacy-title>span{display:inline-block;position:relative;min-width:1px}.matrix-legacy-title>span::after{content:'';position:absolute;width:3px;inset:0 -9px 0 auto;background:var(--accent);animation:legacy-caret 1s step-end infinite}@keyframes legacy-caret{50%{opacity:0}}.legacy-white{color:var(--text)}.legacy-red{color:var(--accent)}.matrix-legacy-logo{display:block;width:72px;height:72px;object-fit:contain;margin:22px auto}.matrix-legacy-rights{color:var(--muted);font:16px/1.8 Arial,sans-serif;margin:18px auto 0;max-width:none}.has-legacy-footer .footer-inner>span:last-child{display:none}
@media(max-width:1100px){.matrix-chapter-dial{display:none}}@media(max-width:600px){.matrix-legacy-footer{padding:36px 20px 28px;min-height:260px}.matrix-legacy-title{min-height:54px}.matrix-legacy-logo{width:54px;height:54px;margin:16px auto}.matrix-legacy-rights{font-size:14px}}
:root[data-motion=off] .matrix-legacy-star,:root[data-motion=off] .matrix-legacy-watermark,:root[data-motion=off] .matrix-legacy-border,:root[data-motion=off] .matrix-legacy-title>span::after{animation:none}:root[data-motion=off] .matrix-legacy-border{left:0;width:100%}
@media(prefers-reduced-motion:reduce){.matrix-legacy-star,.matrix-legacy-watermark,.matrix-legacy-border,.matrix-legacy-title>span::after{animation:none!important}.matrix-legacy-border{left:0;width:100%}}
.button.primary:hover{background:#b51234;color:#fff}
