@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#222321;--muted:#6b6e72;--paper:#fdfdfb;--line:#e9e9e4;--blue:#315de5;--soft:#f4f5f8;--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',Arial,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}::selection{background:#dce6ff}img{max-width:100%;display:block}p{margin:0 0 20px}h1,h2,h3{font-family:Manrope,Arial,sans-serif;line-height:1.16;letter-spacing:-1.8px;margin:0;font-weight:650}h1{font-size:clamp(42px,5.2vw,72px)}h2{font-size:clamp(30px,3.3vw,46px)}h3{font-size:25px;letter-spacing:-.8px}.wrap{max-width:1240px;margin:auto;padding:0 48px}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:20px;background:white;z-index:99;padding:15px}header{position:sticky;top:0;z-index:20;background:#fdfdfbf0;backdrop-filter:blur(16px)}.nav{height:104px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{font-family:Manrope,sans-serif;font-size:20px;font-weight:750;letter-spacing:-.8px;white-space:nowrap}.brand span{color:var(--blue)}.nav-right{display:flex;align-items:center;gap:24px}.nav-links{display:flex;gap:29px;padding:12px 28px;border:1px solid #f0f0eb;box-shadow:0 3px 18px #20202005;border-radius:99px;background:#fff;font-size:14px}.nav-links a:hover{color:var(--blue)}.languages{display:flex;gap:3px;border:1px solid var(--line);border-radius:30px;padding:4px;font-size:11px;font-weight:650}.languages a{padding:5px 9px;border-radius:20px}.languages a[aria-current]{color:white;background:var(--ink)}.hero{padding:87px 0 80px;max-width:895px;margin:auto}.intro-mark{display:flex;gap:14px;align-items:center;margin-bottom:24px}.portrait-mini{width:56px;height:56px;object-fit:cover;border-radius:50%;filter:grayscale(1)}.small{font-size:12px;letter-spacing:.7px;color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:#678a60;margin-right:7px}.hero h1{font-size:clamp(45px,5.2vw,70px);letter-spacing:-3px;margin-bottom:26px}.hero h1 .wave{display:inline-block;font-size:.75em;transform:rotate(-12deg);margin-left:8px}.bio{font-size:clamp(20px,2vw,25px);line-height:1.75;letter-spacing:-.5px;max-width:850px}.bio strong{font-weight:650}.company{display:inline-flex;align-items:center;vertical-align:middle;padding:2px 13px;border-radius:99px;font-size:.78em;font-weight:700;letter-spacing:-.4px;line-height:1.65;white-space:nowrap;background:#f0f0ee;margin:0 3px}.company.yassir{background:#eee9ff;color:#6840b7}.company.mektoube{background:#ffe9ef;color:#a94265}.company.somfy{background:#fff0d6;color:#9e6b12}.hero-detail{color:var(--muted);font-size:16px;max-width:720px;margin:23px 0 30px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.button{border:1px solid var(--line);border-radius:99px;background:white;display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:12px 23px;font-size:14px;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #20202009}.button.primary{background:var(--ink);border-color:var(--ink);color:white}.textlink{border-bottom:1px solid #c9cbd1;font-size:14px}.work-area{background:#f7f7f5;padding:65px 0 80px;border-top:1px solid #f1f1ed}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px;gap:20px}.section-head h2{font-size:36px;letter-spacing:-1.5px}.section-head span{color:var(--muted);font-size:13px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px 30px}.project-card{display:flex;flex-direction:column;min-width:0}.project-card.featured{grid-column:1 / -1;display:grid;grid-template-columns:1.25fr 1fr;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.project-visual{position:relative;background:var(--wash,#eae8f4);border-radius:var(--radius);height:345px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:24px}.project-visual img{width:100%;height:100%;object-fit:contain;transition:transform .6s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 16px 20px #14141412)}.project-card:hover .project-visual img{transform:scale(1.035)}.project-card.featured .project-visual{height:430px;border-radius:0;padding:35px}.project-info{padding:22px 3px}.featured .project-info{padding:42px;display:flex;flex-direction:column;justify-content:center}.kicker{text-transform:uppercase;letter-spacing:1.3px;font-size:10px;font-weight:650;color:var(--muted);line-height:1.5}.project-info h3{font-size:27px;line-height:1.2;margin:12px 0}.project-info p{font-size:15px;color:var(--muted);line-height:1.65;margin-bottom:17px}.project-bottom{display:flex;gap:15px;align-items:center;justify-content:space-between;font-size:12px}.tag{display:inline-block;padding:5px 10px;border:1px solid #dddfe5;border-radius:30px;font-size:11px;line-height:1.4}.arrow{font-size:23px;color:var(--blue)}.section{padding:90px 0}.about-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:85px}.about-grid h2{margin:15px 0 25px}.about-grid .large{font-size:21px;line-height:1.6}.about-portrait{width:100%;max-width:290px;aspect-ratio:1;object-fit:cover;border-radius:24px;margin-top:30px;filter:grayscale(1)}.experience{display:grid;grid-template-columns:1fr auto;gap:10px;padding:24px 0;border-top:1px solid var(--line)}.experience h3{font-size:21px}.experience p{font-size:14px;color:var(--muted);margin:5px 0 0}.experience time{font-size:12px;color:var(--muted)}.skills{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.contact{padding:70px 0;background:#eef1f8;border-radius:32px;margin-bottom:50px}.contact-inner{display:flex;justify-content:space-between;gap:35px;align-items:center}.contact h2{font-size:42px;margin:15px 0}.contact p{color:var(--muted);max-width:540px;margin:0}.footer{display:flex;justify-content:space-between;gap:20px;padding-top:25px;padding-bottom:30px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.footer-links{display:flex;gap:20px}.case-hero{max-width:930px;padding-top:45px;margin:0 auto}.back{font-size:13px;color:var(--muted);display:inline-flex;gap:12px;margin-bottom:45px}.case-hero .kicker{color:var(--blue)}.case-hero h1{font-size:clamp(38px,4.5vw,64px);margin:18px 0 24px;max-width:900px;letter-spacing:-2.4px}.case-summary{font-size:21px;line-height:1.6;color:#62666d;max-width:800px}.case-meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin:35px 0 40px;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.case-meta dt{font-size:10px;text-transform:uppercase;letter-spacing:1.1px;color:var(--muted);margin-bottom:8px}.case-meta dd{font-size:14px;line-height:1.6;margin:0}.hero-image{background:var(--wash);border-radius:24px;padding:30px;max-width:1144px;margin:0 auto 45px}.hero-image img{margin:auto;max-height:660px;object-fit:contain;width:100%}.case-layout{display:grid;grid-template-columns:160px minmax(0,800px);gap:50px;max-width:1060px;margin:auto;align-items:start}.toc{position:sticky;top:125px;display:flex;flex-direction:column;gap:14px;margin-top:35px;font-size:11px;color:var(--muted)}.toc a{border-left:2px solid transparent;padding-left:12px;transition:color .2s}.toc a:hover,.toc a.active{color:var(--blue);border-color:var(--blue)}.case-section{padding:40px 0 20px;scroll-margin-top:100px}.case-section h2{font-size:34px;letter-spacing:-1.3px;max-width:730px;margin:12px 0 24px}.case-section p{max-width:700px;color:#565b62;font-size:17px;line-height:1.8}.takeaway{padding:26px 30px;border:1px solid #e1e5ef;background:#f5f7fb;border-radius:18px;margin:25px 0}.takeaway p{margin:7px 0 0;font-size:17px;color:var(--ink)}.two-up{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.decision{padding:24px;border:1px solid var(--line);border-radius:18px}.decision h3{font-size:18px;letter-spacing:-.3px;margin-bottom:12px}.decision p{font-size:14px;line-height:1.75;margin:0}.decision .kicker{margin-bottom:10px}.flow{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin:25px 0}.flow span{padding:12px 18px;background:#f0eef8;border-radius:12px;font-size:13px;flex:1;min-width:110px;position:relative}.flow span:not(:last-child):after{content:'→';position:absolute;right:-12px;top:14px;z-index:1;color:#7d70a6}.figure{margin:30px 0}.figure button{padding:22px;background:var(--wash,#f3f4f6);border:0;border-radius:18px;width:100%;display:block;cursor:zoom-in;position:relative;overflow:hidden}.figure img{margin:auto;max-height:650px;object-fit:contain;width:100%}.zoom-label{position:absolute;right:12px;bottom:12px;padding:4px 9px;border-radius:99px;background:#ffffffdc;font-size:10px;color:#3c4351;pointer-events:none}.figure figcaption{font-size:12px;color:var(--muted);margin:12px 4px 0;line-height:1.6}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.result{background:var(--wash,#f1f3f8);border-radius:18px;padding:24px}.result strong{display:block;font-family:Manrope,sans-serif;font-size:32px;line-height:1.2;letter-spacing:-1px;margin-bottom:9px}.result span{font-size:12px;line-height:1.5;display:block}.fine{font-size:12px!important;color:var(--muted)!important;line-height:1.7!important}.next-project{margin:70px 0 0;padding:32px;background:#f3f4f7;border-radius:20px;display:block}.next-project h3{margin:10px 0;font-size:26px}.case-end{padding:50px 0 70px}.cv{max-width:880px;margin:auto;padding:55px 48px 80px}.cv h1{font-size:48px;margin-bottom:15px}.cv h2{font-size:25px;margin:35px 0 18px}.cv .experience{grid-template-columns:1fr}.cv li{margin-bottom:9px;font-size:15px}.cv p{font-size:15px}.cv .cv-role{font-size:20px}.cv-contact{color:var(--muted)}dialog{max-width:94vw;max-height:94vh;background:#fff;border:0;padding:45px 20px 20px;border-radius:18px}dialog::backdrop{background:#171a21dc;backdrop-filter:blur(8px)}dialog img{max-height:80vh;max-width:88vw;object-fit:contain;margin:auto}dialog button{position:absolute;top:8px;right:14px;border:0;background:#f1f2f5;border-radius:99px;padding:5px 14px;cursor:pointer}.reveal{animation:enter .6s ease both}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.mobile-toc{display:none}body.mobile-preview .wrap{padding:0 20px}body.mobile-preview .nav{height:78px}body.mobile-preview .nav-links{display:none}body.mobile-preview .brand{font-size:17px}body.mobile-preview .hero{padding:40px 0}body.mobile-preview .hero h1{font-size:44px;letter-spacing:-2px}body.mobile-preview .project-grid{grid-template-columns:1fr}body.mobile-preview .featured{display:flex;grid-column:auto}body.mobile-preview .featured .project-info{padding:22px 3px}body.mobile-preview .project-card.featured{background:transparent;border:none}body.mobile-preview .project-visual,body.mobile-preview .featured .project-visual{height:285px;border-radius:20px;padding:15px}body.mobile-preview .about-grid{grid-template-columns:1fr;gap:35px}body.mobile-preview .contact-inner{display:block}body.mobile-preview .contact .button{margin-top:25px}body.mobile-preview .case-layout{display:block}body.mobile-preview .toc{display:none}body.mobile-preview .case-meta{grid-template-columns:1fr;gap:17px}body.mobile-preview .two-up,body.mobile-preview .result-grid{grid-template-columns:1fr}body.mobile-preview .case-hero h1{font-size:38px}body.mobile-preview .hero-image{padding:12px}body.mobile-preview .contact h2{font-size:33px}body.mobile-preview .footer{display:block}body.mobile-preview .mobile-toc{display:flex;overflow:auto;gap:20px;padding:12px 0;font-size:11px;white-space:nowrap;border-bottom:1px solid var(--line)}
@media(max-width:850px){.wrap{padding:0 28px}.hero{padding:55px 0 60px}.hero h1{font-size:54px}.nav-links{gap:20px;padding:10px 20px}.nav-right{gap:14px}.featured .project-info{padding:28px}.project-card.featured .project-visual{height:380px}.about-grid{gap:45px}.case-layout{grid-template-columns:130px minmax(0,1fr);gap:25px}.project-visual{height:290px}.case-hero h1{font-size:51px}.case-meta{gap:16px}.case-summary{font-size:19px}.result{padding:18px}.result strong{font-size:28px}}
@media(max-width:600px){.wrap{padding:0 20px}.nav{height:80px}.brand{font-size:17px}.nav-links{display:none}.hero{padding:38px 0 48px}.hero h1{font-size:44px;letter-spacing:-2px}.intro-mark{margin-bottom:20px}.bio{font-size:21px;line-height:1.8}.hero-detail{font-size:15px}.project-grid{grid-template-columns:1fr;gap:32px}.project-card.featured{display:flex;grid-column:auto;background:transparent;border:none}.project-visual,.project-card.featured .project-visual{height:300px;border-radius:20px;padding:20px}.featured .project-info{padding:22px 3px}.project-info h3{font-size:26px}.work-area{padding:40px 0 50px}.section-head{align-items:start}.section-head h2{font-size:30px}.section-head span{font-size:11px;max-width:90px;text-align:right}.about-grid{grid-template-columns:1fr;gap:35px}.about-portrait{max-width:190px}.section{padding:60px 0}.contact{border-radius:22px;margin-bottom:30px;padding:40px 0}.contact-inner{display:block}.contact h2{font-size:34px}.contact .button{margin-top:25px}.footer{display:block;font-size:11px}.footer-links{margin-top:10px}.case-hero{padding-top:25px}.back{margin-bottom:30px}.case-hero h1{font-size:39px;letter-spacing:-1.6px}.case-summary{font-size:18px}.case-meta{grid-template-columns:1fr;gap:18px;padding:22px 0;margin:25px 0}.case-meta dt{margin-bottom:4px}.case-meta dd{font-size:13px}.hero-image{padding:12px;border-radius:16px;margin-bottom:15px}.case-layout{display:block}.toc{display:none}.mobile-toc{display:flex;overflow-x:auto;gap:20px;padding:15px 0;font-size:11px;white-space:nowrap;border-bottom:1px solid var(--line)}.case-section{padding-top:35px}.case-section h2{font-size:29px;letter-spacing:-.9px}.case-section p{font-size:16px}.two-up{grid-template-columns:1fr}.result-grid{grid-template-columns:1fr}.result{display:flex;gap:18px;align-items:center}.result strong{font-size:28px;min-width:85px;margin:0}.takeaway{padding:22px}.figure button{padding:10px;border-radius:12px}.flow span{min-width:120px}.cv{padding:35px 20px}.cv h1{font-size:38px}.experience{grid-template-columns:1fr}.experience time{grid-row:1}.next-project{margin-top:40px}.case-end{padding-bottom:45px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media print{header,.actions,.print-button,footer,.footer,.skip{display:none!important}body{background:white;font-size:11pt}.cv{padding:0;max-width:none}.cv h1{font-size:25pt}.cv h2{font-size:15pt;margin:18px 0 10px}.cv p,.cv li{font-size:10pt}.experience{break-inside:avoid;padding:12px 0}a{text-decoration:none}.cv-contact{color:#222}}

.reveal{animation:none}.evidence{margin:18px 0 0;border-top:1px solid var(--line);padding-top:12px}.evidence summary{font-size:11px;color:var(--muted);cursor:pointer}.evidence p{margin-top:12px}.mobile-menu{display:none;position:relative;font-size:12px}.mobile-menu summary{cursor:pointer;list-style:none;padding:8px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu>div{position:absolute;right:0;top:44px;background:white;border:1px solid var(--line);box-shadow:0 12px 30px #20202012;border-radius:14px;min-width:150px;padding:8px;z-index:30}.mobile-menu a{display:block;padding:10px 12px}@media(max-width:600px){.mobile-menu{display:block}.nav-right{gap:6px}.nav{gap:10px}.bio{font-size:20px}.hero-detail{font-size:14px}.intro-mark{margin-bottom:22px}.hero{padding-top:30px}.contact .wrap{padding-left:24px;padding-right:24px}}

/* Deliberate light and dark palettes; product screenshots retain their original colour. */
:root{color-scheme:light;--paper:#faf9f6;--ink:#252b32;--muted:#59616c;--blue:#254fc5;--line:#d9dde3;--surface:#fff;--soft:#f0f2f6;--panel:#eeeff3;--accent:#aa492f;--header:#faf9f6ed;--inverted:#fff;--image-mat:#f5f4f0;--radius:12px}
:root[data-theme=dark]{color-scheme:dark;--paper:#14181d;--ink:#eef0f4;--muted:#b0b8c4;--blue:#9bb8ff;--line:#46505f;--surface:#1b2129;--soft:#222a35;--panel:#202732;--accent:#f3ab93;--header:#14181ded;--inverted:#14181d;--image-mat:#f5f4f0}
header{background:var(--header)}.nav{height:92px}.brand{font-size:20px}.nav-links{box-shadow:none;background:none;border:none;padding:0;gap:25px}.nav-links a{min-height:44px;display:flex;align-items:center}.nav-right{gap:16px}.languages{border-color:var(--line);padding:2px}.languages a{min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;padding:6px}.languages a[aria-current]{background:var(--ink);color:var(--inverted)}.theme-toggle{height:44px;width:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.theme-icon{width:15px;height:15px;border-radius:50%;border:1.5px solid currentColor;box-shadow:inset -5px -1px 0 currentColor}:root[data-theme=dark] .theme-icon{box-shadow:none;background:currentColor;border:3px solid var(--surface);outline:1px solid currentColor}.button{background:var(--surface);border-color:var(--line);color:var(--ink);min-height:48px}.button.primary{background:var(--ink);color:var(--inverted);border-color:var(--ink)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.skip:focus{background:var(--surface);color:var(--ink)}a,button,summary{scroll-margin-top:120px}.hero-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:65px;align-items:center;padding-top:70px;padding-bottom:70px}.hero{padding:0;margin:0;max-width:none}.intro-mark{margin-bottom:36px}.edition-line{width:35px;height:2px;background:var(--accent)}.hero-name{text-transform:uppercase;letter-spacing:1.6px;font-size:11px;margin-bottom:20px;color:var(--muted)}.hero h1{font-size:clamp(42px,4.5vw,63px);letter-spacing:-2.7px;line-height:1.13;margin-bottom:26px}.hero h1 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:var(--blue);letter-spacing:-2px}.bio{font-size:20px;line-height:1.65;max-width:650px;letter-spacing:-.2px}.hero-detail{font-size:15px;line-height:1.85;max-width:610px;margin:18px 0 28px;color:var(--muted)}.decision-index{border-top:2px solid var(--ink);align-self:center;padding-top:20px}.decision-index>p{font-size:10px;max-width:260px;margin-bottom:18px}.decision-index a{display:grid;grid-template-columns:26px 1fr 18px;gap:13px;align-items:start;padding:23px 0;border-top:1px solid var(--line)}.decision-index a:hover strong{color:var(--blue)}.decision-index strong{font-size:16px;font-weight:550;line-height:1.4;display:block}.decision-index small{font-size:11px;line-height:1.7;color:var(--muted);display:block;margin-top:7px}.index-number{font-family:monospace;color:var(--accent);font-size:11px;line-height:2}.evidence-map{padding-top:40px;padding-bottom:70px}.evidence-map .section-head{align-items:end;margin-bottom:25px}.evidence-map .section-head h2{font-size:31px;margin-top:9px}.evidence-map .kicker{margin:0}.evidence-table{border-top:1px solid var(--ink)}.evidence-head,.evidence-row{display:grid;grid-template-columns:1.1fr 1.4fr 140px;gap:36px;padding:18px 0;border-bottom:1px solid var(--line)}.evidence-head{font-family:monospace;text-transform:uppercase;font-size:10px;letter-spacing:1px;color:var(--muted)}.evidence-row{font-size:14px;line-height:1.8;align-items:start}.evidence-row:hover{color:var(--blue)}.evidence-row small{display:none}.evidence-source{color:var(--blue);font-weight:550}.work-area{background:var(--soft);border-top:1px solid var(--line);padding:58px 0 70px}.section-head span,.kicker,.small,.footer,.fine,.filter-status{color:var(--muted)}.project-controls{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:30px}.project-filters{display:flex;gap:8px;flex-wrap:wrap}.project-filters button{background:transparent;color:var(--ink);border:1px solid var(--line);padding:9px 16px;border-radius:4px;font-size:12px;cursor:pointer;min-height:44px}.project-filters button[aria-pressed=true]{background:var(--ink);color:var(--inverted);border-color:var(--ink)}.filter-status{font-size:11px;white-space:nowrap;margin:0}.project-grid{gap:40px 30px}.project-card[hidden]{display:none!important}.project-visual{border-radius:10px}.project-card.featured{background:var(--surface);border-color:var(--line);border-radius:10px}.featured .project-info{padding:34px;position:relative}.project-info{position:relative}.project-number{display:block;font-family:monospace;font-size:11px;color:var(--accent);margin-bottom:16px}.project-info h3{font-size:27px}.project-info p{color:var(--muted)}.project-info .kicker{font-size:10px}.tag{border-color:var(--line);color:var(--muted);font-size:11px;border-radius:4px}.project-visual{background:var(--wash)}.project-visual img{border-radius:4px}.project-bottom{align-items:start}.about-grid{gap:85px}.about-grid h2{font-size:39px}.about-grid p:not(.large){color:var(--muted)}.experience{border-color:var(--line)}.experience p,.experience time{color:var(--muted)}.contact{background:var(--panel);border-radius:0;border-top:1px solid var(--line);margin-bottom:30px}.contact h2{font-family:Georgia,serif;font-weight:400;font-size:46px;letter-spacing:-1px}.contact p{color:var(--muted)}.footer{border-color:var(--line)}.footer-links a{display:inline-flex;min-height:36px;align-items:center}.textlink{border-color:var(--muted);min-height:28px;display:inline-block}.back{color:var(--muted);min-height:36px}.case-summary{color:var(--muted)}.case-hero{max-width:1000px}.case-hero h1{font-size:clamp(38px,4.5vw,60px)}.case-meta{margin-bottom:25px;border-color:var(--line)}.case-meta dd{font-size:14px}.case-glance{margin:28px 0 40px;padding:25px 0 28px;border-bottom:1px solid var(--line)}.glance-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:22px}.glance-heading .textlink{font-size:12px;color:var(--blue)}.glance-grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:28px}.glance-grid h2{font-size:14px;letter-spacing:0;font-weight:650;margin-bottom:10px}.glance-grid p{font-size:13px;color:var(--muted);line-height:1.8;margin:0}.hero-image{border-radius:10px;background:var(--wash)}.hero-image img{border-radius:4px}.toc{gap:2px}.toc a{display:flex;align-items:center;min-height:42px}.case-section{border-top:1px solid var(--line);margin-top:24px}.case-section p{color:var(--muted)}.case-section h2{color:var(--ink)}.case-section .kicker{color:var(--accent)}.decision{background:var(--surface);border-color:var(--line);border-radius:10px}.decision h3{color:var(--ink)}.takeaway{background:var(--panel);border-color:var(--line);border-radius:10px}.takeaway p{color:var(--ink)}.figure button{background:var(--wash);border-radius:10px}.figure figcaption{color:var(--muted)}.figure img{border-radius:3px}.flow span{background:var(--panel);color:var(--ink)}.flow span:not(:last-child):after{color:var(--blue)}.result{background:var(--panel);border-radius:10px}.result strong{color:var(--ink)}.result span{color:var(--muted)}.next-project{background:var(--panel);border-radius:10px}.evidence{border-color:var(--line)}.evidence summary{color:var(--muted);min-height:36px;padding-top:5px}.cv-contact{color:var(--muted)}.mobile-menu>div{background:var(--surface);border-color:var(--line)}.mobile-menu summary{min-height:44px;display:flex;align-items:center}.mobile-menu a{min-height:44px}dialog{background:var(--image-mat);color:#252b32}dialog button{min-height:44px;min-width:90px;background:#fff;color:#252b32;border:1px solid #a5acb7}.zoom-label{color:#252b32;background:#fffffff2}.company{color:#252b32}::selection{background:var(--blue);color:var(--inverted)}
@media(max-width:1000px){.hero-layout{grid-template-columns:1.65fr 1fr;gap:35px}.hero h1{font-size:47px;letter-spacing:-2px}.decision-index strong{font-size:14px}.bio{font-size:18px}.hero-detail{font-size:14px}.nav-links{gap:18px}.nav-right{gap:12px}.evidence-head,.evidence-row{gap:22px;grid-template-columns:1fr 1.3fr 120px}}
@media(max-width:750px){.nav-links{display:none}.mobile-menu{display:block}.nav-right{gap:7px}.hero-layout{display:block;padding-top:40px;padding-bottom:40px}.decision-index{margin-top:40px}.decision-index a{padding:17px 0}.decision-index strong{font-size:16px}.hero h1{font-size:48px}.evidence-map{padding-top:20px;padding-bottom:40px}.evidence-head,.evidence-row{grid-template-columns:1fr 1.3fr 100px;gap:18px}.evidence-row{font-size:12px}.glance-grid{gap:18px}.project-controls{display:block}.filter-status{margin-top:14px}.project-filters button{font-size:11px;padding:8px 12px}.case-layout{display:block}.toc{display:none}.mobile-toc{display:flex}.contact h2{font-size:36px}}
@media(max-width:600px){.nav{height:82px;gap:8px}.brand{font-size:17px}.nav-right{gap:3px}.languages a{min-width:32px;min-height:40px;font-size:10px}.theme-toggle{width:40px;height:40px}.hero h1{font-size:43px;letter-spacing:-1.8px}.hero-name{font-size:10px}.hero-detail{font-size:14px}.hero .intro-mark{margin-bottom:26px}.intro-mark .small{font-size:10px}.bio{font-size:19px}.decision-index{border-top-width:1px}.evidence-map .section-head{display:block}.evidence-map .section-head h2{font-size:28px}.evidence-map .section-head>span{display:block;text-align:left;max-width:none;margin-top:10px;font-size:12px}.evidence-head{display:none}.evidence-row{grid-template-columns:1fr;gap:14px;padding:23px 0;font-size:14px}.evidence-row small{display:block;font-family:monospace;text-transform:uppercase;letter-spacing:1px;font-size:10px;color:var(--muted);margin-bottom:5px}.evidence-source{font-size:12px}.evidence-source small{display:none}.project-controls{margin-bottom:25px}.project-filters{gap:7px}.section-head h2{font-size:29px}.project-number{margin-bottom:12px}.project-card.featured{background:transparent}.featured .project-info{padding:22px 3px}.project-visual,.project-card.featured .project-visual{border-radius:8px}.case-meta{gap:18px}.glance-grid{grid-template-columns:1fr;gap:20px}.glance-grid h2{margin-bottom:6px}.glance-grid p{font-size:14px}.glance-heading{display:block}.glance-heading a{margin-top:10px}.case-glance{padding-top:12px;margin-top:16px}.case-hero h1{font-size:38px}.case-summary{font-size:17px}.case-section{padding-top:27px}.about-grid h2{font-size:33px}.contact h2{font-size:35px}.footer-links{flex-wrap:wrap;gap:10px 20px}.project-filters button{min-height:44px}.theme-icon{width:14px;height:14px}}
@media(max-width:350px){.brand{font-size:15px}.languages a{min-width:27px}.mobile-menu summary{font-size:10px;padding:5px}.nav-right{gap:2px}.theme-toggle{height:36px;width:36px}.hero h1{font-size:38px}.case-hero h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card:hover img,.button:hover{transform:none}}
@media print{:root[data-theme=dark]{color-scheme:light;--paper:#fff;--ink:#000;--muted:#333;--line:#aaa}body{background:#fff;color:#000}.evidence-map,.decision-index,.project-controls{display:none}.cv{color:#000}}
.figure img,.hero-image img{height:auto}.project-visual img{height:100%;width:100%}.mobile-toc a{display:inline-flex;align-items:center;min-height:44px}.glance-heading a{min-height:32px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.decision-table{width:100%;border-collapse:collapse;table-layout:fixed;border-top:1px solid var(--ink)}.decision-table th,.decision-table td{text-align:left;padding:18px 26px 18px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px;line-height:1.8}.decision-table th{font-family:monospace;text-transform:uppercase;font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:400}.decision-table th:nth-child(1){width:40%}.decision-table th:nth-child(2){width:44%}.decision-table th:nth-child(3){width:16%}.decision-table td:last-child{padding-right:0}.decision-table a{color:var(--blue);font-weight:550;display:inline-flex;min-height:32px;text-decoration:underline;text-underline-offset:4px}.mobile-cell-label{display:none}@media(max-width:600px){.decision-table,.decision-table tbody,.decision-table tr,.decision-table td{display:block}.decision-table thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.decision-table tr{border-bottom:1px solid var(--line);padding:18px 0}.decision-table td{border:none;padding:6px 0}.mobile-cell-label{display:block;text-transform:uppercase;font-family:monospace;letter-spacing:1px;font-size:10px;color:var(--muted);margin-bottom:5px}}
