@import "tailwindcss";

:root {
  --paper: #f7f7f7;
  --ink: #1f1f1b;
  --muted: #65645e;
  --line: rgba(31,31,27,.12);
  --rust: #7f2b74;
  --brand-soft: #efe6ee;
  --surface: #efefed;
  --on-dark: #f7f7f5;
  --muted-on-dark: #c5c5bf;
  --content-width: 75rem;
  --gutter: clamp(1.5rem,5vw,5rem);
  --page-inset: max(var(--gutter),calc((100% - var(--content-width))/2));
  --section-space: clamp(4.5rem,8vw,7.5rem);
  --layout-gap: clamp(2rem,5vw,5rem);
  --title-size: clamp(2.375rem,4.8vw,4.5rem);
  --heading-size: clamp(2rem,3.1vw,2.75rem);
  --body-size: clamp(1rem,.92rem + .2vw,1.125rem);
  --radius: 1.25rem;
  --shadow-nav: 0 2px 10px rgba(31,31,27,.025);
  --shadow-media: 0 6px 20px rgba(31,31,27,.045);
  --scroll: 0;
  color-scheme: light;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper);scrollbar-color:rgba(127,43,116,.6) transparent;scrollbar-width:thin}html::-webkit-scrollbar{width:10px}html::-webkit-scrollbar-track{background:transparent}html::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:rgba(127,43,116,.6);background-clip:padding-box}html::-webkit-scrollbar-thumb:hover{background-color:rgba(127,43,116,.82)}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif;font-kerning:normal;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,a{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit}::selection{background:var(--rust);color:#fff}main{overflow:clip}.section-pad{padding-left:clamp(24px,7vw,112px);padding-right:clamp(24px,7vw,112px)}.overline{font-size:12px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

.scroll-progress{position:fixed;z-index:100;inset:0 0 auto;height:2px;background:rgba(0,0,0,.06)}.scroll-progress i{display:block;width:100%;height:100%;background:var(--rust);transform:scaleX(var(--scroll));transform-origin:left}
.floating-nav{position:fixed;z-index:90;top:22px;left:50%;transform:translateX(-50%);width:min(920px,calc(100% - 32px));height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 10px 8px 14px;border:1px solid rgba(255,255,255,.66);border-radius:18px;background:rgba(246,244,238,.72);backdrop-filter:blur(24px) saturate(150%);box-shadow:0 16px 45px rgba(31,31,27,.08)}
.brand{width:fit-content;display:flex;align-items:center}.brand-name{font-size:12px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.floating-nav nav{display:flex;gap:4px}.floating-nav nav a{padding:11px 15px;border-radius:12px;color:var(--muted);font-size:13px;font-weight:600;transition:color .25s,background .25s,transform .25s}.floating-nav nav a:hover{color:var(--ink);transform:translateY(-1px)}.floating-nav nav a.active{background:rgba(31,31,27,.07);color:var(--ink)}.availability{justify-self:end;display:flex;align-items:center;gap:8px;padding-right:8px;color:var(--muted);font-size:11px}.availability i{width:7px;height:7px;border-radius:50%;background:#5d8b61;box-shadow:0 0 0 5px rgba(93,139,97,.12);animation:pulse 2.4s infinite}

.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding-top:128px;padding-bottom:56px}.hero-kicker{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em}.hero-copy{position:relative;z-index:2;width:min(1100px,92%);margin:auto 0;padding:10vh 0 6vh}.hero-copy>p{margin:0 0 24px;font-size:clamp(18px,2vw,28px);color:var(--muted)}.hero h1{margin:0;max-width:1060px;font-size:clamp(54px,8.2vw,126px);line-height:.92;letter-spacing:-.065em;font-weight:590}.hero h1 em{font-family:Georgia,"Times New Roman",serif;font-weight:400;color:var(--rust)}.hero-bottom{position:relative;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:40px}.hero-bottom>p{max-width:560px;margin:0;color:var(--muted);font-size:clamp(16px,1.35vw,20px);line-height:1.55}.explore-link{display:flex;align-items:center;gap:16px;font-size:13px;font-weight:650}.explore-link i{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-style:normal;transition:transform .35s,background .35s,color .35s}.explore-link:hover i{transform:translateY(5px);background:var(--ink);color:#fff}.ambient-orbit{position:absolute;width:36vw;height:36vw;max-width:520px;max-height:520px;right:-7vw;top:20%;border:1px solid rgba(155,91,73,.14);border-radius:50%;animation:slowSpin 26s linear infinite}.ambient-orbit i{position:absolute;border-radius:50%;background:var(--rust);opacity:.16;filter:blur(1px)}.ambient-orbit i:nth-child(1){width:16px;height:16px;left:9%;top:22%}.ambient-orbit i:nth-child(2){width:80px;height:80px;right:9%;bottom:13%;filter:blur(20px)}.ambient-orbit i:nth-child(3){width:38%;height:38%;left:32%;top:32%;background:transparent;border:1px solid rgba(155,91,73,.18)}

.case{--case-accent:var(--rust);position:relative;border-top:1px solid var(--line)}.case-blue{--case-accent:#526d85}.case-sage{--case-accent:#697765}.case-violet{--case-accent:#76677d}.case-sticky{position:relative;min-height:100svh;padding:118px clamp(24px,7vw,112px) 42px;display:grid;grid-template-columns:minmax(320px,.68fr) minmax(580px,1.32fr);gap:clamp(42px,6vw,100px);align-items:center;background:var(--paper)}.case-heading>div{display:flex;align-items:center}.case-heading>div small{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.case-heading h2{margin:28px 0 24px;font-size:clamp(50px,5.8vw,88px);line-height:.94;letter-spacing:-.055em;font-weight:610}.case-heading>p{margin:0;max-width:560px;color:var(--muted);font-size:18px;line-height:1.55}.case-stage{min-width:0}.case-visual-wrap{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;position:relative;padding:12px;border-radius:32px;background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,255,255,.28));border:1px solid rgba(255,255,255,.85);box-shadow:0 30px 80px rgba(31,31,27,.14);transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .25s ease-out}.case-visual-wrap::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.34),transparent 28%)}.visual-canvas{position:relative;min-height:min(47vw,570px);overflow:hidden;border-radius:22px;background:#d9d5cc;transition:background .55s,transform .55s}.case-actions{display:flex;align-items:center;gap:28px;margin:22px 8px 0}.case-link,.full-case-link{width:fit-content;display:flex;align-items:center;gap:10px;padding:0 0 7px;border:0;border-bottom:1px solid var(--ink);background:none;cursor:pointer;font-size:13px;font-weight:650}.case-link i,.full-case-link i{font-style:normal;transition:transform .3s}.case-link:hover i{transform:translate(4px,-4px)}.full-case-link{color:var(--case-accent);border-color:var(--case-accent)}.full-case-link:hover i{transform:translate(4px,-4px)}

.map-canvas{background:#24241f}.map-toolbar{position:absolute;z-index:3;left:24px;right:24px;top:24px;height:54px;display:flex;align-items:center;gap:12px;padding:0 18px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:rgba(255,255,255,.08);color:#fff;backdrop-filter:blur(10px);font-size:12px}.map-toolbar i{width:9px;height:9px;border-radius:50%;background:var(--case-accent)}.map-toolbar b{margin-left:auto;color:#b6c7b1;font-size:10px}.postcode-outline{position:absolute;left:16%;top:23%;width:58%;height:58%;border:2px dashed rgba(255,255,255,.36);border-radius:45% 32% 38% 28%;transform:rotate(-8deg)}.hex-field{position:absolute;inset:19% -4% -7% 14%;display:grid;grid-template-columns:repeat(7,64px);grid-auto-rows:55px;transform:rotate(-7deg);transition:transform .65s cubic-bezier(.2,.8,.2,1)}.hex-field i{width:68px;height:76px;clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);background:rgba(255,255,255,.07);border:1px solid #fff;transform:scale(.94)}.hex-field i:nth-child(2n){translate:34px 0}.hex-field i.selected{background:var(--case-accent);opacity:.92}.map-legend{position:absolute;z-index:3;left:24px;bottom:24px;display:flex;gap:18px;color:rgba(255,255,255,.65);font-size:10px}
.learning-canvas{display:grid;grid-template-columns:74px 1fr;background:#e8edf0;padding:18px}.course-sidebar{display:flex;flex-direction:column;align-items:center;gap:23px;padding-top:20px;border-radius:16px 0 0 16px;background:#24303b}.course-sidebar i{width:18px;height:18px;border-radius:5px;background:rgba(255,255,255,.18)}.course-sidebar i.active{background:var(--case-accent);box-shadow:0 0 0 8px rgba(255,255,255,.08)}.course-content{padding:clamp(24px,4vw,50px);background:#f8f8f6;border-radius:0 16px 16px 0}.course-head{display:flex;justify-content:space-between;font-size:clamp(18px,2vw,28px);font-weight:650}.course-head i{width:34px;height:34px;border-radius:50%;background:#d8d8d2}.course-filter{display:flex;gap:22px;margin:38px 0 24px;color:#8a8983;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.course-filter b{color:var(--case-accent)}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.course-card{min-height:145px;padding:14px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fff;transition:transform .5s,opacity .5s}.course-card i{display:block;height:72px;border-radius:9px;background:linear-gradient(125deg,var(--case-accent),#d6dce0);opacity:.7}.course-card b,.course-card span{display:block;height:7px;border-radius:6px;margin-top:13px;background:#c7c7c1}.course-card span{width:58%;margin-top:8px;opacity:.55}
.system-canvas{padding:clamp(30px,5vw,68px);background:#252923;color:#fff}.token-title{display:flex;justify-content:space-between;font-size:clamp(20px,2vw,30px)}.token-title b{color:#a8b8a0;font-size:11px}.token-row{margin-top:38px;padding-top:22px;border-top:1px solid rgba(255,255,255,.13)}.token-row.colors{display:flex;gap:12px}.token-row.colors i{width:48px;height:48px;border-radius:50%;background:#f4f2ec}.token-row.colors i:nth-child(2){background:#697765}.token-row.colors i:nth-child(3){background:#9b5b49}.token-row.colors i:nth-child(4){background:#8b8c85}.token-row.colors i:nth-child(5){background:#11120f}.token-row.type{display:flex;align-items:end;gap:24px}.token-row.type b{font:52px/1 Georgia,serif}.token-row.type span{font-size:12px;color:#aaa}.token-row.type strong{margin-left:auto;font-size:28px;font-weight:500}.component-row{display:flex;align-items:center;gap:12px;margin-top:42px}.component-row button{border:1px solid rgba(255,255,255,.28);border-radius:10px;padding:11px 18px;background:#fff;color:#222}.component-row button:nth-child(2){background:transparent;color:#fff}.component-row i{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.1)}.system-rule{position:absolute;left:10%;right:10%;bottom:34px;display:flex;justify-content:space-between;color:rgba(255,255,255,.46);font-size:10px;text-transform:uppercase;letter-spacing:.15em}
.discovery-canvas{background:#2a252d}.evidence-card{position:absolute;width:180px;min-height:105px;padding:22px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.08);color:#fff;backdrop-filter:blur(16px)}.evidence-card small{display:block;margin-bottom:22px;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.1em}.evidence-card b{font-size:14px}.evidence-card.one{left:8%;top:14%}.evidence-card.two{right:9%;top:18%}.evidence-card.three{left:24%;bottom:12%}.evidence-card.four{right:14%;bottom:14%;background:var(--case-accent)}.flow-line{position:absolute;height:1px;background:rgba(255,255,255,.24);transform-origin:left}.flow-line.a{width:34%;left:29%;top:28%;transform:rotate(6deg)}.flow-line.b{width:30%;left:28%;top:40%;transform:rotate(54deg)}.flow-line.c{width:28%;left:47%;bottom:28%;transform:rotate(-7deg)}

.case-rescue{--case-accent:#7f2b74}.rescue-canvas{padding:clamp(20px,3vw,38px);background:#f1e7e6;color:#342c30}.rescue-nav{height:48px;display:flex;align-items:center;gap:22px;padding:0 17px;border-radius:13px;background:#fff;font-size:9px;color:#817579}.rescue-nav strong{margin-right:auto;color:#7f2b74;font-size:15px;letter-spacing:-.04em}.rescue-nav i{width:26px;height:26px;border-radius:50%;background:#7f2b74}.rescue-copy{position:absolute;left:clamp(36px,6vw,78px);top:27%;width:min(52%,390px)}.rescue-copy small{display:block;margin-bottom:13px;color:#7f2b74;font-size:9px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.rescue-copy>strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,4vw,52px);font-weight:400;line-height:1.02;letter-spacing:-.035em}.rescue-copy p{max-width:310px;margin:14px 0 22px;color:#776c70;font-size:12px;line-height:1.5}.rescue-copy div{display:flex;gap:8px}.rescue-copy div span{padding:10px 13px;border:1px solid #7f2b74;border-radius:999px;color:#7f2b74;font-size:9px;font-weight:700}.rescue-copy div span:first-child{background:#7f2b74;color:#fff}.rescue-guide{position:absolute;right:5%;bottom:7%;width:39%;padding:20px;border:1px solid rgba(127,43,116,.12);border-radius:18px;background:rgba(255,255,255,.74)}.rescue-guide>small{display:block;margin-bottom:11px;color:#7f2b74;font-size:8px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.rescue-guide ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.rescue-guide li{display:flex;align-items:center;gap:10px;padding-top:7px;border-top:1px solid rgba(52,44,48,.1);font-size:9px}.rescue-guide li i{color:#7f2b74;font-style:normal;font-size:8px}.rescue-paw{position:absolute;right:12%;top:25%;width:92px;height:86px;transform:rotate(12deg);opacity:.16}.rescue-paw i,.rescue-paw b{position:absolute;display:block;border-radius:50%;background:#7f2b74}.rescue-paw i{width:22px;height:28px}.rescue-paw i:nth-child(1){left:3px;top:22px;transform:rotate(-28deg)}.rescue-paw i:nth-child(2){left:24px;top:0}.rescue-paw i:nth-child(3){right:24px;top:0}.rescue-paw i:nth-child(4){right:3px;top:22px;transform:rotate(28deg)}.rescue-paw b{left:22px;bottom:0;width:50px;height:46px}
@media(max-width:640px){.rescue-canvas{padding:14px}.rescue-nav span{display:none}.rescue-copy{left:28px;right:28px;top:24%;width:auto}.rescue-copy>strong{max-width:280px;font-size:32px}.rescue-copy p{margin:10px 0 15px;font-size:10px}.rescue-guide{left:28px;right:28px;bottom:6%;width:auto;padding:14px}.rescue-guide ol{grid-template-columns:repeat(3,1fr)}.rescue-guide li{align-items:flex-start;flex-direction:column;gap:4px}.rescue-paw{right:7%;top:41%;transform:rotate(12deg) scale(.7)}}

.profile-details{position:relative;padding-top:clamp(110px,14vw,210px);padding-bottom:clamp(110px,14vw,210px);border-top:1px solid var(--line);background:#ebe8e0}.details-shell{width:min(1180px,100%);margin:0 auto}.details-shell>.overline{display:block;margin-bottom:clamp(68px,9vw,120px);color:var(--rust)}.detail-block{padding-top:24px;border-top:1px solid var(--line)}.detail-block h2{margin:0 0 44px;font-size:clamp(32px,4vw,56px);font-weight:590;line-height:1;letter-spacing:-.045em}.education-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,5vw,76px)}.education-list article{min-width:0}.education-list h3{margin:0;font-size:clamp(18px,1.55vw,23px);font-weight:590;line-height:1.25;letter-spacing:-.02em}.education-list p{min-height:44px;margin:12px 0 24px;color:var(--muted);font-size:14px;line-height:1.45}.education-list time{display:block;color:var(--rust);font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.detail-grid{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);gap:clamp(60px,10vw,150px);margin-top:clamp(100px,13vw,180px)}.language-list{margin:0;font-size:clamp(22px,2.4vw,34px);line-height:1.35;letter-spacing:-.025em}.skills-list{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.skills-list li{padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.34);font-size:13px;line-height:1;transition:border-color .25s,background .25s,transform .25s}.skills-list li:hover{border-color:rgba(155,91,73,.48);background:rgba(255,255,255,.68);transform:translateY(-2px)}

.contact{min-height:92svh;display:flex;flex-direction:column;justify-content:space-between;padding-top:15vh;padding-bottom:48px;background:#1f1f1b;color:#fff}.contact .overline{color:#a9a79f}.contact-title{display:flex;align-items:end;justify-content:space-between;gap:30px}.contact h2{max-width:1100px;margin:0;font-size:clamp(58px,9vw,138px);line-height:.89;letter-spacing:-.065em;font-weight:580}.contact-title>i{flex:0 0 auto;width:clamp(64px,8vw,110px);height:clamp(64px,8vw,110px);display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:50%;font-style:normal;font-size:28px;transition:background .35s,color .35s,transform .35s}.contact-title:hover>i{background:#fff;color:var(--ink);transform:rotate(45deg)}.contact-foot{display:flex;justify-content:space-between;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);color:#aaa9a4;font-size:12px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}.reveal.is-visible,.hero .reveal{opacity:1;transform:none}.hero .hero-kicker{transition-delay:.1s}.hero .hero-copy{transition-delay:.2s}.hero .hero-bottom{transition-delay:.35s}
@keyframes pulse{50%{opacity:.45;transform:scale(.75)}}@keyframes slowSpin{to{transform:rotate(360deg)}}@keyframes textIn{from{opacity:0;transform:translateY(8px)}}

@media(max-width:980px){.availability{display:none}.floating-nav{grid-template-columns:1fr auto}.floating-nav nav{justify-self:end}.work-intro{grid-template-columns:1fr;align-items:end}.case{min-height:auto}.case-sticky{position:relative;min-height:auto;grid-template-columns:1fr;padding-top:120px;padding-bottom:110px}.case-heading>p{max-width:720px}.visual-canvas{min-height:62vw}.education-list{grid-template-columns:1fr;gap:48px}.education-list p{min-height:0;margin-bottom:16px}.detail-grid{grid-template-columns:1fr;gap:80px}}
@media(max-width:640px){.floating-nav{top:12px;width:calc(100% - 20px);height:54px;border-radius:16px}.floating-nav nav a{padding:9px 10px;font-size:12px}.hero{padding-top:96px}.hero-kicker span:last-child{display:none}.hero-copy{width:100%}.hero-bottom{align-items:start;flex-direction:column}.ambient-orbit{width:75vw;height:75vw;top:25%;opacity:.5}.work-intro{min-height:80svh}.case-sticky{padding-top:100px;gap:42px}.case-heading h2{font-size:52px}.case-heading>div{align-items:start;flex-direction:column}.visual-canvas{min-height:94vw}.learning-canvas{grid-template-columns:44px 1fr;padding:10px}.course-content{padding:22px 14px}.course-grid{gap:8px}.course-card{min-height:115px}.course-filter{gap:10px}.course-filter span:last-child{display:none}.hex-field{transform:rotate(-7deg) scale(.78);transform-origin:left top}.system-canvas{padding:26px 22px}.token-row.type strong{font-size:18px}.component-row button:nth-child(2){display:none}.evidence-card{width:140px;min-height:90px;padding:16px}.evidence-card.three{left:10%}.evidence-card.four{right:8%}.detail-block h2{margin-bottom:34px}.skills-list{gap:8px}.skills-list li{padding:9px 11px;font-size:12px}.contact-title{align-items:start;flex-direction:column}}
@media(max-width:420px){.brand-name{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.case-visual-wrap{transform:none!important}.reveal{opacity:1;transform:none}}

button:focus-visible,a:focus-visible{outline:2px solid var(--rust);outline-offset:4px}
.case{scroll-margin-top:72px}

.about-hero{min-height:100svh;display:block;padding-top:128px;padding-bottom:64px;background:#232220;color:#f6f4ef}
.about-layout{min-height:calc(100svh - 192px);display:grid;grid-template-columns:minmax(0,920px);justify-content:center;align-items:center}
.about-signature{align-self:start;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:3px;background:#bdbab5;color:#232220}
.signature-mark{position:relative;min-height:210px;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(145deg,#b9b6b1,#d0cdc7)}
.signature-mark::before,.signature-mark::after{content:"";position:absolute;border:1px solid rgba(35,34,32,.38);border-radius:50%}
.signature-mark::before{width:130px;height:78px;transform:rotate(-8deg)}.signature-mark::after{width:88px;height:130px;transform:rotate(32deg)}
.signature-mark span{position:relative;z-index:1;font-size:72px;font-weight:760;letter-spacing:-.1em}.signature-mark i{position:relative;z-index:2;width:20px;height:20px;border:6px solid #232220;border-radius:50%}
.signature-name{display:flex;flex-direction:column;gap:5px;padding:22px 20px 24px;border-top:1px solid rgba(35,34,32,.45);text-align:center;text-transform:uppercase}.signature-name strong{font-size:14px;letter-spacing:.1em}.signature-name span{font-size:9px;letter-spacing:.18em;color:#595752}
.about-statement{align-self:center;padding-top:7vh}
.about-label{display:block;margin-bottom:20px;color:#aaa7a0;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.about-statement h1{max-width:820px;margin:0;font-size:clamp(40px,4.7vw,70px);font-weight:580;line-height:1.02;letter-spacing:-.05em}
.about-lead{max-width:800px;margin:52px 0 0;font-size:clamp(30px,3.7vw,54px);font-weight:520;line-height:1.06;letter-spacing:-.045em;color:#e2dfd9}
.about-actions{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:60px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);color:#aaa7a0;font-size:11px;text-transform:uppercase;letter-spacing:.11em}
.about-actions .explore-link{color:#f6f4ef;text-transform:none;letter-spacing:0}.about-actions .explore-link i{border-color:rgba(255,255,255,.28)}.about-actions .explore-link:hover i{background:#f6f4ef;color:#232220}
@media(max-width:980px){.about-layout{grid-template-columns:minmax(0,820px);justify-content:center}.about-statement h1{font-size:clamp(38px,5.6vw,58px)}.about-lead{font-size:clamp(28px,4.3vw,44px)}}
@media(max-width:700px){.about-hero{padding-top:92px;padding-bottom:42px}.about-layout{min-height:calc(100svh - 134px);display:flex;flex-direction:column;align-items:stretch;gap:42px}.about-signature{width:156px;display:grid;grid-template-columns:62px 1fr;align-self:flex-start}.signature-mark{min-height:76px}.signature-mark::before{width:48px;height:30px}.signature-mark::after{width:30px;height:48px}.signature-mark span{font-size:22px}.signature-mark i{width:8px;height:8px;border-width:2px}.signature-name{justify-content:center;padding:12px 8px;border-top:0;border-left:1px solid rgba(35,34,32,.45);text-align:left}.signature-name strong{font-size:9px}.signature-name span{font-size:7px}.about-statement{padding-top:0}.about-label{margin-bottom:16px}.about-statement h1{font-size:clamp(36px,10.5vw,50px)}.about-lead{margin-top:34px;font-size:clamp(27px,8vw,38px)}.about-actions{align-items:flex-start;flex-direction:column;margin-top:42px}.about-actions .explore-link{align-self:flex-end}}

/* About format from the reference, expressed in the portfolio's original visual language */
.about-hero{position:relative;background:var(--paper);color:var(--ink)}
.about-layout{position:relative;z-index:1}
.about-signature{border-color:var(--line);border-radius:22px;background:#e9e6de;color:var(--ink);box-shadow:0 22px 60px rgba(31,31,27,.06)}
.signature-mark{background:linear-gradient(145deg,#e5e1d8,#f1eee7)}
.signature-mark::before,.signature-mark::after{border-color:rgba(155,91,73,.34)}
.signature-mark i{border-color:var(--rust)}
.signature-name{border-color:var(--line)}.signature-name span{color:var(--muted)}
.about-label{color:var(--rust)}
.about-statement h1{color:var(--ink)}
.about-lead{color:var(--muted)}
.about-actions{border-color:var(--line);color:var(--muted)}
.about-actions .explore-link{color:var(--ink)}.about-actions .explore-link i{border-color:var(--line)}.about-actions .explore-link:hover i{background:var(--ink);color:#fff}

/* Network Management case study */
.network-case-page{--case-paper:#f7f7f7;--case-soft:#eeeeee;--case-dark:#20211d;--case-accent:#7f2b74;background:var(--case-paper);color:var(--ink)}
.case-pad{padding-left:clamp(24px,7vw,112px);padding-right:clamp(24px,7vw,112px)}
.case-top-nav{position:fixed;z-index:90;top:18px;left:50%;transform:translateX(-50%);width:min(980px,calc(100% - 32px));height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 14px;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:rgba(246,244,238,.78);backdrop-filter:blur(24px) saturate(150%);box-shadow:0 16px 45px rgba(31,31,27,.08)}
.case-back{display:flex;align-items:center;gap:10px;width:fit-content;color:var(--muted);font-size:12px;font-weight:650}.case-back i{font-style:normal;transition:transform .25s}.case-back:hover i{transform:translateX(-4px)}
.case-nav-title{font-size:12px;font-weight:700;letter-spacing:.02em}.case-top-nav nav{justify-self:end;display:flex;gap:4px}.case-top-nav nav a{padding:10px 12px;border-radius:11px;color:var(--muted);font-size:11px;font-weight:650;transition:background .25s,color .25s}.case-top-nav nav a:hover{background:rgba(31,31,27,.07);color:var(--ink)}
.nm-label{display:block;color:var(--case-accent);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.nm-hero{min-height:100svh;padding-top:130px;padding-bottom:clamp(80px,10vw,150px)}
.nm-hero-copy{max-width:1120px;padding:clamp(92px,12vw,170px) 0 clamp(76px,9vw,128px)}
.nm-hero-copy h1{max-width:1080px;margin:24px 0 34px;font-size:clamp(62px,8vw,126px);font-weight:590;line-height:.88;letter-spacing:-.068em}
.nm-hero-copy p{max-width:810px;margin:0;color:var(--muted);font-size:clamp(20px,2.2vw,31px);line-height:1.38;letter-spacing:-.025em}
.nm-meta{display:grid;grid-template-columns:.82fr 1.5fr 1.25fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.nm-meta>div{min-height:160px;padding:22px clamp(18px,2.2vw,34px);border-right:1px solid var(--line)}.nm-meta>div:first-child{padding-left:0}.nm-meta>div:last-child{border-right:0;padding-right:0}.nm-meta span{display:block;margin-bottom:30px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.nm-meta p{margin:0;font-size:14px;line-height:1.5}
.nm-hero-map{margin-top:clamp(64px,8vw,110px)}
.case-map-demo{overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:30px;background:#252720;color:#fff;box-shadow:0 34px 90px rgba(31,31,27,.16)}
.case-map-topbar{height:74px;display:flex;align-items:center;gap:20px;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.045)}
.case-map-search{min-width:min(460px,60%);height:42px;display:flex;align-items:center;gap:12px;padding:0 15px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.07);font-size:12px}.case-map-search i{width:9px;height:9px;border:2px solid #d9d8d1;border-radius:50%;position:relative}.case-map-search i::after{content:"";position:absolute;width:5px;height:2px;right:-5px;bottom:-3px;background:#d9d8d1;transform:rotate(45deg)}
.case-map-status{margin-left:auto;color:#aeb5a5;font-size:11px;font-weight:650}
.case-map-controls{display:flex;gap:8px;padding:14px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.case-map-controls button{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.13);border-radius:10px;background:transparent;color:#aeadac;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s,border-color .25s}.case-map-controls button i{width:7px;height:7px;border-radius:50%;background:#62655e}.case-map-controls button[aria-pressed="true"]{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.09);color:#fff}.case-map-controls button[aria-pressed="true"] i{background:var(--case-accent);box-shadow:0 0 0 4px rgba(155,91,73,.18)}
.case-map-surface{position:relative;min-height:clamp(430px,49vw,700px);overflow:hidden;background:radial-gradient(circle at 64% 38%,rgba(155,91,73,.13),transparent 22%),linear-gradient(145deg,#2a2c26,#20211d)}
.case-map-roads{position:absolute;inset:0;opacity:.34}.case-map-roads i{position:absolute;height:1px;background:#73766e;transform-origin:left}.case-map-roads i:nth-child(1){width:82%;left:-5%;top:34%;transform:rotate(18deg)}.case-map-roads i:nth-child(2){width:90%;left:12%;top:72%;transform:rotate(-16deg)}.case-map-roads i:nth-child(3){width:65%;left:40%;top:4%;transform:rotate(72deg)}.case-map-roads i:nth-child(4){width:44%;left:8%;top:14%;transform:rotate(62deg)}
.case-postcode-boundary{position:absolute;z-index:2;left:21%;top:16%;width:48%;height:61%;border:2px dashed rgba(235,232,224,.55);border-radius:43% 31% 39% 28%;transform:rotate(-7deg);pointer-events:none}.case-postcode-boundary span{position:absolute;left:8%;top:-26px;color:rgba(255,255,255,.62);font-size:10px;letter-spacing:.08em}
.case-map-hexes{position:absolute;z-index:3;left:34%;top:19%;width:500px;display:grid;grid-template-columns:repeat(7,58px);grid-auto-rows:48px;gap:0 4px;transform:rotate(-5deg)}
.case-map-hexes button{width:62px;height:69px;padding:0;border:1px solid rgba(255,255,255,.32);clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);background:rgba(255,255,255,.035);cursor:pointer;transition:background .22s,transform .22s,opacity .22s}.case-map-hexes button:nth-child(2n){translate:31px 0}.case-map-hexes button:hover{background:rgba(255,255,255,.16);transform:scale(1.05)}.case-map-hexes button.selected{background:rgba(155,91,73,.9);border-color:#c99180;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.case-map-hint{position:absolute;z-index:4;left:24px;bottom:22px;color:rgba(255,255,255,.48);font-size:10px;letter-spacing:.06em}
.case-map-demo.compact{margin:28px 0 64px;border-radius:22px;box-shadow:none}.case-map-demo.compact .case-map-surface{min-height:470px}.case-map-demo.compact .case-map-topbar{height:64px}
.nm-thesis{padding-top:clamp(110px,15vw,220px);padding-bottom:clamp(110px,15vw,220px);background:var(--case-dark);color:#f4f2ec}.nm-thesis .nm-label{color:#c58d7d}.nm-thesis p{max-width:1210px;margin:34px 0 0;font-size:clamp(40px,5.7vw,84px);font-weight:540;line-height:1.02;letter-spacing:-.055em}.nm-thesis a{color:#d5a18f;border-bottom:1px solid rgba(213,161,143,.44)}
.nm-section{padding-top:clamp(110px,13vw,190px);padding-bottom:clamp(110px,13vw,190px);border-bottom:1px solid var(--line)}
.nm-section-grid{width:min(1240px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(230px,.58fr) minmax(0,1.42fr);gap:clamp(60px,10vw,170px);align-items:start}
.nm-section-heading{position:sticky;top:120px}.nm-section-heading h2{max-width:440px;margin:24px 0 0;font-size:clamp(40px,4.6vw,68px);font-weight:580;line-height:.98;letter-spacing:-.052em}
.nm-copy{max-width:790px}.nm-copy>p{margin:0 0 32px;color:#4f4e48;font-size:clamp(18px,1.55vw,22px);line-height:1.62}.nm-copy>p:last-child{margin-bottom:0}.nm-copy .nm-lead{color:var(--ink);font-size:clamp(28px,3.25vw,48px);font-weight:530;line-height:1.13;letter-spacing:-.04em}
.nm-copy h3{margin:76px 0 18px;font-size:13px;font-weight:750;letter-spacing:.11em;text-transform:uppercase}.nm-copy h3:first-child{margin-top:0}
.nm-soft{background:var(--case-soft)}
.nm-list{display:grid;gap:clamp(30px,4vw,48px);margin:52px 0 0;padding:0;list-style:none}.nm-list li{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:18px;padding:0;border:0;color:#4f4e48;font-size:16px;line-height:1.55}.nm-list-icon{width:36px;height:36px;display:grid;place-items:center;margin-top:-5px;border:1px solid rgba(155,91,73,.3);border-radius:11px;background:rgba(155,91,73,.07);color:var(--case-accent);line-height:1;transition:background .25s,color .25s,transform .25s}.nm-list-icon svg{display:block;width:20px;height:20px;vector-effect:non-scaling-stroke}.nm-list li:hover .nm-list-icon{background:var(--case-accent);color:#fff;transform:translateY(-2px)}
.nm-evidence-callout{margin-top:58px;padding:28px;border:1px solid var(--line);border-radius:18px;background:#ebe8e0}.nm-evidence-callout span{display:block;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.nm-evidence-callout strong{display:block;margin:18px 0 12px;font-size:clamp(22px,2.4vw,34px);font-weight:570;letter-spacing:-.03em}.nm-evidence-callout p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.nm-principles{padding-top:clamp(110px,14vw,210px);padding-bottom:clamp(110px,14vw,210px);background:#dcd8cd}.nm-principles>div:first-child{width:min(1240px,100%);margin:0 auto}.nm-principles h2{max-width:850px;margin:22px 0 0;font-size:clamp(52px,7vw,104px);font-weight:580;line-height:.9;letter-spacing:-.062em}.nm-principle-grid{width:min(1240px,100%);margin:clamp(80px,10vw,140px) auto 0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(31,31,27,.25);border-bottom:1px solid rgba(31,31,27,.25)}.nm-principle-grid article{padding:32px clamp(24px,3vw,48px) 42px;border-right:1px solid rgba(31,31,27,.25)}.nm-principle-grid article:first-child{padding-left:0}.nm-principle-grid article:last-child{padding-right:0;border-right:0}.nm-principle-grid span{font-size:13px;font-weight:750}.nm-principle-grid p{margin:36px 0 0;color:#54524b;font-size:15px;line-height:1.58}
.nm-decisions-intro{padding-top:clamp(120px,18vw,270px);padding-bottom:clamp(100px,14vw,210px);background:var(--case-dark);color:#f4f2ec}.nm-decisions-intro .nm-label{color:#c58d7d}.nm-decisions-intro h2{max-width:1180px;margin:28px 0 0;font-size:clamp(68px,10vw,158px);font-weight:570;line-height:.84;letter-spacing:-.072em}
.nm-decision{background:#f1efe9}.nm-decision .nm-section-heading .nm-label{width:fit-content;padding:8px 11px;border:1px solid rgba(155,91,73,.28);border-radius:999px;background:rgba(155,91,73,.06)}
.nm-tradeoff{margin-top:66px;padding:28px 30px;border-left:3px solid var(--case-accent);background:#e5e1d8}.nm-tradeoff span{display:block;margin-bottom:18px;color:var(--case-accent);font-size:10px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}.nm-tradeoff p{margin:0;color:#45443f;font-size:17px;line-height:1.62}
.nm-system-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0 52px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.nm-system-grid article{padding:26px 24px;border-right:1px solid var(--line)}.nm-system-grid article:first-child{padding-left:0}.nm-system-grid article:last-child{border-right:0;padding-right:0}.nm-system-grid strong{font-size:18px}.nm-system-grid p{margin:18px 0 0;color:var(--muted);font-size:14px;line-height:1.5}
.nm-validation{padding-top:clamp(120px,16vw,230px);padding-bottom:clamp(120px,16vw,230px);background:var(--case-dark);color:#f4f2ec}.nm-validation-heading{max-width:1040px}.nm-validation .nm-label{color:#c58d7d}.nm-validation-heading h2{margin:26px 0 36px;font-size:clamp(60px,8.5vw,132px);font-weight:570;line-height:.87;letter-spacing:-.068em}.nm-validation-heading>p{max-width:780px;margin:0;color:#aaa9a4;font-size:18px;line-height:1.6}
.nm-evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);margin-top:clamp(84px,10vw,140px);border-top:1px solid rgba(255,255,255,.17);border-left:1px solid rgba(255,255,255,.17)}.nm-evidence-grid article{min-height:230px;padding:28px;border-right:1px solid rgba(255,255,255,.17);border-bottom:1px solid rgba(255,255,255,.17)}.nm-evidence-grid span{color:#c58d7d;font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.nm-evidence-grid p{max-width:520px;margin:42px 0 0;font-size:18px;line-height:1.52}
.nm-measures{margin-top:clamp(100px,12vw,170px)}.nm-measures>div{display:grid;grid-template-columns:repeat(4,1fr);margin-top:34px;border-top:1px solid rgba(255,255,255,.17)}.nm-measures article{padding:26px 24px 0 0}.nm-measures strong{font-size:16px}.nm-measures p{color:#aaa9a4;font-size:14px;line-height:1.55}
.nm-future-list{border-top:1px solid var(--line)}.nm-future-list article{display:grid;grid-template-columns:.5fr 1.5fr;gap:40px;padding:28px 0;border-bottom:1px solid var(--line)}.nm-future-list span{font-size:13px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.nm-future-list p{margin:0!important;font-size:16px!important;line-height:1.58!important}
.nm-closing{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:clamp(120px,15vw,220px);padding-bottom:58px;background:#e1ddd3}.nm-closing>p{max-width:980px;margin:32px 0 0;color:#4c4b45;font-size:clamp(20px,2.1vw,30px);line-height:1.5}.nm-closing blockquote{max-width:1180px;margin:clamp(74px,9vw,130px) 0 0;padding:0;border:0;font-size:clamp(54px,7.2vw,110px);font-weight:560;line-height:.91;letter-spacing:-.065em}.nm-closing-links{display:flex;justify-content:space-between;margin-top:clamp(100px,12vw,170px);padding-top:20px;border-top:1px solid var(--line);font-size:12px;font-weight:680}.nm-closing-links a{transition:transform .25s}.nm-closing-links a:hover{transform:translateY(-3px)}
.network-case-page .reveal{opacity:0;transform:translateY(22px)}.network-case-page .reveal.is-visible,.nm-hero .reveal{opacity:1;transform:none}

@media(max-width:980px){
  .case-top-nav{grid-template-columns:1fr auto}.case-nav-title{display:none}.nm-meta{grid-template-columns:repeat(2,1fr)}.nm-meta>div:nth-child(2){border-right:0}.nm-meta>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.nm-meta>div:nth-child(odd){padding-left:0}.nm-meta>div:nth-child(even){padding-right:0}
  .nm-section-grid{grid-template-columns:1fr;gap:54px}.nm-section-heading{position:relative;top:auto}.nm-section-heading h2{max-width:780px}.nm-copy{max-width:820px}
  .nm-principle-grid{grid-template-columns:1fr}.nm-principle-grid article,.nm-principle-grid article:first-child,.nm-principle-grid article:last-child{padding:28px 0;border-right:0;border-bottom:1px solid rgba(31,31,27,.25)}.nm-principle-grid article:last-child{border-bottom:0}.nm-principle-grid p{margin-top:18px}
  .nm-measures>div{grid-template-columns:repeat(2,1fr)}.case-map-hexes{left:25%}
}
@media(max-width:640px){
  .case-top-nav{top:12px;width:calc(100% - 20px);height:54px;border-radius:16px}.case-top-nav nav{display:none}.case-back{font-size:11px}.nm-hero{padding-top:98px}.nm-hero-copy{padding:86px 0 70px}.nm-hero-copy h1{font-size:clamp(54px,15.5vw,76px)}.nm-hero-copy p{font-size:19px}
  .nm-meta{grid-template-columns:1fr}.nm-meta>div,.nm-meta>div:nth-child(odd),.nm-meta>div:nth-child(even),.nm-meta>div:first-child,.nm-meta>div:last-child{min-height:0;padding:22px 0;border-right:0;border-bottom:1px solid var(--line)}.nm-meta>div:last-child{border-bottom:0}.nm-meta span{margin-bottom:12px}
  .case-map-topbar{height:auto;align-items:flex-start;flex-direction:column;padding:16px}.case-map-search{width:100%;min-width:0}.case-map-status{margin-left:0}.case-map-controls{padding:12px 16px}.case-map-surface{min-height:430px}.case-map-hexes{left:10%;top:25%;grid-template-columns:repeat(7,42px);grid-auto-rows:35px;transform:rotate(-5deg) scale(.88);transform-origin:left top}.case-map-hexes button{width:45px;height:51px}.case-map-hexes button:nth-child(2n){translate:22px 0}.case-postcode-boundary{left:12%;top:20%;width:68%;height:55%}.case-map-hint{left:16px;right:16px}.case-map-demo.compact .case-map-surface{min-height:390px}
  .nm-thesis p{font-size:clamp(38px,11vw,56px)}.nm-section-grid{gap:42px}.nm-section-heading h2{font-size:clamp(38px,11vw,54px)}.nm-copy>p{font-size:17px}.nm-copy .nm-lead{font-size:30px}.nm-list li{grid-template-columns:36px minmax(0,1fr);gap:14px}.nm-list-icon{width:32px;height:32px}.nm-list-icon svg{width:18px;height:18px}.nm-evidence-callout{padding:22px}
  .nm-principles h2{font-size:clamp(50px,14vw,72px)}.nm-decisions-intro h2{font-size:clamp(68px,20vw,102px)}.nm-tradeoff{padding:24px 22px}.nm-system-grid{grid-template-columns:1fr}.nm-system-grid article,.nm-system-grid article:first-child,.nm-system-grid article:last-child{padding:22px 0;border-right:0;border-bottom:1px solid var(--line)}.nm-system-grid article:last-child{border-bottom:0}
  .nm-validation-heading h2{font-size:clamp(58px,16vw,82px)}.nm-evidence-grid{grid-template-columns:1fr}.nm-evidence-grid article{min-height:0}.nm-measures>div{grid-template-columns:1fr}.nm-measures article{padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}.nm-future-list article{grid-template-columns:1fr;gap:14px}.nm-closing blockquote{font-size:clamp(48px,14vw,70px)}.nm-closing-links{align-items:flex-start;flex-direction:column;gap:24px}
}
@media(prefers-reduced-motion:reduce){.network-case-page .reveal{opacity:1;transform:none}.case-map-hexes button{transition:none}}

/* LMS Platform Redesign case study */
.lms-case-page{--case-accent:#7f2b74;--case-soft:#eeeeee;--lms-blue:#7f2b74;--lms-deep:#202a33;background:var(--paper)}
.lms-case-page .scroll-progress i{background:var(--lms-blue)}
.lms-case-page .case-top-nav{background:rgba(244,242,236,.82)}
.lms-hero .nm-hero-copy{max-width:1180px}
.lms-hero .nm-hero-copy h1{max-width:1120px}
.lms-hero-image{overflow:hidden;margin-top:clamp(64px,8vw,110px);border:1px solid rgba(31,31,27,.1);border-radius:30px;background:#e7eaec;box-shadow:0 34px 90px rgba(31,31,27,.14)}
.lms-hero-image img{display:block;width:100%;height:auto}
.lms-thesis{background:var(--lms-deep)}.lms-thesis .nm-label{color:#9fb7c8}.lms-thesis p strong{color:#aac4d6;font-weight:620}
.lms-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:58px 0 46px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.lms-stats article{min-height:150px;padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.lms-stats strong{display:block;color:var(--lms-blue);font-size:clamp(30px,3.3vw,48px);font-weight:570;letter-spacing:-.04em}
.lms-stats span{display:block;margin-top:34px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.lms-evidence-list{display:grid;grid-template-columns:repeat(2,1fr);margin:50px 0 52px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.lms-evidence-list article{min-height:170px;padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.lms-evidence-list strong{color:var(--lms-blue);font-size:clamp(34px,3.2vw,48px);font-weight:580;letter-spacing:-.04em}
.lms-evidence-list p{max-width:28ch;margin:28px 0 0;color:#55544e;font-size:14px;line-height:1.55}
.lms-figure{margin:56px 0 0}.lms-figure.wide{width:min(1160px,100%)}
.lms-figure button{position:relative;width:100%;display:block;overflow:hidden;padding:0;border:1px solid rgba(31,31,27,.11);border-radius:20px;background:#ece9e2;cursor:zoom-in;text-align:left;box-shadow:0 20px 55px rgba(31,31,27,.08)}
.lms-figure img{display:block;width:100%;height:auto;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.lms-figure button>span{position:absolute;right:14px;bottom:14px;padding:9px 12px;border-radius:10px;background:rgba(31,31,27,.82);color:#fff;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s}
.lms-figure button:hover img{transform:scale(1.015)}.lms-figure button:hover>span,.lms-figure button:focus-visible>span{opacity:1;transform:none}
.lms-figure button:focus-visible{outline:3px solid rgba(82,109,133,.4);outline-offset:4px}.lms-figure figcaption{margin:13px 2px 0;color:var(--muted);font-size:12px;line-height:1.5}
.lms-process{padding-top:clamp(120px,16vw,230px);padding-bottom:clamp(120px,16vw,230px);background:var(--lms-deep);color:#f4f2ec}
.lms-process>div,.lms-process>.lms-figure{width:min(1240px,100%);margin-left:auto;margin-right:auto}.lms-process h2{max-width:980px;margin:26px 0 0;font-size:clamp(62px,8vw,122px);font-weight:570;line-height:.94;letter-spacing:-.048em}.lms-process .nm-label{color:#9fb7c8}.lms-process .lms-figure{margin-top:clamp(72px,9vw,126px)}
.lms-interview-band{padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px);background:#dfe5e8}
.lms-band-heading{width:min(1240px,100%);margin:0 auto}.lms-band-heading h2{max-width:980px;margin:24px 0 30px;font-size:clamp(52px,7vw,104px);font-weight:580;line-height:.96;letter-spacing:-.048em}.lms-band-heading>p{max-width:680px;margin:0;color:#4f5457;font-size:18px;line-height:1.68}
.lms-image-grid{width:min(1240px,100%);margin:clamp(70px,9vw,120px) auto 0;display:grid;gap:18px}.lms-image-grid.three{grid-template-columns:repeat(3,1fr)}.lms-image-grid .lms-figure{margin:0}.lms-image-grid .lms-figure button{height:100%;background:#f4f2ec}.lms-image-grid .lms-figure img{height:100%;object-fit:cover}
.lms-opportunities{background:#d9e1e5}.lms-opportunities>div:first-child p{max-width:660px;margin:32px 0 0;color:#4e5559;font-size:18px;line-height:1.65}.lms-opportunities .nm-principle-grid{grid-template-columns:repeat(4,1fr)}
.lms-opportunities .nm-principle-grid article:nth-child(3){padding-right:clamp(24px,3vw,48px);border-right:1px solid rgba(31,31,27,.25)}.lms-opportunities .lms-figure{width:min(900px,100%);margin:clamp(72px,9vw,120px) auto 0}
.lms-testing{background:var(--lms-deep)}.lms-testing .nm-label{color:#9fb7c8}.lms-testing-intro{display:grid;grid-template-columns:.65fr 1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center;margin-top:clamp(72px,9vw,120px);padding-top:28px;border-top:1px solid rgba(255,255,255,.17)}
.lms-testing-intro>div strong{display:block;color:#aac4d6;font-size:clamp(70px,9vw,130px);font-weight:560;line-height:1}.lms-testing-intro>div span{display:block;max-width:20ch;margin-top:16px;color:#aaa9a4;font-size:13px;line-height:1.5}.lms-testing-intro>p{margin:0;color:#dad8d0;font-size:18px;line-height:1.65}.lms-testing-intro .lms-figure{margin:0}.lms-testing .lms-image-grid{margin-top:clamp(90px,11vw,150px)}
.lms-testing .lms-figure button{border-color:rgba(255,255,255,.12);background:#f4f2ec;box-shadow:none}
.lms-task-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(80px,10vw,140px);border-top:1px solid rgba(255,255,255,.17);border-left:1px solid rgba(255,255,255,.17)}
.lms-task-grid article{min-height:190px;padding:24px;border-right:1px solid rgba(255,255,255,.17);border-bottom:1px solid rgba(255,255,255,.17)}.lms-task-grid span{color:#9fb7c8;font-size:11px;font-weight:750;letter-spacing:.1em}.lms-task-grid p{margin:54px 0 0;font-size:17px;line-height:1.5}
.lms-final{padding-top:clamp(120px,16vw,230px);padding-bottom:58px;background:#dfe5e8}.lms-final>div:first-child{width:min(1240px,100%);margin:0 auto}.lms-final h2{max-width:1050px;margin:24px 0 0;font-size:clamp(56px,7.8vw,118px);font-weight:580;line-height:.96;letter-spacing:-.048em}.lms-final>.lms-figure,.lms-final>.nm-closing-links{width:min(1240px,100%);margin-left:auto;margin-right:auto}.lms-final>.lms-figure{margin-top:clamp(80px,10vw,140px)}
.lms-lightbox{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:70px 24px 24px;background:rgba(18,21,23,.93);backdrop-filter:blur(16px);animation:textIn .25s both}.lms-lightbox>button{position:absolute;right:24px;top:20px;padding:10px 14px;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:transparent;color:#fff;cursor:pointer;font-size:12px}.lms-lightbox>img{max-width:96vw;max-height:88vh;object-fit:contain;border-radius:12px;box-shadow:0 30px 100px rgba(0,0,0,.45)}

@media(max-width:980px){
  .lms-stats{grid-template-columns:repeat(2,1fr)}.lms-image-grid.three{grid-template-columns:1fr}.lms-image-grid .lms-figure img{height:auto}.lms-opportunities .nm-principle-grid{grid-template-columns:1fr}.lms-opportunities .nm-principle-grid article:nth-child(3){padding:28px 0;border-right:0;border-bottom:1px solid rgba(31,31,27,.25)}
  .lms-testing-intro{grid-template-columns:1fr 1fr}.lms-testing-intro .lms-figure{grid-column:1/-1;max-width:520px}.lms-task-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .lms-hero-image{border-radius:18px}.lms-stats,.lms-evidence-list{grid-template-columns:1fr}.lms-stats article,.lms-evidence-list article{min-height:0}.lms-stats span{margin-top:18px}.lms-figure{margin-top:40px}.lms-figure button{border-radius:14px}.lms-figure button>span{display:none}
  .lms-band-heading h2,.lms-process h2,.lms-final h2{line-height:1.02;letter-spacing:-.04em}.lms-testing-intro{grid-template-columns:1fr}.lms-testing-intro .lms-figure{grid-column:auto}.lms-task-grid{grid-template-columns:1fr}.lms-task-grid article{min-height:0}.lms-task-grid p{margin-top:28px}
  .lms-lightbox{padding:64px 10px 10px}.lms-lightbox>img{max-width:100%;max-height:82vh}
}
@media(prefers-reduced-motion:reduce){.lms-figure img{transition:none}.lms-lightbox{animation:none}}

/* Readability pass — humanist typography and calmer editorial rhythm */
.about-statement h1{line-height:1.08;letter-spacing:-.035em}.about-lead{line-height:1.16;letter-spacing:-.025em}.case-heading h2{line-height:1;letter-spacing:-.04em}.case-heading>p{line-height:1.68}.contact h2{line-height:.94;letter-spacing:-.05em}
.nm-hero-copy h1{line-height:.94;letter-spacing:-.048em}.nm-hero-copy p{max-width:760px;line-height:1.55;letter-spacing:-.012em}.nm-meta p{line-height:1.62}
.nm-thesis p{max-width:1120px;line-height:1.1;letter-spacing:-.038em}.nm-section-heading h2{line-height:1.06;letter-spacing:-.035em}.nm-copy{max-width:760px}.nm-copy>p{max-width:68ch;line-height:1.72;letter-spacing:-.006em}.nm-copy .nm-lead{max-width:31ch;line-height:1.2;letter-spacing:-.026em}
.nm-principles h2,.nm-decisions-intro h2,.nm-validation-heading h2,.nm-closing blockquote{line-height:.96;letter-spacing:-.048em}.nm-principle-grid p,.nm-tradeoff p,.nm-evidence-grid p,.nm-measures p,.nm-future-list p,.nm-closing>p{line-height:1.68}
@media(max-width:640px){.nm-hero-copy h1{line-height:.98;letter-spacing:-.04em}.nm-thesis p,.nm-decisions-intro h2,.nm-validation-heading h2,.nm-closing blockquote{line-height:1.02;letter-spacing:-.04em}.nm-copy>p{line-height:1.7}}

/* Homepage type scale and case proportions */
.portfolio-home .overline{font-size:11px;letter-spacing:.13em}
.portfolio-home .about-statement h1{max-width:790px;font-size:clamp(38px,4.15vw,62px);font-weight:590;line-height:1.1;letter-spacing:-.034em}
.portfolio-home .about-lead{max-width:760px;margin-top:42px;font-size:clamp(25px,2.85vw,41px);font-weight:510;line-height:1.22;letter-spacing:-.022em}
.portfolio-home .about-lead .company-link{color:var(--rust);text-decoration:underline;text-decoration-thickness:.06em;text-underline-offset:.13em;transition:text-decoration-thickness .2s ease}
.portfolio-home .about-lead .company-link:hover{text-decoration-thickness:.1em}
.portfolio-home .about-actions{margin-top:52px;font-size:10px;letter-spacing:.105em}
.portfolio-home .case-sticky{grid-template-columns:minmax(280px,.8fr) minmax(500px,1.2fr);gap:clamp(28px,4vw,64px);padding-top:112px;padding-bottom:48px}
.portfolio-home .case-heading{max-width:520px}
.portfolio-home .case-heading>div small{font-size:10px;letter-spacing:.13em}
.portfolio-home .case-heading h2{max-width:510px;margin:22px 0 20px;font-size:clamp(40px,4.25vw,64px);font-weight:600;line-height:1.04;letter-spacing:-.036em}
.portfolio-home .case-heading>p{max-width:500px;font-size:clamp(15px,1.2vw,17px);line-height:1.68}
.portfolio-home .case-stage{width:100%;max-width:730px;justify-self:end}
.portfolio-home .case-visual-wrap{padding:10px;border-radius:27px;box-shadow:0 24px 66px rgba(31,31,27,.12)}
.portfolio-home .visual-canvas{min-height:clamp(360px,35vw,500px);border-radius:18px}
.portfolio-home .case-actions{gap:24px}.portfolio-home .case-link,.portfolio-home .full-case-link{font-size:12px}
.portfolio-home .detail-block h2{font-size:clamp(30px,3.25vw,46px);line-height:1.08;letter-spacing:-.032em}
.portfolio-home .education-list h3{font-size:clamp(17px,1.4vw,21px);line-height:1.32;letter-spacing:-.012em}
.portfolio-home .education-list p{font-size:13.5px;line-height:1.55}.portfolio-home .education-list time{font-size:10px}
.portfolio-home .language-list{font-size:16.38px;line-height:1.42;letter-spacing:-.018em}
.portfolio-home .skills-list li{font-size:12px}
.portfolio-home .contact h2{max-width:980px;font-size:clamp(52px,7.3vw,108px);line-height:.98;letter-spacing:-.042em}
.portfolio-home .profile-details{padding-top:clamp(96px,11vw,150px);padding-bottom:clamp(96px,11vw,150px);border-top:0}
.portfolio-home .profile-stack{display:flex;flex-direction:column;gap:clamp(76px,8vw,112px)}
.portfolio-home .profile-section{width:100%;padding:0;border:0}
.portfolio-home .profile-section h2{margin:0 0 clamp(34px,4vw,52px);font-size:clamp(30px,3.25vw,46px);font-weight:590;line-height:1.08;letter-spacing:-.032em}
.portfolio-home .education-list{gap:clamp(32px,5vw,68px)}
.portfolio-home .education-list p{min-height:0;margin:10px 0 18px}
.portfolio-home .language-list{max-width:760px;margin:0}
.portfolio-home .skills-list{max-width:980px}
.about-page{min-height:100svh;background:var(--paper)}
.about-page-intro{min-height:100svh;display:grid;grid-template-columns:minmax(280px,.82fr) minmax(460px,1.18fr);align-items:center;gap:clamp(48px,8vw,132px);padding-top:142px;padding-bottom:96px;background:#232220;color:#f6f4ef}
.about-page-heading{align-self:start;padding-top:clamp(16px,5vh,72px)}
.about-page-heading .about-label{color:#d6a3cf}
.about-page-heading h1{max-width:560px;margin:28px 0 0;font-size:clamp(52px,6.2vw,94px);font-weight:580;line-height:.98;letter-spacing:-.052em}
.about-page-copy{max-width:760px;align-self:end;padding-bottom:clamp(0px,4vh,48px)}
.about-page-copy p{margin:0;color:#d0cbc4;font-size:clamp(18px,1.55vw,23px);line-height:1.62}
.about-page-copy p+p{margin-top:30px}
.about-page .profile-details{padding-top:clamp(96px,11vw,150px);padding-bottom:clamp(96px,11vw,150px);border-top:0;background:var(--paper)}
.about-page .profile-stack{display:flex;flex-direction:column;gap:clamp(76px,8vw,112px)}
.about-page .profile-section{width:100%;padding:0;border:0}
.about-page .profile-section h2{margin:0 0 clamp(34px,4vw,52px);font-size:clamp(30px,3.25vw,46px);font-weight:590;line-height:1.08;letter-spacing:-.032em}
.about-page .education-list{gap:clamp(32px,5vw,68px)}
.about-page .education-list p{min-height:0;margin:10px 0 18px}
.about-page .language-list{max-width:760px;margin:0;font-size:16.38px}
.about-page .skills-list{max-width:980px}
.about-page .skills-list li{font-size:12px}
.about-page-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:32px;padding-bottom:32px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.about-page-footer a{color:var(--rust);font-weight:650}
.portfolio-home .case-visual-wrap{transition:transform .25s ease-out,box-shadow .55s,border-color .55s}
.portfolio-home .case-actions{display:flex;margin-top:22px}

@media(max-width:980px){
  .portfolio-home .case-sticky{grid-template-columns:1fr;gap:30px;padding-top:112px;padding-bottom:100px}
  .portfolio-home .case-heading{max-width:700px}.portfolio-home .case-heading h2{max-width:660px;font-size:clamp(40px,6.3vw,58px)}.portfolio-home .case-heading>p{max-width:650px}
  .portfolio-home .case-stage{max-width:760px;justify-self:start}.portfolio-home .visual-canvas{min-height:clamp(360px,56vw,500px)}
  .portfolio-home .profile-stack{gap:76px}.portfolio-home .education-list{gap:36px}
  .about-page-intro{grid-template-columns:1fr;gap:56px;padding-top:132px}.about-page-heading{padding-top:0}.about-page-copy{align-self:start;padding-bottom:0}.about-page .profile-stack{gap:76px}.about-page .education-list{gap:36px}
}
@media(max-width:640px){
  .portfolio-home .about-statement h1{font-size:clamp(34px,9.6vw,46px);line-height:1.12}.portfolio-home .about-lead{margin-top:32px;font-size:clamp(24px,7.2vw,33px);line-height:1.24}
  .portfolio-home .case-sticky{gap:24px;padding-top:94px;padding-bottom:82px}.portfolio-home .case-heading h2{margin:18px 0 16px;font-size:clamp(36px,10.5vw,46px);line-height:1.06}.portfolio-home .case-heading>p{font-size:15px}
  .portfolio-home .case-visual-wrap{padding:7px;border-radius:21px}.portfolio-home .visual-canvas{min-height:82vw;border-radius:15px}.portfolio-home .case-actions{align-items:flex-start;flex-direction:column;gap:16px;margin:16px 4px 0}
  .portfolio-home .profile-stack{gap:64px}.portfolio-home .profile-section h2{margin-bottom:28px;font-size:30px}.portfolio-home .contact h2{font-size:clamp(46px,13.5vw,64px);line-height:1.02}
  .floating-nav nav{gap:1px}.floating-nav nav a{padding:9px 8px;font-size:11px}.about-page-intro{min-height:auto;gap:42px;padding-top:112px;padding-bottom:72px}.about-page-heading h1{font-size:clamp(46px,13vw,64px)}.about-page-copy p{font-size:17px;line-height:1.62}.about-page-copy p+p{margin-top:24px}.about-page .profile-stack{gap:64px}.about-page .profile-section h2{margin-bottom:28px;font-size:30px}.about-page-footer{align-items:flex-start;flex-direction:column}
}

/* Portfolio palette */
.floating-nav,.case-top-nav,.lms-case-page .case-top-nav{background:rgba(247,247,247,.84)}
.profile-details,.nm-closing{background:var(--paper)}
.floating-nav nav a:hover,.floating-nav nav a.active,.case-top-nav nav a,.case-top-nav nav a:hover,.case-back,.nm-closing-links a{color:var(--rust)}
.floating-nav nav a.active{background:var(--rust);color:#fff}.case-top-nav nav a:hover{background:rgba(127,43,116,.1)}
.explore-link,.about-actions .explore-link{color:var(--rust)}
.explore-link i,.about-actions .explore-link i{border-color:var(--rust)}
.explore-link:hover i,.about-actions .explore-link:hover i{background:var(--rust);color:#fff}
.case-link,.full-case-link,.portfolio-home .case-link,.portfolio-home .full-case-link{color:var(--rust);border-color:var(--rust)}
.contact-title>i{border-color:var(--rust)}
.contact-title:hover>i{background:var(--rust);color:#fff}
.nm-closing-links a{transition:color .25s,transform .25s}
.nm-thesis a{color:#e4acd9;border-bottom-color:rgba(127,43,116,.9)}

/* Scheduling 2.0 homepage visual */
.additional-order-canvas{padding:clamp(22px,3.5vw,46px);background:#272426;color:#f7f3f6}.ao-toolbar{height:48px;display:flex;align-items:center;gap:20px;padding:0 16px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(255,255,255,.05);font-size:9px;color:#aaa3a8}.ao-toolbar strong{margin-right:auto;color:#fff;font-size:13px}.ao-toolbar b{padding:9px 12px;border-radius:8px;background:#7f2b74;color:#fff;font-size:9px}.ao-table{position:absolute;left:clamp(22px,3.5vw,46px);right:36%;top:30%;border:1px solid rgba(255,255,255,.1);border-radius:14px;overflow:hidden}.ao-table-head,.ao-row{display:grid;grid-template-columns:.8fr 1.25fr .8fr .55fr;align-items:center;gap:10px;padding:12px 14px}.ao-table-head{color:#878085;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.ao-row{border-top:1px solid rgba(255,255,255,.08);color:#bdb6bb;font-size:9px}.ao-row strong{color:#fff}.ao-row i{width:fit-content;padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.07);font-style:normal;font-size:8px}.ao-row.is-selected{background:rgba(127,43,116,.22)}.ao-row.is-selected i{background:#7f2b74;color:#fff}.ao-panel{position:absolute;right:5%;top:24%;bottom:8%;width:28%;padding:20px;border-radius:16px;background:#f8f5f7;color:#302b2e}.ao-panel>small{display:block;color:#7f2b74;font-size:8px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.ao-panel>strong{display:block;margin:12px 0 22px;font-size:18px;line-height:1.15}.ao-panel label{display:flex;justify-content:space-between;padding:11px 0;border-top:1px solid rgba(48,43,46,.1);color:#776f74;font-size:8px}.ao-panel label span{color:#302b2e;font-weight:700}.ao-panel>div{position:absolute;left:20px;right:20px;bottom:18px;display:flex;justify-content:flex-end;align-items:center;gap:13px;font-size:8px}.ao-panel>div b{padding:9px 11px;border-radius:7px;background:#7f2b74;color:#fff}
@media(max-width:640px){.additional-order-canvas{padding:14px}.ao-toolbar span{display:none}.ao-table{left:14px;right:14px;top:24%}.ao-table-head,.ao-row{grid-template-columns:.8fr 1.2fr .7fr;padding:9px}.ao-table-head span:nth-child(4),.ao-row i{display:none}.ao-panel{left:18%;right:14px;top:auto;bottom:5%;width:auto;height:42%;padding:14px}.ao-panel>strong{margin:8px 0 12px;font-size:15px}.ao-panel>div{left:14px;right:14px;bottom:12px}}
.case-amber{--case-accent:#7f2b74}.scheduling-canvas{padding:clamp(24px,4vw,52px);background:#e9e2d8;color:#26231f}.schedule-topbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid rgba(38,35,31,.16);font-size:12px;font-weight:700}.schedule-topbar b{padding:9px 13px;border-radius:9px;background:#7f2b74;color:#fff;font-size:10px}.schedule-list{display:grid;gap:11px;margin-top:28px}.schedule-list i{height:58px;border:1px solid rgba(38,35,31,.1);border-radius:12px;background:rgba(255,255,255,.72);box-shadow:inset 5px 0 #c7783e}.schedule-flow{position:absolute;left:clamp(24px,4vw,52px);right:clamp(24px,4vw,52px);bottom:30px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.schedule-flow span{padding:11px;border:1px solid rgba(38,35,31,.13);border-radius:10px;background:rgba(255,255,255,.7);font-size:9px;font-weight:750;letter-spacing:.07em;text-align:center;text-transform:uppercase}.schedule-panel{position:absolute;right:7%;top:31%;width:min(230px,42%);padding:20px;border:1px solid rgba(255,255,255,.7);border-radius:16px;background:rgba(255,255,255,.9);box-shadow:0 20px 50px rgba(67,48,34,.16)}.schedule-panel small{display:block;color:#777069;font-size:9px;text-transform:uppercase;letter-spacing:.09em}.schedule-panel strong{display:block;margin:22px 0;font-size:22px}.schedule-panel button{width:100%;padding:10px;border:0;border-radius:8px;background:#7f2b74;color:#fff;font-size:10px}

/* Scheduling 2.0 case — decision-led editorial structure */
.s2-case-page{--s2-ink:#24211e;--s2-muted:#756f68;--s2-accent:#c66f35;--s2-purple:#7f2b74;--s2-cream:#f7f7f7;background:var(--s2-cream);color:var(--s2-ink)}
.s2-case-page .scroll-progress i{background:var(--s2-purple)}.s2-pad{padding-left:clamp(24px,7vw,112px);padding-right:clamp(24px,7vw,112px)}.s2-top-nav{background:rgba(247,247,247,.86)}
.s2-kicker,.s2-section-label p{font-size:11px;font-weight:720;letter-spacing:.11em;text-transform:uppercase}.s2-kicker{color:var(--s2-accent)}
.s2-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.s2-reveal.is-visible,.s2-hero .s2-reveal{opacity:1;transform:none}
.s2-hero{min-height:100svh;padding-top:140px;padding-bottom:54px;background:#22201e;color:#f6f2ed}.s2-hero-copy{max-width:1120px;padding:clamp(68px,9vw,128px) 0}.s2-hero-copy h1{max-width:1050px;margin:24px 0 34px;font-size:clamp(58px,8.2vw,124px);font-weight:570;line-height:.94;letter-spacing:-.052em}.s2-hero-copy>p{max-width:760px;margin:0;color:#c8c1b9;font-size:clamp(18px,1.7vw,24px);line-height:1.6}.s2-meta{display:grid;grid-template-columns:.8fr 1.7fr 1fr 1fr;border-top:1px solid rgba(255,255,255,.16);border-left:1px solid rgba(255,255,255,.16)}.s2-meta div{min-height:140px;padding:22px;border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}.s2-meta span{display:block;margin-bottom:38px;color:#8f8881;font-size:9px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.s2-meta strong{display:block;color:#eee9e2;font-size:13px;font-weight:520;line-height:1.55}.s2-legacy{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:54px;color:#aaa39b;font-size:11px;text-transform:uppercase;letter-spacing:.07em}.s2-legacy span{padding:11px 13px;border:1px solid rgba(255,255,255,.15);border-radius:8px}.s2-legacy i{color:var(--s2-accent);font-style:normal}
.s2-section-label{display:grid;grid-template-columns:70px 1fr;align-items:center;padding-bottom:20px;border-bottom:1px solid rgba(36,33,30,.18)}.s2-section-label span{color:var(--s2-accent);font-family:Georgia,serif;font-size:28px}.s2-section-label p{margin:0;color:var(--s2-muted)}.s2-body{color:#56514c;font-size:17px;line-height:1.75}.s2-body p{margin:0 0 24px}.s2-body blockquote{margin:48px 0 0;padding-left:24px;border-left:3px solid var(--s2-accent);color:var(--s2-ink);font-size:clamp(23px,2.5vw,36px);font-weight:560;line-height:1.28;letter-spacing:-.025em}.s2-body ul{margin:28px 0 36px;padding-left:22px}.s2-body li{margin:13px 0}.s2-body strong{display:block;margin-top:34px;color:var(--s2-purple);font-size:15px;line-height:1.6}
.s2-problem{padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px)}.s2-problem-grid{display:grid;grid-template-columns:1.05fr .75fr;gap:clamp(60px,10vw,160px);margin-top:clamp(70px,9vw,120px)}.s2-problem-grid h2{max-width:740px;margin:0;font-size:clamp(48px,6.2vw,92px);font-weight:580;line-height:1;letter-spacing:-.047em}
.s2-model{padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px);background:#e8dfd5}.s2-model-intro{max-width:980px}.s2-model-intro h2{margin:24px 0 28px;font-size:clamp(54px,7vw,104px);font-weight:570;line-height:.98;letter-spacing:-.05em}.s2-model-intro p{max-width:690px;margin:0;color:#615a53;font-size:19px;line-height:1.65}.s2-intent-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(72px,9vw,120px);border-top:1px solid rgba(36,33,30,.18);border-left:1px solid rgba(36,33,30,.18)}.s2-intent-grid article{min-height:440px;padding:28px;border-right:1px solid rgba(36,33,30,.18);border-bottom:1px solid rgba(36,33,30,.18);display:flex;flex-direction:column}.s2-intent-head{display:flex;align-items:center;justify-content:space-between}.s2-intent-head>span{color:var(--s2-muted);font-size:10px;letter-spacing:.1em}.s2-intent-head i{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(36,33,30,.2);border-radius:50%}.s2-intent-head svg{width:21px;fill:none;stroke:var(--s2-purple);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.s2-intent-grid h3{margin:58px 0 12px;font-size:clamp(38px,4vw,58px);font-weight:580;letter-spacing:-.04em}.s2-intent-grid strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.s2-intent-grid p{margin:30px 0;color:#5e5851;font-size:15px;line-height:1.7}.s2-intent-grid small{margin-top:auto;color:var(--s2-purple);font-size:12px;font-weight:700}.s2-principle{display:grid;grid-template-columns:.45fr 1.3fr 1fr;gap:clamp(28px,5vw,80px);margin-top:clamp(72px,9vw,120px);padding-top:30px;border-top:1px solid rgba(36,33,30,.2)}.s2-principle>span{color:var(--s2-accent);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.1em}.s2-principle blockquote{margin:0;font-size:clamp(28px,3.2vw,48px);font-weight:570;line-height:1.16;letter-spacing:-.035em}.s2-principle p{margin:0;color:#625b54;font-size:15px;line-height:1.72}
.s2-solutions{padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px)}.s2-solution-heading{max-width:970px;margin:clamp(70px,9vw,120px) 0 clamp(80px,10vw,140px)}.s2-solution-heading h2{margin:0;font-size:clamp(54px,7.5vw,112px);font-weight:570;line-height:.96;letter-spacing:-.052em}.s2-solution-row{display:grid;grid-template-columns:70px .7fr 1fr;gap:clamp(30px,6vw,90px);padding:60px 0;border-top:1px solid rgba(36,33,30,.18)}.s2-solution-row:last-child{border-bottom:1px solid rgba(36,33,30,.18)}.s2-row-number{font-family:Georgia,serif;color:var(--s2-accent);font-size:28px}.s2-solution-row h3{margin:16px 0 0;font-size:clamp(48px,5.7vw,84px);font-weight:580;letter-spacing:-.045em}.s2-solution-row .s2-body b{color:var(--s2-ink)}
.s2-rejected{padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px);background:#282421;color:#f5f0ea}.s2-rejected .s2-section-label{border-color:rgba(255,255,255,.18)}.s2-rejected .s2-section-label p{color:#aaa39b}.s2-rejected-grid{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(60px,9vw,140px);margin-top:clamp(80px,10vw,140px)}.s2-rejected h2{max-width:680px;margin:24px 0 34px;font-size:clamp(56px,7vw,104px);font-weight:570;line-height:.97;letter-spacing:-.05em}.s2-decision-mark{width:fit-content;margin:0;padding:10px 13px;border:1px solid rgba(255,255,255,.25);border-radius:999px;color:#d9a37e;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.1em}.s2-rejected .s2-body{color:#c9c2ba}.s2-rejected .s2-body blockquote{color:#f5f0ea}
.s2-validation{padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px);background:#efe9e2}.s2-validation-head{display:grid;grid-template-columns:1.2fr .6fr;gap:clamp(60px,9vw,140px);margin:clamp(70px,9vw,120px) 0}.s2-validation-head h2{margin:0;font-size:clamp(52px,6.8vw,102px);font-weight:570;line-height:.98;letter-spacing:-.05em}.s2-validation-head p{align-self:end;margin:0;color:#625b54;font-size:17px;line-height:1.72}.s2-findings{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(36,33,30,.18);border-left:1px solid rgba(36,33,30,.18)}.s2-findings article{min-height:280px;padding:26px;border-right:1px solid rgba(36,33,30,.18);border-bottom:1px solid rgba(36,33,30,.18)}.s2-findings span{color:var(--s2-accent);font-family:Georgia,serif;font-size:22px}.s2-findings h3{margin:45px 0 20px;font-size:22px;font-weight:620}.s2-findings p{margin:0;color:#625b54;font-size:14px;line-height:1.7}
.s2-decisions{padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px)}.s2-decision-list{margin-top:clamp(80px,10vw,140px)}.s2-decision-list article{display:grid;grid-template-columns:70px .8fr 1fr;gap:clamp(28px,6vw,90px);align-items:start;padding:38px 0;border-top:1px solid rgba(36,33,30,.18)}.s2-decision-list article:last-child{border-bottom:1px solid rgba(36,33,30,.18)}.s2-decision-list span{color:var(--s2-accent);font-family:Georgia,serif;font-size:23px}.s2-decision-list h3{margin:0;font-size:clamp(27px,3vw,42px);font-weight:580;letter-spacing:-.03em}.s2-decision-list p{max-width:600px;margin:0;color:#625b54;font-size:16px;line-height:1.65}
.s2-outcome{padding-top:clamp(120px,15vw,220px);padding-bottom:clamp(120px,15vw,220px);background:#d9c7b8}.s2-outcome-grid{display:grid;grid-template-columns:1.05fr .75fr;gap:clamp(60px,10vw,160px);margin-top:clamp(80px,10vw,140px)}.s2-outcome-grid h2{margin:0;font-size:clamp(54px,7vw,104px);font-weight:570;line-height:.98;letter-spacing:-.05em}.s2-outcome .s2-body{color:#50473f}
.s2-role{padding-top:clamp(120px,15vw,220px);padding-bottom:58px;background:#22201e;color:#f6f2ed}.s2-role .s2-section-label{border-color:rgba(255,255,255,.17)}.s2-role .s2-section-label p{color:#aaa39b}.s2-role-grid{display:grid;grid-template-columns:1fr .72fr;gap:clamp(60px,10vw,150px);margin-top:clamp(80px,10vw,140px)}.s2-role-grid h2{margin:0;font-size:clamp(50px,6.5vw,96px);font-weight:570;line-height:.98;letter-spacing:-.05em}.s2-role-grid ul{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.17)}.s2-role-grid li{padding:17px 0;border-bottom:1px solid rgba(255,255,255,.17);color:#c7c0b8;font-size:14px;line-height:1.5}.s2-closing{max-width:1120px;margin:clamp(120px,15vw,220px) 0 80px;color:#f5f0ea;font-size:clamp(42px,5.8vw,84px);font-weight:550;line-height:1.02;letter-spacing:-.045em}.s2-role .nm-closing-links{border-color:rgba(255,255,255,.17)}.s2-role .nm-closing-links a{color:#d7a687}

@media(max-width:980px){.s2-meta{grid-template-columns:repeat(2,1fr)}.s2-problem-grid,.s2-rejected-grid,.s2-outcome-grid,.s2-role-grid{grid-template-columns:1fr;gap:60px}.s2-intent-grid{grid-template-columns:1fr}.s2-intent-grid article{min-height:0}.s2-intent-grid small{margin-top:30px}.s2-principle{grid-template-columns:1fr 1fr}.s2-principle>span{grid-column:1/-1}.s2-solution-row{grid-template-columns:60px 1fr}.s2-solution-row>.s2-body{grid-column:2}.s2-validation-head{grid-template-columns:1fr}.s2-validation-head p{max-width:680px}.s2-findings{grid-template-columns:repeat(2,1fr)}.s2-decision-list article{grid-template-columns:60px 1fr}.s2-decision-list p{grid-column:2}}
@media(max-width:640px){.scheduling-canvas{padding:22px 18px}.schedule-panel{right:5%;width:48%;padding:15px}.schedule-panel strong{font-size:17px}.schedule-flow{left:18px;right:18px;bottom:20px}.schedule-flow span{padding:9px 4px;font-size:7px}.s2-hero{padding-top:100px}.s2-hero-copy{padding:72px 0}.s2-hero-copy h1{font-size:clamp(52px,15vw,74px);line-height:.98}.s2-meta{grid-template-columns:1fr}.s2-meta div{min-height:0}.s2-meta span{margin-bottom:16px}.s2-section-label{grid-template-columns:50px 1fr}.s2-problem-grid,.s2-rejected-grid,.s2-outcome-grid,.s2-role-grid{margin-top:62px;gap:44px}.s2-body{font-size:16px}.s2-body blockquote{padding-left:18px;font-size:25px}.s2-model-intro h2,.s2-solution-heading h2,.s2-validation-head h2,.s2-outcome-grid h2,.s2-role-grid h2{line-height:1.03;letter-spacing:-.04em}.s2-intent-grid{margin-top:60px}.s2-intent-grid article{padding:22px}.s2-principle{grid-template-columns:1fr}.s2-solution-row{grid-template-columns:42px 1fr;gap:20px;padding:44px 0}.s2-solution-row>.s2-body{grid-column:1/-1}.s2-findings{grid-template-columns:1fr}.s2-findings article{min-height:0}.s2-decision-list article{grid-template-columns:42px 1fr;gap:18px}.s2-decision-list p{grid-column:1/-1}.s2-closing{line-height:1.05}.s2-role-grid li{font-size:13px}}
@media(prefers-reduced-motion:reduce){.s2-reveal{opacity:1;transform:none;transition:none}}

/* Scheduling 2.0 — spacing-led separation */
.s2-meta{gap:clamp(30px,5vw,72px);border:0}
.s2-meta div{min-height:0;padding:0;border:0}
.s2-legacy{gap:10px 16px;margin-top:clamp(68px,8vw,108px)}
.s2-legacy span{padding:8px 0;border:0;border-radius:0}
.s2-section-label{padding-bottom:0;border:0}
.s2-body blockquote{padding:0;border:0}
.s2-intent-grid{gap:clamp(48px,6vw,88px);border:0}
.s2-intent-grid article{min-height:420px;padding:0;border:0}
.s2-principle{margin-top:clamp(110px,13vw,180px);padding-top:0;border:0}
.s2-solution-heading{margin-bottom:clamp(110px,13vw,180px)}
.s2-solution-row{padding:0;border:0}

/* Experimental portfolio — /v2 */
.v2-portfolio{--v2-paper:#f2f0ec;--v2-ink:#171519;--v2-muted:#656169;--v2-wine:#6f1d4d;--v2-wine-dark:#42132e;--v2-blue:#2446a8;--v2-orange:#ba6225;--v2-line:rgba(23,21,25,.17);position:relative;overflow:clip;background:var(--v2-paper);color:var(--v2-ink);font-family:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif;isolation:isolate}.v2-portfolio::before{content:"";position:fixed;z-index:-2;inset:0;background:radial-gradient(650px circle at var(--pointer-x,75vw) var(--pointer-y,25vh),rgba(111,29,77,.085),transparent 62%);pointer-events:none}.v2-grain{position:fixed;z-index:20;inset:0;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.v2-portfolio a:focus-visible{outline:3px solid var(--v2-blue);outline-offset:5px;border-radius:2px}.v2-portfolio ::selection{background:var(--v2-wine);color:#fff}
.v2-nav{position:relative;z-index:10;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:86px;margin:0 clamp(22px,3.8vw,62px);border-bottom:1px solid var(--v2-line)}.v2-brand{display:flex;align-items:center;gap:12px;width:max-content}.v2-brand>span{width:38px;height:38px;display:grid;place-items:center;background:var(--v2-wine);color:#fff;border-radius:50%;font-size:12px;font-weight:750;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-radius .45s}.v2-brand:hover>span{transform:rotate(-12deg);border-radius:11px}.v2-brand>b{font-size:13px;letter-spacing:-.01em}.v2-nav nav{display:flex;align-items:center;gap:4px}.v2-nav nav a{position:relative;padding:12px 14px;color:var(--v2-muted);font-size:13px;font-weight:650}.v2-nav nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:7px;height:1px;background:var(--v2-wine);transform:scaleX(0);transform-origin:right;transition:transform .3s}.v2-nav nav a:hover{color:var(--v2-ink)}.v2-nav nav a:hover::after{transform:scaleX(1);transform-origin:left}.v2-original{justify-self:end;padding:10px 0;color:var(--v2-wine);font-size:12px;font-weight:700}
.v2-hero{position:relative;min-height:calc(100svh - 86px);display:flex;flex-direction:column;padding:clamp(28px,4vw,60px) clamp(22px,3.8vw,62px) clamp(34px,4vw,60px)}.v2-hero-meta{display:grid;grid-template-columns:1fr auto 1fr;color:var(--v2-muted);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.v2-hero-meta span:nth-child(2){text-align:center}.v2-hero-meta span:last-child{text-align:right}.v2-hero-title{position:relative;z-index:2;margin:auto 0;display:flex;flex-direction:column;font-size:clamp(4rem,10.1vw,10.2rem);font-weight:580;line-height:.82;letter-spacing:-.072em}.v2-hero-title>span{display:block}.v2-line-one{align-self:flex-start}.v2-line-two{align-self:flex-end}.v2-hero-title em{position:relative;color:var(--v2-wine);font-family:Georgia,"Times New Roman",serif;font-weight:400}.v2-hero-title em::after{content:"";position:absolute;right:-.09em;bottom:-.05em;width:.17em;height:.17em;background:var(--v2-orange);border-radius:50%}.v2-hero-foot{position:relative;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:40px}.v2-hero-foot>p{max-width:620px;margin:0;font-size:clamp(17px,1.45vw,22px);line-height:1.55;letter-spacing:-.015em}.v2-hero-foot>a{display:flex;align-items:center;gap:18px;color:var(--v2-wine);font-size:13px;font-weight:700}.v2-hero-foot>a i{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--v2-wine);border-radius:50%;font-style:normal;transition:transform .35s,background .35s,color .35s}.v2-hero-foot>a:hover i{transform:translateY(6px);background:var(--v2-wine);color:#fff}.v2-orbit{position:absolute;z-index:1;right:12vw;top:23%;width:min(31vw,450px);aspect-ratio:1;border:1px solid rgba(111,29,77,.18);border-radius:50%;animation:v2Orbit 28s linear infinite}.v2-orbit::before,.v2-orbit::after{content:"";position:absolute;border:1px solid rgba(111,29,77,.13);border-radius:50%}.v2-orbit::before{inset:13%}.v2-orbit::after{inset:31%}.v2-orbit i{position:absolute;border-radius:50%;background:var(--v2-wine)}.v2-orbit i:nth-child(1){width:12px;height:12px;left:7%;top:25%}.v2-orbit i:nth-child(2){width:7px;height:7px;right:19%;bottom:8%;background:var(--v2-blue)}.v2-orbit i:nth-child(3){width:20px;height:20px;left:48%;top:-10px;background:var(--v2-orange)}
.v2-work{position:relative;display:grid;grid-template-columns:minmax(190px,23vw) minmax(0,1fr);border-top:1px solid var(--v2-line);background:#ece9e4}.v2-index{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;padding:42px clamp(22px,3.8vw,62px);border-right:1px solid var(--v2-line)}.v2-index>span{margin-bottom:auto;color:var(--v2-muted);font-size:11px;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.v2-index>a{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:15px 0;color:#888289;opacity:.48;transition:color .3s,opacity .3s,transform .3s}.v2-index>a i{font-family:Georgia,serif;font-size:12px;font-style:normal}.v2-index>a b{font-size:12px;line-height:1.25}.v2-index>a:hover,.v2-index>a.is-active{color:var(--v2-wine);opacity:1;transform:translateX(5px)}.v2-index>a.is-active b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.v2-projects{min-width:0}.v2-project{min-height:100svh;padding:clamp(44px,6vw,88px) clamp(24px,5vw,84px);border-bottom:1px solid var(--v2-line);scroll-margin-top:0}.v2-project-head{display:grid;grid-template-columns:64px 1fr auto;align-items:baseline;padding-bottom:22px;border-bottom:1px solid var(--v2-line)}.v2-project-number{color:var(--v2-wine);font-family:Georgia,serif;font-size:24px}.v2-project-head small,.v2-project-note{color:var(--v2-muted);font-size:10px;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.v2-project-note{color:var(--v2-wine)}.v2-project-link{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(440px,1.28fr);gap:clamp(36px,6vw,94px);align-items:center;min-height:calc(100svh - 180px);padding:42px 0}.v2-project-copy{position:relative;z-index:2}.v2-project-copy h2{margin:0 0 30px;font-size:clamp(3.4rem,6.6vw,7rem);font-weight:580;line-height:.84;letter-spacing:-.065em}.v2-project-copy h2 span{display:block}.v2-project-copy p{max-width:470px;margin:0;color:var(--v2-muted);font-size:16px;line-height:1.65}.v2-open-case{display:flex;align-items:center;gap:11px;width:max-content;margin-top:34px;padding-bottom:6px;border-bottom:1px solid currentColor;color:var(--v2-wine);font-size:13px;font-weight:700}.v2-open-case i{font-style:normal;transition:transform .3s}.v2-project-link:hover .v2-open-case i{transform:translate(5px,-5px)}.v2-project-visual{position:relative;min-width:0;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.v2-project-link:hover .v2-project-visual{transform:translateY(-8px) rotate(-.6deg)}.v2-project:nth-child(even) .v2-project-link{grid-template-columns:minmax(440px,1.28fr) minmax(250px,.72fr)}.v2-project:nth-child(even) .v2-project-copy{grid-column:2}.v2-project:nth-child(even) .v2-project-visual{grid-column:1;grid-row:1;transform:rotate(-1.2deg)}.v2-project:nth-child(even) .v2-project-link:hover .v2-project-visual{transform:translateY(-8px) rotate(.3deg)}.v2-visual-tag{position:absolute;right:-13px;bottom:-13px;width:82px;height:82px;display:grid;place-items:center;padding:10px;border-radius:50%;background:var(--v2-wine);color:#fff;font-size:10px;font-weight:720;line-height:1.2;text-align:center;text-transform:uppercase;letter-spacing:.07em;transform:rotate(8deg);transition:transform .4s}.v2-project-link:hover .v2-visual-tag{transform:rotate(-4deg) scale(1.06)}
.v2-map,.v2-schedule,.v2-lms{position:relative;min-height:clamp(390px,45vw,650px);overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:clamp(18px,2vw,28px);background:var(--v2-wine-dark)}.v2-map-ui{position:absolute;z-index:3;left:24px;right:24px;top:24px;display:flex;justify-content:space-between;padding:16px 18px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.07);color:#fff;font-size:11px;backdrop-filter:blur(10px)}.v2-map-ui b{color:#e0b0cf}.v2-map-boundary{position:absolute;left:16%;top:26%;width:62%;height:52%;border:2px dashed rgba(255,255,255,.38);border-radius:47% 34% 42% 31%;transform:rotate(-8deg)}.v2-hexes{position:absolute;inset:19% -8% -8% 11%;display:grid;grid-template-columns:repeat(8,60px);grid-auto-rows:51px;transform:rotate(-8deg)}.v2-hexes i{width:64px;height:70px;clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);background:rgba(255,255,255,.06);outline:1px solid rgba(255,255,255,.33);transform:scale(.93);transition:background .4s}.v2-hexes i:nth-child(even){translate:30px 0}.v2-hexes i.is-on{background:#bd6a9a}.v2-map-caption{position:absolute;z-index:3;left:24px;bottom:22px;display:flex;gap:20px;color:#d7c5d0;font-size:10px}.v2-schedule{padding:clamp(24px,4vw,54px);background:#e7ddd2;color:#282126}.v2-schedule-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:23px;border-bottom:1px solid rgba(40,33,38,.18);font-size:13px;font-weight:720}.v2-schedule-head b{padding:10px 13px;border-radius:8px;background:var(--v2-wine);color:#fff;font-size:10px}.v2-schedule-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;min-height:82px;border-bottom:1px solid rgba(40,33,38,.15);font-size:13px}.v2-schedule-row i{color:#9a8c91;font-family:Georgia,serif;font-style:normal}.v2-schedule-row strong{font-size:12px}.v2-schedule-row.is-active{margin:0 -18px;padding:0 18px;border:0;border-radius:12px;background:#fff}.v2-schedule-row.is-active strong{color:var(--v2-wine)}.v2-schedule-actions{position:absolute;left:clamp(24px,4vw,54px);right:clamp(24px,4vw,54px);bottom:30px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.v2-schedule-actions span{padding:12px 8px;border:1px solid rgba(40,33,38,.18);border-radius:8px;background:rgba(255,255,255,.3);font-size:9px;font-weight:750;text-align:center;text-transform:uppercase;letter-spacing:.08em}.v2-lms{display:grid;place-items:center;padding:clamp(20px,3vw,44px);background:#293443}.v2-lms img{display:block;width:100%;height:auto;object-fit:contain;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.v2-project-link:hover .v2-lms img{transform:scale(1.025)}
.v2-about-strip{display:grid;grid-template-columns:.4fr 1.45fr .55fr;gap:clamp(28px,5vw,90px);align-items:start;padding:clamp(80px,10vw,150px) clamp(22px,3.8vw,62px);background:var(--v2-blue);color:#f5f2ed}.v2-about-strip>span{font-size:11px;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.v2-about-strip>p{margin:0;font-size:clamp(2rem,4.5vw,4.8rem);font-weight:560;line-height:1.04;letter-spacing:-.05em}.v2-about-strip>a{justify-self:end;display:flex;gap:8px;padding-bottom:6px;border-bottom:1px solid currentColor;font-size:12px;font-weight:700}.v2-about-strip i{font-style:normal;transition:transform .3s}.v2-about-strip a:hover i{transform:translate(4px,-4px)}
.v2-footer{min-height:90svh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(70px,9vw,130px) clamp(22px,3.8vw,62px) 38px;background:var(--v2-wine-dark);color:#f5eef2}.v2-footer>p{margin:0;color:#caaebf;font-size:12px;font-weight:720;letter-spacing:.09em;text-transform:uppercase}.v2-footer>a{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.25);font-size:clamp(5rem,14vw,14rem);font-weight:560;line-height:.82;letter-spacing:-.075em}.v2-footer>a i{padding-bottom:.07em;color:#d597bc;font-family:Georgia,serif;font-size:.5em;font-style:normal;transition:transform .4s}.v2-footer>a:hover i{transform:translate(10px,-10px)}.v2-footer>div{display:flex;justify-content:space-between;color:#caaebf;font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.08em}
@keyframes v2Orbit{to{transform:rotate(360deg)}}
@media(max-width:980px){.v2-nav{grid-template-columns:1fr auto}.v2-original{display:none}.v2-hero-title{font-size:clamp(4rem,12.2vw,7.5rem)}.v2-work{grid-template-columns:1fr}.v2-index{position:sticky;z-index:5;top:0;width:100%;height:auto;flex-direction:row;align-items:center;gap:20px;padding:13px 24px;border:0;border-bottom:1px solid var(--v2-line);background:rgba(242,240,236,.9);backdrop-filter:blur(16px)}.v2-index>span{margin:0 auto 0 0}.v2-index>a{display:flex;padding:9px 0}.v2-index>a b{display:none}.v2-project{min-height:auto}.v2-project-link,.v2-project:nth-child(even) .v2-project-link{grid-template-columns:1fr;min-height:0;padding:62px 0}.v2-project:nth-child(even) .v2-project-copy,.v2-project:nth-child(even) .v2-project-visual{grid-column:auto;grid-row:auto}.v2-project:nth-child(even) .v2-project-visual{transform:none}.v2-project-visual{margin-top:20px}.v2-about-strip{grid-template-columns:1fr}.v2-about-strip>a{justify-self:start}}
@media(max-width:640px){.v2-nav{min-height:70px;margin:0 18px}.v2-brand>b{display:none}.v2-nav nav a{padding:10px 7px;font-size:11px}.v2-nav nav a::after{left:7px;right:7px}.v2-hero{min-height:calc(100svh - 70px);padding:25px 18px 30px}.v2-hero-meta{display:flex;justify-content:space-between}.v2-hero-meta span:nth-child(2){display:none}.v2-hero-title{font-size:clamp(3.45rem,17vw,5rem);line-height:.88}.v2-line-two{align-self:flex-start}.v2-hero-foot{align-items:flex-start;flex-direction:column}.v2-hero-foot>a{align-self:flex-end}.v2-orbit{right:-16vw;top:29%;width:70vw}.v2-index{padding:10px 18px}.v2-index>span{font-size:9px}.v2-project{padding:34px 18px 66px}.v2-project-head{grid-template-columns:44px 1fr}.v2-project-note{display:none}.v2-project-copy h2{font-size:clamp(3.4rem,16vw,5.4rem);line-height:.88}.v2-project-copy p{font-size:15px}.v2-map,.v2-schedule,.v2-lms{min-height:88vw;border-radius:18px}.v2-map-ui{left:14px;right:14px;top:14px}.v2-visual-tag{right:-5px;bottom:-28px;width:70px;height:70px}.v2-schedule{padding:22px 18px}.v2-schedule-row{min-height:58px}.v2-schedule-actions{left:18px;right:18px;bottom:18px}.v2-about-strip{padding:84px 18px}.v2-about-strip>p{font-size:clamp(2.45rem,12vw,4rem)}.v2-footer{min-height:78svh;padding:76px 18px 28px}.v2-footer>a{font-size:clamp(4.4rem,21vw,7.8rem)}.v2-footer>div{align-items:flex-start;flex-direction:column;gap:12px}}
@media(prefers-reduced-motion:reduce){.v2-orbit{animation:none}.v2-portfolio *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@media(forced-colors:active){.v2-portfolio a:focus-visible{outline-color:Highlight}.v2-grain,.v2-orbit{display:none}}
@media(forced-colors:active){html{scrollbar-color:auto}}

/* Portfolio switchboard — revised /v2 direction */
.switch-portfolio{--sw-bg:#e9eef7;--sw-ink:#171820;--sw-muted:#60636e;--sw-wine:#781d52;--sw-blue:#2949b8;--sw-coral:#e16b4d;--sw-night:#181820;--sw-line:rgba(23,24,32,.2);min-height:100vh;background:var(--sw-bg);color:var(--sw-ink);font-family:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif}.switch-portfolio a:focus-visible{outline:3px solid var(--sw-coral);outline-offset:5px;border-radius:2px}.switch-nav{height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 clamp(20px,4vw,64px);border-bottom:1px solid var(--sw-line)}.switch-name{display:flex;align-items:center;gap:12px;width:max-content}.switch-name>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--sw-wine);color:#fff;font-size:12px;font-weight:750;transition:transform .35s,border-radius .35s}.switch-name:hover>span{border-radius:10px;transform:rotate(-8deg)}.switch-name b{font-size:13px}.switch-nav nav{display:flex;gap:3px}.switch-nav nav a{position:relative;padding:11px 13px;color:var(--sw-muted);font-size:13px;font-weight:650}.switch-nav nav a::after{content:"";position:absolute;left:13px;right:13px;bottom:6px;height:1px;background:var(--sw-wine);transform:scaleX(0);transform-origin:right;transition:transform .3s}.switch-nav nav a:hover::after{transform:scaleX(1);transform-origin:left}.switch-version{justify-self:end;color:var(--sw-wine);font-size:12px;font-weight:720}
.switch-hero{position:relative;min-height:calc(100svh - 76px);display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto 1fr auto;padding:clamp(30px,4vw,58px) clamp(20px,4vw,64px) clamp(38px,5vw,72px)}.switch-hero-index{grid-column:1/-1;display:flex;justify-content:space-between;color:var(--sw-muted);font-size:11px;font-weight:720;letter-spacing:.11em;text-transform:uppercase}.switch-hero h1{z-index:1;grid-column:1/-1;align-self:center;margin:0;font-size:clamp(4.8rem,10.7vw,10.8rem);font-weight:570;line-height:.78;letter-spacing:-.075em}.switch-hero h1 span,.switch-hero h1 em{display:block}.switch-hero h1 span:nth-child(2){padding-left:16vw}.switch-hero h1 em{padding-left:5.5vw;color:var(--sw-wine);font-family:Georgia,"Times New Roman",serif;font-weight:400}.switch-intro{z-index:1;grid-column:1/-1;display:grid;grid-template-columns:minmax(280px,520px) auto;align-items:end;justify-content:space-between;gap:30px}.switch-intro p{margin:0;font-size:clamp(16px,1.4vw,21px);line-height:1.55;letter-spacing:-.012em}.switch-intro>a{display:flex;align-items:center;gap:14px;color:var(--sw-wine);font-size:13px;font-weight:720}.switch-intro>a i{width:45px;height:45px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font-style:normal;transition:transform .3s,background .3s,color .3s}.switch-intro>a:hover i{transform:translateY(5px);background:var(--sw-wine);color:#fff}.switch-seal{position:absolute;right:9vw;top:22%;width:150px;height:150px;display:grid;place-items:center;border:1px solid rgba(41,73,184,.45);border-radius:50%;color:var(--sw-blue);animation:switchFloat 5s ease-in-out infinite}.switch-seal::after{content:"";position:absolute;inset:12px;border:1px solid rgba(41,73,184,.22);border-radius:50%}.switch-seal span{position:absolute;width:110px;font-size:9px;font-weight:740;letter-spacing:.12em;text-align:center;text-transform:uppercase;transform:rotate(-14deg)}.switch-seal b{margin-top:38px;font:italic 32px/1 Georgia,serif}
.switch-work{padding:clamp(34px,4vw,62px) clamp(20px,4vw,64px) clamp(70px,8vw,130px);background:var(--sw-night);color:#f4f2ee}.switch-work-head{display:grid;grid-template-columns:1fr minmax(300px,520px) 1fr;gap:30px;align-items:start;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.2)}.switch-work-head>span{color:#a8a7ad;font-size:11px;font-weight:720;letter-spacing:.11em;text-transform:uppercase}.switch-work-head>span:last-child{text-align:right}.switch-work-head p{margin:0;color:#d4d2d3;font-size:16px;line-height:1.55}.switch-stage{display:grid;grid-template-columns:minmax(280px,.76fr) minmax(550px,1.5fr);gap:clamp(42px,6vw,100px);align-items:start;padding-top:clamp(54px,7vw,100px)}.switch-project-list{border-top:1px solid rgba(255,255,255,.22)}.switch-project-link{display:grid;grid-template-columns:36px 1fr auto;gap:16px;align-items:center;min-height:118px;border-bottom:1px solid rgba(255,255,255,.22);color:#817f84;transition:color .3s,padding .35s,background .35s}.switch-project-link>span{font:15px/1 Georgia,serif}.switch-project-link strong{font-size:clamp(21px,2.2vw,34px);font-weight:560;line-height:1.08;letter-spacing:-.035em}.switch-project-link i{font-style:normal;opacity:0;transform:translate(-8px,8px);transition:opacity .3s,transform .3s}.switch-project-link:hover,.switch-project-link.is-active{padding-left:14px;color:#fff;background:rgba(255,255,255,.045)}.switch-project-link.is-active>span{color:#eaa7cf}.switch-project-link:hover i,.switch-project-link.is-active i{opacity:1;transform:none}.switch-preview{min-width:0;animation:switchReveal .48s cubic-bezier(.2,.8,.2,1)}.switch-preview-top{display:flex;justify-content:space-between;margin-bottom:16px;color:#a8a7ad;font-size:10px;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.switch-preview-media{position:relative;aspect-ratio:1.32;overflow:hidden;border-radius:4px;background:#303038}.switch-preview-media::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.15);pointer-events:none}.switch-map,.switch-schedule,.switch-lms{position:absolute;inset:0;overflow:hidden}.switch-map{background:#35152b}.switch-map-bar{position:absolute;z-index:2;left:22px;right:22px;top:22px;display:flex;justify-content:space-between;padding:15px 17px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);font-size:10px}.switch-map-bar b{color:#e9a9ce}.switch-map-shape{position:absolute;left:13%;top:23%;width:64%;height:58%;border:2px dashed rgba(255,255,255,.38);border-radius:46% 31% 44% 28%;transform:rotate(-8deg)}.switch-map-grid{position:absolute;inset:16% -8% -13% 12%;display:grid;grid-template-columns:repeat(9,55px);grid-auto-rows:47px;transform:rotate(-8deg)}.switch-map-grid i{width:59px;height:65px;clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);outline:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.05);transform:scale(.93)}.switch-map-grid i:nth-child(even){translate:28px 0}.switch-map-grid i.selected{background:#c0528d}.switch-map-legend{position:absolute;z-index:2;left:22px;bottom:19px;display:flex;gap:20px;color:#d7c6d0;font-size:9px}.switch-schedule{padding:clamp(22px,3.3vw,48px);background:#e6ded4;color:#29242a}.switch-schedule-bar{display:flex;justify-content:space-between;padding-bottom:17px;border-bottom:1px solid rgba(41,36,42,.18);font-size:10px;font-weight:700}.switch-schedule-bar b{padding:7px 10px;background:var(--sw-wine);color:#fff}.switch-schedule-title{display:flex;align-items:end;justify-content:space-between;margin:28px 0 12px}.switch-schedule-title small{color:#716a70;font-size:9px;text-transform:uppercase}.switch-schedule-title strong{font-size:18px}.switch-schedule-list>span{display:grid;grid-template-columns:32px 1fr auto;align-items:center;min-height:58px;border-bottom:1px solid rgba(41,36,42,.14);font-size:11px}.switch-schedule-list i{color:#8d848b;font:12px/1 Georgia,serif}.switch-schedule-list b{font-weight:600}.switch-schedule-list em{font-style:normal}.switch-schedule-list .active{margin:0 -14px;padding:0 14px;background:#fff;color:var(--sw-wine)}.switch-schedule-actions{position:absolute;left:clamp(22px,3.3vw,48px);right:clamp(22px,3.3vw,48px);bottom:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.switch-schedule-actions span{padding:9px;border:1px solid rgba(41,36,42,.18);font-size:8px;font-weight:720;text-align:center;text-transform:uppercase;letter-spacing:.06em}.switch-lms{display:grid;place-items:center;padding:clamp(20px,3vw,42px);background:#263b59}.switch-lms img{display:block;width:100%;height:auto}.switch-preview-copy{display:grid;grid-template-columns:1fr .75fr;gap:clamp(34px,5vw,80px);padding-top:28px}.switch-preview-copy small{color:#aaa8ad;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.switch-preview-copy h2{max-width:650px;margin:12px 0 0;font-size:clamp(27px,3.2vw,48px);font-weight:560;line-height:1.07;letter-spacing:-.045em}.switch-preview-copy p{margin:0 0 24px;color:#b9b7ba;font-size:15px;line-height:1.65}.switch-preview-copy a{display:flex;align-items:center;gap:10px;width:max-content;padding-bottom:6px;border-bottom:1px solid #eaa7cf;color:#eaa7cf;font-size:12px;font-weight:720}.switch-preview-copy a i{font-style:normal;transition:transform .3s}.switch-preview-copy a:hover i{transform:translate(4px,-4px)}
.switch-practice{display:grid;grid-template-columns:.55fr 1.15fr .45fr;gap:clamp(35px,6vw,100px);align-items:start;padding:clamp(90px,12vw,190px) clamp(20px,4vw,64px);background:var(--sw-coral);color:#23191a}.switch-practice>div{display:flex;flex-direction:column;gap:16px}.switch-practice span{font-size:11px;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.switch-practice strong{font:italic clamp(30px,3vw,46px)/1 Georgia,serif}.switch-practice p{margin:0;font-size:clamp(2.1rem,4.8vw,5rem);font-weight:560;line-height:1.02;letter-spacing:-.055em}.switch-practice>a{justify-self:end;display:flex;gap:8px;padding-bottom:6px;border-bottom:1px solid currentColor;font-size:12px;font-weight:720}.switch-practice i{font-style:normal;transition:transform .3s}.switch-practice a:hover i{transform:translate(4px,-4px)}
.switch-footer{min-height:90svh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(70px,9vw,130px) clamp(20px,4vw,64px) 34px;background:var(--sw-wine);color:#fff}.switch-footer>span{color:#e6bdd4;font-size:11px;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.switch-footer>a{position:relative;display:grid;grid-template-columns:1fr auto;align-items:end;border-bottom:1px solid rgba(255,255,255,.35)}.switch-footer>a small{grid-column:1/-1;margin-bottom:20px;color:#e6bdd4;font-size:12px}.switch-footer>a strong{font-size:clamp(5rem,14vw,14rem);font-weight:560;line-height:.78;letter-spacing:-.075em}.switch-footer>a i{padding-bottom:.08em;font:italic clamp(3rem,7vw,7rem)/1 Georgia,serif;transition:transform .35s}.switch-footer>a:hover i{transform:translate(10px,-10px)}.switch-footer>div{display:flex;justify-content:space-between;color:#e6bdd4;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
@keyframes switchFloat{50%{transform:translateY(-10px) rotate(5deg)}}@keyframes switchReveal{from{opacity:.25;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:980px){.switch-stage{grid-template-columns:1fr}.switch-project-list{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid rgba(255,255,255,.22)}.switch-project-link{grid-template-columns:1fr;align-content:start;min-height:150px;padding:18px;border-right:1px solid rgba(255,255,255,.22)}.switch-project-link:hover,.switch-project-link.is-active{padding:18px}.switch-project-link i{display:none}.switch-preview-copy{grid-template-columns:1fr 1fr}.switch-practice{grid-template-columns:1fr}.switch-practice>a{justify-self:start}}
@media(max-width:640px){.switch-nav{height:68px;grid-template-columns:auto 1fr;margin:0 16px}.switch-name b,.switch-version{display:none}.switch-nav nav{justify-self:end}.switch-nav nav a{padding:10px 6px;font-size:11px}.switch-nav nav a::after{left:6px;right:6px}.switch-hero{min-height:calc(100svh - 68px);padding:24px 16px 30px}.switch-hero h1{font-size:clamp(4rem,19vw,6rem);line-height:.82}.switch-hero h1 span:nth-child(2),.switch-hero h1 em{padding-left:0}.switch-intro{grid-template-columns:1fr;gap:24px}.switch-intro>a{justify-self:end}.switch-seal{right:-36px;top:22%;width:116px;height:116px}.switch-seal span{width:88px;font-size:7px}.switch-work{padding:28px 16px 76px}.switch-work-head{grid-template-columns:1fr auto}.switch-work-head p{grid-column:1/-1;grid-row:2}.switch-work-head>span:last-child{grid-column:2;grid-row:1}.switch-stage{gap:38px;padding-top:44px}.switch-project-list{grid-template-columns:1fr;border-left:0}.switch-project-link{grid-template-columns:32px 1fr auto;min-height:78px;padding:0;border-right:0}.switch-project-link:hover,.switch-project-link.is-active{padding:0 10px}.switch-project-link strong{font-size:21px}.switch-project-link i{display:block}.switch-preview-media{aspect-ratio:1}.switch-preview-copy{grid-template-columns:1fr;gap:24px}.switch-preview-copy h2{font-size:31px}.switch-schedule-title{display:none}.switch-schedule-list{margin-top:20px}.switch-practice{padding:86px 16px}.switch-practice p{font-size:clamp(2.5rem,12vw,4.1rem)}.switch-footer{min-height:78svh;padding:74px 16px 28px}.switch-footer>a strong{font-size:clamp(4.8rem,22vw,8rem)}.switch-footer>div{align-items:flex-start;flex-direction:column;gap:10px}}
@media(prefers-reduced-motion:reduce){.switch-seal{animation:none}.switch-preview{animation:none}.switch-portfolio *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Portfolio atlas — modular /v2 composition */
.atlas-portfolio{--atlas-paper:#f2f0ec;--atlas-ink:#1d1c20;--atlas-muted:#666269;--atlas-wine:#781d52;--atlas-wine-deep:#43132f;--atlas-blue:#293d78;--atlas-sand:#d9c7b7;min-height:100vh;background:var(--atlas-paper);color:var(--atlas-ink);font-family:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif}.atlas-portfolio a:focus-visible{outline:3px solid #f29c38;outline-offset:-4px}.atlas-rail{position:fixed;z-index:20;inset:0 auto 0 0;width:74px;display:flex;align-items:center;flex-direction:column;padding:20px 0;background:var(--atlas-wine);color:#fff}.atlas-rail>a{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.62);border-radius:50%;font-size:11px;font-weight:750}.atlas-rail>span{margin:auto 0;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.atlas-rail>i{width:8px;height:8px;border-radius:50%;background:#f1b3d6}.atlas-page{margin-left:74px}.atlas-nav{height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,3.8vw,62px);border-bottom:1px solid rgba(29,28,32,.18)}.atlas-nav>span,.atlas-version{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.atlas-nav nav{display:flex;gap:2px}.atlas-nav nav a{padding:10px 13px;color:var(--atlas-muted);font-size:13px;font-weight:650;transition:color .25s,background .25s}.atlas-nav nav a:hover{background:rgba(120,29,82,.08);color:var(--atlas-wine)}.atlas-version{justify-self:end;color:var(--atlas-wine)}
.atlas-board{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(72px,6.6vw);gap:10px;padding:10px;scroll-margin-top:0}.atlas-intro{grid-column:1/5;grid-row:1/7;display:flex;flex-direction:column;padding:clamp(26px,3.2vw,52px);border:1px solid rgba(29,28,32,.18);background:#fbfaf8}.atlas-intro>span{color:var(--atlas-wine);font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.atlas-intro h1{margin:auto 0 28px;font-size:clamp(3.3rem,5.6vw,6.4rem);font-weight:570;line-height:.88;letter-spacing:-.065em}.atlas-intro h1 em{display:block;color:var(--atlas-wine);font-family:Georgia,"Times New Roman",serif;font-weight:400}.atlas-intro>p{max-width:470px;margin:0;color:var(--atlas-muted);font-size:16px;line-height:1.6}.atlas-intro>div{display:flex;justify-content:space-between;gap:20px;margin-top:34px;padding-top:18px;border-top:1px solid rgba(29,28,32,.16);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.atlas-intro>div a{color:var(--atlas-wine)}.atlas-intro>div span{color:var(--atlas-muted)}
.atlas-case{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;border:1px solid rgba(29,28,32,.18);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.atlas-case:hover{transform:translateY(-5px)}.atlas-case::after{content:"";position:absolute;z-index:4;inset:0;border:2px solid transparent;pointer-events:none;transition:border-color .3s}.atlas-case:hover::after,.atlas-case:focus-visible::after{border-color:#f29c38}.atlas-case-top{position:relative;z-index:5;display:grid;grid-template-columns:42px 1fr auto;align-items:center;min-height:54px;padding:0 20px;border-bottom:1px solid currentColor}.atlas-case-top>span{font:15px/1 Georgia,serif}.atlas-case-top small{font-size:9px;font-weight:720;letter-spacing:.09em;text-transform:uppercase}.atlas-case-top i{font-style:normal;transition:transform .3s}.atlas-case:hover .atlas-case-top i{transform:translate(5px,-5px)}.atlas-case-art{position:relative;z-index:1;min-height:0;flex:1;overflow:hidden}.atlas-case-copy{position:relative;z-index:5;display:grid;grid-template-columns:minmax(150px,.8fr) minmax(190px,1.2fr);gap:20px;padding:22px}.atlas-case-copy h2{margin:0;font-size:clamp(23px,2.2vw,37px);font-weight:590;line-height:1;letter-spacing:-.04em}.atlas-case-copy p{margin:0;font-size:13px;line-height:1.55}.atlas-case-copy strong{grid-column:2;width:max-content;margin-top:2px;padding-bottom:5px;border-bottom:1px solid currentColor;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.atlas-network{grid-column:5/13;grid-row:1/9;background:var(--atlas-wine-deep);color:#f8f1f5}.atlas-network .atlas-case-top{border-color:rgba(255,255,255,.2)}.atlas-network .atlas-case-top small,.atlas-network .atlas-case-copy p{color:#d7becd}.atlas-network .atlas-case-copy{background:var(--atlas-wine-deep)}.atlas-map{position:absolute;inset:0;background:#27111f}.atlas-map-bar{position:absolute;z-index:3;left:4%;right:4%;top:5%;display:flex;justify-content:space-between;padding:14px 17px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);font-size:9px;backdrop-filter:blur(8px)}.atlas-map-bar b{color:#efb5d6}.atlas-map-area{position:absolute;left:14%;top:19%;width:62%;height:62%;border:2px dashed rgba(255,255,255,.38);border-radius:46% 31% 44% 28%;transform:rotate(-8deg)}.atlas-map-cells{position:absolute;inset:12% -6% -15% 12%;display:grid;grid-template-columns:repeat(9,60px);grid-auto-rows:52px;transform:rotate(-8deg)}.atlas-map-cells i{width:64px;height:70px;clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);outline:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.04);transform:scale(.93);transition:background .35s}.atlas-map-cells i:nth-child(even){translate:30px 0}.atlas-map-cells i.on{background:#b84482}.atlas-network:hover .atlas-map-cells i.on{background:#e076b0}.atlas-map-key{position:absolute;z-index:3;left:4%;bottom:4%;display:flex;gap:20px;color:#cdb5c3;font-size:9px}
.atlas-scheduling-card{grid-column:1/8;grid-row:7/14;background:var(--atlas-sand);color:#2b2428}.atlas-scheduling-card .atlas-case-top{border-color:rgba(43,36,40,.2)}.atlas-scheduling-card .atlas-case-copy p{color:#62585d}.atlas-scheduling{position:absolute;inset:0;padding:clamp(20px,2.6vw,42px);background:#ded0c3}.atlas-schedule-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid rgba(43,36,40,.17);font-size:9px;font-weight:720}.atlas-schedule-head b{padding:7px 10px;background:var(--atlas-wine);color:#fff}.atlas-schedule-metric{position:absolute;left:8%;top:26%;display:grid;grid-template-columns:auto auto;align-items:end}.atlas-schedule-metric small{grid-column:1/-1;color:#766c71;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.atlas-schedule-metric strong{margin-top:8px;color:var(--atlas-wine);font:italic clamp(4rem,7vw,8rem)/.8 Georgia,serif}.atlas-schedule-metric span{margin:0 0 5px 8px;font-size:11px}.atlas-schedule-lines{position:absolute;right:7%;top:23%;width:38%;display:grid;gap:9px}.atlas-schedule-lines i{height:44px;border:1px solid rgba(43,36,40,.15);background:rgba(255,255,255,.42)}.atlas-schedule-lines i:nth-child(2){border-left:5px solid var(--atlas-wine);background:#fff}.atlas-schedule-flow{position:absolute;left:6%;right:6%;bottom:8%;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.atlas-schedule-flow span{padding:9px;border:1px solid rgba(43,36,40,.18);font-size:8px;font-weight:720;text-align:center;text-transform:uppercase;letter-spacing:.06em}
.atlas-lms-card{grid-column:8/13;grid-row:9/15;background:var(--atlas-blue);color:#f5f6fb}.atlas-lms-card .atlas-case-top{border-color:rgba(255,255,255,.22)}.atlas-lms-card .atlas-case-top small,.atlas-lms-card .atlas-case-copy p{color:#c9d0e7}.atlas-lms-card .atlas-case-copy{grid-template-columns:1fr}.atlas-lms-card .atlas-case-copy strong{grid-column:1}.atlas-lms-art{position:absolute;inset:0;display:grid;place-items:center;padding:clamp(16px,2.5vw,38px);background:#223461}.atlas-lms-art img{display:block;width:100%;height:auto;transition:transform .55s cubic-bezier(.2,.8,.2,1)}.atlas-lms-card:hover .atlas-lms-art img{transform:scale(1.035)}.atlas-note{grid-column:1/8;grid-row:14/17;display:grid;grid-template-columns:.45fr 1.2fr .35fr;gap:25px;align-items:start;padding:28px;border:1px solid rgba(29,28,32,.18);background:#fbfaf8}.atlas-note>span{color:var(--atlas-wine);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.1em}.atlas-note p{margin:0;font-size:clamp(20px,2.1vw,32px);line-height:1.18;letter-spacing:-.03em}.atlas-note>a{justify-self:end;display:flex;gap:8px;padding-bottom:5px;border-bottom:1px solid var(--atlas-wine);color:var(--atlas-wine);font-size:10px;font-weight:720;text-transform:uppercase}.atlas-note i{font-style:normal;transition:transform .3s}.atlas-note a:hover i{transform:translate(4px,-4px)}
.atlas-footer{min-height:88svh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(70px,9vw,130px) clamp(24px,5vw,80px) 34px;background:var(--atlas-wine);color:#fff}.atlas-footer>span{color:#e7bfd7;font-size:10px;font-weight:720;text-transform:uppercase;letter-spacing:.11em}.atlas-footer>a{display:grid;grid-template-columns:1fr auto;align-items:end;border-bottom:1px solid rgba(255,255,255,.35)}.atlas-footer>a small{grid-column:1/-1;margin-bottom:20px;color:#e7bfd7;font-size:12px}.atlas-footer>a strong{font-size:clamp(5rem,13vw,13rem);font-weight:560;line-height:.8;letter-spacing:-.07em}.atlas-footer>a i{padding-bottom:.08em;font:italic clamp(3rem,6vw,6rem)/1 Georgia,serif;transition:transform .35s}.atlas-footer>a:hover i{transform:translate(9px,-9px)}.atlas-footer>div{display:flex;justify-content:space-between;color:#e7bfd7;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:1050px){.atlas-intro{grid-column:1/6}.atlas-network{grid-column:6/13}.atlas-scheduling-card{grid-column:1/8}.atlas-lms-card{grid-column:8/13}.atlas-case-copy{grid-template-columns:1fr}.atlas-case-copy strong{grid-column:1}.atlas-note{grid-column:1/8}}
@media(max-width:760px){.atlas-rail{position:relative;width:100%;height:56px;flex-direction:row;justify-content:space-between;padding:0 16px}.atlas-rail>a{width:34px;height:34px}.atlas-rail>span{margin:0;writing-mode:horizontal-tb;transform:none}.atlas-page{margin-left:0}.atlas-nav{height:64px;grid-template-columns:1fr auto;padding:0 16px}.atlas-nav>span,.atlas-version{display:none}.atlas-nav nav{grid-column:2;gap:0}.atlas-nav nav a{padding:10px 6px;font-size:11px}.atlas-board{display:flex;flex-direction:column;gap:8px;padding:8px}.atlas-intro{min-height:75svh;padding:28px 22px}.atlas-intro h1{margin:auto 0 26px;font-size:clamp(3.8rem,17vw,6.2rem)}.atlas-case{min-height:720px}.atlas-case-art{min-height:390px}.atlas-case-copy{padding:22px}.atlas-case-copy h2{font-size:32px}.atlas-case-copy p{font-size:15px}.atlas-scheduling-card{min-height:670px}.atlas-lms-card{min-height:620px}.atlas-note{display:grid;grid-template-columns:1fr;min-height:330px;padding:28px 22px}.atlas-note>a{justify-self:start}.atlas-footer{min-height:78svh;padding:72px 18px 28px}.atlas-footer>a strong{font-size:clamp(4.8rem,22vw,8rem)}.atlas-footer>div{align-items:flex-start;flex-direction:column;gap:10px}}
@media(prefers-reduced-motion:reduce){.atlas-portfolio *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Horizontal portfolio deck — /v2 */
.deck-portfolio{--deck-paper:#f1efe9;--deck-ink:#1b191d;--deck-muted:#666168;--deck-wine:#791d53;--deck-wine-dark:#3c102b;--deck-blue:#273f75;--deck-coral:#e66f50;position:relative;height:100svh;overflow:hidden;background:var(--deck-paper);color:var(--deck-ink);font-family:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif}.deck-portfolio a:focus-visible,.deck-portfolio button:focus-visible{outline:3px solid #f3a13f;outline-offset:4px}.deck-nav{position:fixed;z-index:30;inset:0 0 auto;height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,3.8vw,62px);border-bottom:1px solid rgba(27,25,29,.17);background:rgba(241,239,233,.9);backdrop-filter:blur(16px)}.deck-brand{display:flex;align-items:center;gap:12px;width:max-content}.deck-brand>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--deck-wine);color:#fff;font-size:11px;font-weight:750}.deck-brand>b{font-size:13px}.deck-nav nav{display:flex;gap:2px}.deck-nav nav a,.deck-nav nav button{padding:10px 13px;border:0;background:none;color:var(--deck-muted);font-size:13px;font-weight:650;cursor:pointer;transition:color .25s,background .25s}.deck-nav nav a:hover,.deck-nav nav button:hover{background:rgba(121,29,83,.08);color:var(--deck-wine)}.deck-hint{justify-self:end;color:var(--deck-wine);font-size:10px;font-weight:720;letter-spacing:.1em;text-transform:uppercase}
.deck-viewport{position:absolute;inset:74px 0 66px;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-gutter:stable;scrollbar-color:rgba(121,29,83,.72) transparent;scrollbar-width:thin}.deck-viewport::-webkit-scrollbar{height:8px}.deck-viewport::-webkit-scrollbar-track{background:transparent}.deck-viewport::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:rgba(121,29,83,.72);background-clip:padding-box}.deck-panel{position:relative;flex:0 0 100vw;width:100vw;height:100%;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden}.deck-intro{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto 1fr auto;padding:clamp(28px,4vw,58px) clamp(24px,5vw,80px);background:#dfe7f5}.deck-intro-meta{z-index:2;grid-column:1/-1;display:flex;justify-content:space-between;color:#585e6b;font-size:10px;font-weight:720;letter-spacing:.11em;text-transform:uppercase}.deck-intro-copy{z-index:2;grid-column:1/11;align-self:center}.deck-intro-copy>small{display:block;margin-bottom:20px;color:var(--deck-wine);font-size:11px;font-weight:740;letter-spacing:.11em;text-transform:uppercase}.deck-intro h1{margin:0;font-size:clamp(4.6rem,9.2vw,9.5rem);font-weight:570;line-height:.84;letter-spacing:-.072em}.deck-intro h1 em{display:block;padding-left:9vw;color:var(--deck-wine);font-family:Georgia,"Times New Roman",serif;font-weight:400}.deck-intro-foot{z-index:2;grid-column:1/-1;display:flex;align-items:end;justify-content:space-between;gap:40px}.deck-intro-foot p{max-width:580px;margin:0;font-size:clamp(16px,1.4vw,21px);line-height:1.55}.deck-intro-foot button{display:flex;align-items:center;gap:15px;padding:0;border:0;background:none;color:var(--deck-wine);font-size:12px;font-weight:720;cursor:pointer}.deck-intro-foot button i{width:46px;height:46px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font-style:normal;transition:transform .3s,background .3s,color .3s}.deck-intro-foot button:hover i{transform:translateX(6px);background:var(--deck-wine);color:#fff}.deck-type-mark{position:absolute;right:-.08em;bottom:-.27em;color:rgba(39,63,117,.07);font:italic clamp(19rem,39vw,43rem)/1 Georgia,serif;letter-spacing:-.12em;pointer-events:none}
.deck-network{display:grid;grid-template-columns:.72fr 1.28fr;background:var(--deck-wine-dark);color:#f9f2f6}.deck-case-copy{z-index:3;display:flex;flex-direction:column;padding:clamp(36px,5vw,80px)}.deck-case-copy>div{display:flex;justify-content:space-between;gap:24px;padding-bottom:17px;border-bottom:1px solid currentColor}.deck-case-copy>div span,.deck-case-copy>div small{font-size:9px;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.deck-case-copy>div small{color:inherit;opacity:.65;text-align:right}.deck-case-copy h2{margin:auto 0 26px;font-size:clamp(4.1rem,7.5vw,8rem);font-weight:570;line-height:.82;letter-spacing:-.065em}.deck-case-copy>p{max-width:530px;margin:0;color:inherit;opacity:.72;font-size:16px;line-height:1.6}.deck-case-copy>a{display:flex;align-items:center;gap:10px;width:max-content;margin-top:30px;padding-bottom:6px;border-bottom:1px solid currentColor;font-size:11px;font-weight:720;text-transform:uppercase;letter-spacing:.06em}.deck-case-copy>a i{font-style:normal;transition:transform .3s}.deck-case-copy>a:hover i{transform:translate(5px,-5px)}.deck-case-visual{position:relative;min-width:0;margin:clamp(20px,3vw,48px) clamp(20px,3vw,48px) clamp(20px,3vw,48px) 0;overflow:hidden}.deck-map{position:absolute;inset:0;background:#25111e}.deck-map-toolbar{position:absolute;z-index:3;left:4%;right:4%;top:5%;display:flex;justify-content:space-between;padding:14px 17px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);font-size:9px;backdrop-filter:blur(8px)}.deck-map-toolbar b{color:#efb5d6}.deck-map-boundary{position:absolute;left:14%;top:18%;width:64%;height:64%;border:2px dashed rgba(255,255,255,.38);border-radius:46% 31% 44% 28%;transform:rotate(-8deg)}.deck-map-hexes{position:absolute;inset:9% -8% -18% 10%;display:grid;grid-template-columns:repeat(10,61px);grid-auto-rows:53px;transform:rotate(-8deg)}.deck-map-hexes i{width:65px;height:71px;clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);outline:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.04);transform:scale(.93);transition:background .35s}.deck-map-hexes i:nth-child(even){translate:31px 0}.deck-map-hexes i.on{background:#b84482}.deck-network:hover .deck-map-hexes i.on{background:#e579b4}.deck-map-legend{position:absolute;z-index:3;left:4%;bottom:4%;display:flex;gap:20px;color:#cdb5c3;font-size:9px}.deck-side-note{position:absolute;right:0;top:50%;z-index:4;writing-mode:vertical-rl;padding:18px 9px;background:#f3a13f;color:#2d1a23;font-size:9px;font-weight:750;letter-spacing:.1em;text-transform:uppercase;transform:translateY(-50%)}
.deck-scheduling-panel{display:grid;grid-template-columns:1.15fr .85fr;background:#d9c7b7}.deck-scheduling-panel .deck-case-visual{margin:clamp(25px,4vw,64px) 0 clamp(25px,4vw,64px) clamp(25px,4vw,64px)}.deck-scheduling-panel .deck-case-copy{color:#2c2429}.deck-scheduling-panel .deck-case-copy>p{color:#66585f;opacity:1}.deck-scheduling-number{position:absolute;right:38%;bottom:-.27em;color:rgba(121,29,83,.08);font:italic clamp(18rem,36vw,40rem)/1 Georgia,serif}.deck-schedule{position:absolute;inset:0;padding:clamp(26px,4vw,58px);background:#eee7df;color:#2c2429}.deck-schedule-head{display:flex;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid rgba(44,36,41,.18);font-size:9px;font-weight:720}.deck-schedule-head b{padding:8px 11px;background:var(--deck-wine);color:#fff}.deck-schedule-metric{position:absolute;left:9%;top:25%;display:grid;grid-template-columns:auto auto;align-items:end}.deck-schedule-metric small{grid-column:1/-1;color:#72686d;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.deck-schedule-metric strong{margin-top:10px;color:var(--deck-wine);font:italic clamp(5rem,9vw,10rem)/.78 Georgia,serif}.deck-schedule-metric span{margin:0 0 8px 10px;font-size:11px}.deck-schedule-items{position:absolute;right:8%;top:24%;width:39%;display:grid;gap:10px}.deck-schedule-items i{height:52px;border:1px solid rgba(44,36,41,.15);background:rgba(255,255,255,.48)}.deck-schedule-items i.selected{border-left:6px solid var(--deck-wine);background:#fff}.deck-schedule-actions{position:absolute;left:7%;right:7%;bottom:8%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.deck-schedule-actions span{padding:10px;border:1px solid rgba(44,36,41,.18);font-size:8px;font-weight:720;text-align:center;text-transform:uppercase;letter-spacing:.06em}
.deck-lms-panel{display:grid;grid-template-columns:1.28fr .72fr;background:var(--deck-blue);color:#f6f7fb}.deck-lms-image{position:relative;z-index:2;display:grid;place-items:center;margin:clamp(22px,3.5vw,56px) 0 clamp(22px,3.5vw,56px) clamp(22px,3.5vw,56px);padding:clamp(22px,3vw,48px);overflow:hidden;background:#1e315f}.deck-lms-image img{display:block;width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.deck-lms-panel:hover .deck-lms-image img{transform:scale(1.035)}.deck-lms-panel .deck-case-copy>p{color:#cbd2e4;opacity:1}.deck-lms-panel .deck-case-copy h2{font-size:clamp(3.7rem,6.3vw,7rem)}.deck-lms-word{position:absolute;right:-.05em;bottom:-.25em;color:rgba(255,255,255,.055);font:italic clamp(13rem,26vw,29rem)/1 Georgia,serif;letter-spacing:-.08em}
.deck-contact{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(38px,5vw,80px);background:var(--deck-wine);color:#fff}.deck-contact>span{color:#e7bfd7;font-size:10px;font-weight:720;letter-spacing:.11em;text-transform:uppercase}.deck-contact>div:not(.deck-contact-foot) small{display:block;margin-bottom:20px;color:#e7bfd7;font-size:12px}.deck-contact h2{margin:0;font-size:clamp(7rem,18vw,19rem);font-weight:560;line-height:.72;letter-spacing:-.08em}.deck-contact>a{align-self:flex-end;display:flex;align-items:center;gap:14px;padding-bottom:7px;border-bottom:1px solid currentColor;font-size:13px;font-weight:720}.deck-contact>a i{font-style:normal;transition:transform .3s}.deck-contact>a:hover i{transform:translate(5px,-5px)}.deck-contact-foot{display:flex;justify-content:space-between;color:#e7bfd7;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.deck-pagination{position:fixed;z-index:30;inset:auto 0 0;height:66px;display:grid;grid-template-columns:repeat(5,1fr);background:var(--deck-paper);border-top:1px solid rgba(27,25,29,.17)}.deck-pagination button{display:grid;grid-template-columns:30px 1fr;align-items:center;padding:0 clamp(12px,2.2vw,34px);border:0;border-right:1px solid rgba(27,25,29,.17);background:transparent;color:#8a858b;text-align:left;cursor:pointer;transition:background .25s,color .25s}.deck-pagination button:hover,.deck-pagination button.is-active{background:var(--deck-wine);color:#fff}.deck-pagination span{font:12px/1 Georgia,serif}.deck-pagination b{font-size:11px;font-weight:720;text-transform:uppercase;letter-spacing:.07em}
@media(max-width:900px){.deck-network,.deck-scheduling-panel,.deck-lms-panel{grid-template-columns:1fr 1fr}.deck-case-copy{padding:34px}.deck-case-copy h2{font-size:clamp(3.2rem,7vw,5.3rem)}.deck-pagination b{display:none}.deck-pagination button{grid-template-columns:1fr;text-align:center}.deck-pagination span{font-size:14px}}
@media(max-width:760px){.deck-portfolio{height:auto;overflow:visible}.deck-nav{position:sticky;height:64px;padding:0 16px;grid-template-columns:auto 1fr}.deck-brand>b,.deck-hint{display:none}.deck-nav nav{justify-self:end}.deck-nav nav a,.deck-nav nav button{padding:9px 6px;font-size:11px}.deck-viewport{position:relative;inset:auto;display:block;overflow:visible}.deck-panel{width:100%;height:auto;min-height:calc(100svh - 64px);overflow:hidden}.deck-intro{padding:28px 18px 34px;grid-template-rows:auto 1fr auto}.deck-intro-copy{grid-column:1/-1}.deck-intro h1{font-size:clamp(4rem,18vw,6.5rem);line-height:.86}.deck-intro h1 em{padding-left:0}.deck-intro-foot{align-items:flex-start;flex-direction:column}.deck-network,.deck-scheduling-panel,.deck-lms-panel{display:flex;flex-direction:column}.deck-case-copy{min-height:52svh;padding:30px 18px}.deck-case-copy h2,.deck-lms-panel .deck-case-copy h2{margin:auto 0 22px;font-size:clamp(3.7rem,16vw,5.8rem)}.deck-case-copy>p{font-size:15px}.deck-case-visual,.deck-scheduling-panel .deck-case-visual{order:2;width:auto;min-height:70vw;margin:0 10px 10px}.deck-lms-image{order:2;min-height:70vw;margin:0 10px 10px;padding:20px}.deck-lms-panel .deck-case-copy{order:1}.deck-contact{padding:68px 18px 30px}.deck-contact h2{font-size:clamp(6rem,26vw,10rem)}.deck-pagination{display:none}.deck-side-note{display:none}}
@media(prefers-reduced-motion:reduce){.deck-portfolio *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.s2-solution-row+.s2-solution-row{margin-top:clamp(110px,13vw,180px)}
.s2-solution-row:last-child{border:0}
.s2-rejected .s2-section-label,.s2-role .s2-section-label{border:0}
.s2-findings{gap:clamp(48px,6vw,88px);border:0}
.s2-findings article{min-height:0;padding:0;border:0}
.s2-decision-list{display:grid;gap:clamp(64px,8vw,112px)}
.s2-decision-list article{padding:0;border:0}
.s2-decision-list article:last-child{border:0}
.s2-role-grid ul{display:grid;gap:22px;border:0}
.s2-role-grid li{padding:0;border:0}
.s2-role .nm-closing-links{padding-top:0;border:0}
@media(max-width:980px){.s2-meta{gap:42px 56px}.s2-intent-grid,.s2-findings{gap:64px}.s2-intent-grid article{min-height:0}}
@media(max-width:640px){.s2-meta{gap:34px}.s2-intent-grid,.s2-findings{gap:54px}.s2-solution-row+.s2-solution-row{margin-top:96px}.s2-role-grid ul{gap:18px}}

/* Proportional type scale and divider cleanup */
.portfolio-home .case,.profile-details,.detail-block,.contact-foot,.about-page-footer,.nm-section,.nm-closing-links,.lms-testing-intro,.s2-section-label,.s2-solution-row,.s2-solution-row:last-child,.s2-decision-list article,.s2-decision-list article:last-child,.s2-role-grid ul,.s2-role-grid li,.nm-future-list,.nm-future-list article{border-top:0;border-bottom:0}
.contact-foot,.nm-closing-links{padding-top:0}
.lms-testing-intro{padding-top:0}
.s2-role-grid ul,.nm-future-list{display:grid;gap:10px}
.s2-role-grid li{padding:10px 0}
.portfolio-home .about-statement h1{font-size:clamp(38px,3.8vw,56px);line-height:1.12;letter-spacing:-.03em}
.portfolio-home .about-lead{max-width:720px;margin-top:34px;font-size:clamp(20px,2.2vw,30px);line-height:1.36;letter-spacing:-.015em}
.portfolio-home .case-heading h2{font-size:clamp(38px,3.8vw,56px);line-height:1.08;letter-spacing:-.03em}
.portfolio-home .contact h2{font-size:clamp(44px,6vw,84px);line-height:1.03;letter-spacing:-.035em}
.about-page-heading h1{font-size:clamp(44px,5vw,72px);line-height:1.04;letter-spacing:-.04em}
.about-page-copy p{font-size:clamp(17px,1.25vw,20px);line-height:1.68}
.about-page-copy .about-location{margin-top:42px;color:#d6a3cf;font-size:11px;font-weight:700;letter-spacing:.11em;line-height:1.4;text-transform:uppercase}
.about-page .profile-section h2{font-size:clamp(28px,2.8vw,40px);letter-spacing:-.025em}
.about-page .education-list h3{font-size:clamp(17px,1.25vw,20px)}
.about-page-footer{padding-top:28px}

@media(max-width:640px){
  .portfolio-home .about-statement h1{font-size:clamp(34px,9.5vw,44px)}
  .portfolio-home .about-lead{font-size:clamp(20px,6vw,26px);line-height:1.4}
  .portfolio-home .case-heading h2{font-size:clamp(34px,9vw,42px)}
  .portfolio-home .contact h2{font-size:clamp(42px,12vw,58px)}
  .about-page-heading h1{font-size:clamp(40px,11vw,54px)}
  .about-page-copy p{font-size:16.5px}
  .about-page .profile-section h2{font-size:28px}
}
.portfolio-home .case-heading .case-actions{margin:28px 0 0}
@media(max-width:640px){.portfolio-home .case-heading .case-actions{margin:22px 0 0}}

/* Shared editorial system: clear hierarchy, quiet surfaces, consistent rhythm. */
body { font-size: 1rem; line-height: 1.6; }
img { max-width: 100%; }
h1,h2,h3 { text-wrap: balance; overflow-wrap: break-word; }
button,a { -webkit-tap-highlight-color: transparent; }
:is(.section-pad,.case-pad,.s2-pad) { padding-inline: var(--page-inset); }
section[id],article[id] { scroll-margin-top: 7rem; }
:is(.reveal,.s2-reveal,.network-case-page .reveal) { opacity: 1; transform: none; transition: none; }
:is(a,button):focus-visible { outline: 3px solid var(--rust); outline-offset: 5px; }
.scroll-progress { background: transparent; }

/* Navigation */
.floating-nav,.case-top-nav {
  top: 1.25rem;
  width: min(var(--content-width),calc(100% - var(--gutter) * 2));
  height: auto;
  min-height: 4rem;
  padding: .5rem .75rem;
  gap: 1rem;
  border: 1px solid rgba(31,31,27,.065);
  border-radius: 1rem;
  box-shadow: var(--shadow-nav);
  backdrop-filter: blur(18px);
}
.floating-nav,.lms-case-page .case-top-nav,.s2-top-nav { background: rgba(247,247,247,.95); }
.floating-nav { grid-template-columns: minmax(0,1fr) auto; }
.brand { gap: .75rem; }
.brand-name { font-size: .875rem; font-weight: 650; }
.floating-nav nav { justify-self: end; gap: .25rem; }
.floating-nav nav a,.case-top-nav nav a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding: .5rem .875rem;
  border-radius: .625rem;
  color: var(--muted);
  font-size: .875rem;
  font-weight: 600;
  line-height: 1.25;
}
.floating-nav nav a:hover,.case-top-nav nav a:hover { background: var(--brand-soft); color: var(--rust); transform: none; }
.floating-nav nav a.active { color: var(--rust); background: var(--brand-soft); }
.portfolio-home .home-nav { display: flex; justify-content: center; padding-inline: 1rem; border-radius: 999px; }
.portfolio-home .home-nav nav { width: 100%; justify-content: center; justify-self: auto; }
.site-header { width: fit-content; max-width: calc(100% - var(--gutter) * 2); display: flex; justify-content: center; padding-inline: 1rem; border-radius: 999px; }
.site-header nav { width: auto; justify-content: center; justify-self: auto; }
.case-top-nav { grid-template-columns: 1fr auto 1fr; }
.case-back { min-height: 2.75rem; font-size: .875rem; color: var(--rust); }
.case-nav-title { font-size: .875rem; letter-spacing: -.01em; }
.case-top-nav nav { gap: .125rem; }
.case-top-nav nav a { padding-inline: .625rem; }

/* Home */
.portfolio-home .about-hero {
  min-height: min(53rem,92svh);
  display: grid;
  align-items: center;
  padding-top: clamp(9rem,15vw,13rem);
  padding-bottom: clamp(4rem,8vw,7rem);
}
.portfolio-home .about-layout { display: block; min-height: 0; }
.portfolio-home .about-statement { padding-top: 0; }
.about-label,.portfolio-home .overline,.nm-label,.s2-kicker,.s2-section-label p {
  font-size: .75rem;
  line-height: 1.6;
  font-weight: 650;
  letter-spacing: .1em;
}
.about-label { margin-bottom: 1.5rem; }
.portfolio-home .about-statement h1 {
  max-width: 56rem;
  font-size: clamp(2.375rem,4.5vw,4.125rem);
  line-height: 1.12;
  letter-spacing: -.04em;
  font-weight: 600;
}
.portfolio-home .about-lead {
  max-width: 43rem;
  margin-top: 2rem;
  font-size: clamp(1.125rem,1.6vw,1.375rem);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: -.01em;
}
.hero-context { display: flex; flex-wrap: wrap; gap: .625rem; margin-top: 2rem; }
.hero-context span { padding: .5rem .75rem; border-radius: 999px; background: var(--brand-soft); color: var(--rust); font-size: .8125rem; font-weight: 600; line-height: 1.4; }
.portfolio-home .case-sticky {
  min-height: 0;
  padding: clamp(3rem,6vw,5.5rem) var(--page-inset);
  grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr);
  gap: var(--layout-gap);
}
.portfolio-home .cases { padding-bottom: clamp(3rem,6vw,6rem); }
.portfolio-home .case-heading,.portfolio-home .case-stage { width: 100%; max-width: none; min-width: 0; }
.portfolio-home .case-heading>div small { font-size: .75rem; line-height: 1.6; letter-spacing: .08em; }
.portfolio-home .case-heading h2 {
  max-width: 13ch;
  margin: 1.125rem 0;
  font-size: clamp(2.125rem,3.5vw,3rem);
  line-height: 1.12;
  letter-spacing: -.035em;
}
.portfolio-home .case-heading>p { max-width: 44ch; font-size: var(--body-size); line-height: 1.7; }
.portfolio-home .case-heading .case-actions { margin: 1.5rem 0 0; }
.portfolio-home .full-case-link {
  display: inline-flex;
  min-height: 2.75rem;
  gap: .875rem;
  padding: .625rem 0;
  border: 0;
  font-size: .9375rem;
  line-height: 1.4;
}
.full-case-link span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .35em; }
.case-visual-wrap,.portfolio-home .case-visual-wrap {
  padding: 0;
  border: 0;
  border-radius: var(--radius);
  background: transparent;
  box-shadow: var(--shadow-media);
}
.case-visual-wrap::after { content: none; }
.portfolio-home .visual-canvas { min-height: 23rem; aspect-ratio: 4 / 3; border-radius: .8125rem; }
.lms-preview { display: grid; align-items: center; background: #f1f1f1; }
.lms-preview img { display: block; width: 100%; height: auto; }
.map-toolbar { left: 1rem; right: 1rem; top: 1rem; height: 3rem; border-radius: .625rem; font-size: .875rem; }
.map-toolbar b,.map-legend { font-size: .75rem; }
.map-legend { left: 1.25rem; bottom: 1.25rem; color: #c5c5bf; }
.hex-field { inset: 24% auto auto 16%; }
.scheduling-canvas { padding: 1.5rem; background: #ebe8e3; }
.schedule-topbar { font-size: .875rem; gap: .5rem; border: 0; }
.schedule-topbar b { font-size: .75rem; white-space: nowrap; }
.schedule-list { margin-top: 1.125rem; }
.schedule-list i { height: 3.25rem; border-left: 3px solid #ad7046; border-radius: .625rem; box-shadow: none; }
.schedule-panel { top: 28%; width: 48%; max-width: 14.5rem; padding: 1.125rem; border-radius: .875rem; background: #fff; box-shadow: 0 4px 16px rgba(31,31,27,.055); }
.schedule-panel small { font-size: .75rem; line-height: 1.4; letter-spacing: .025em; }
.schedule-panel strong { margin: 1.125rem 0; font-size: 1.25rem; }
.schedule-confirm { display: block; padding: .5rem; border-radius: .5rem; background: var(--rust); color: #fff; text-align: center; font-size: .8125rem; }
.schedule-flow { left: 1.5rem; right: 1.5rem; bottom: 1.25rem; }
.schedule-flow span { padding: .625rem .25rem; font-size: .75rem; letter-spacing: 0; text-transform: none; border: 0; }
.portfolio-home .contact {
  min-height: 0;
  padding-top: var(--section-space);
  padding-bottom: 2rem;
  gap: 3.5rem;
  background: var(--rust);
}
.portfolio-home .contact,.contact .overline,.contact-links p,.contact-foot { color: #fff; }
.contact .overline { border: 0; text-decoration: none; }
.contact-title { align-items: center; }
.contact-heading { max-width: 52rem; }
.contact-heading p { max-width: 42rem; margin: 1.5rem 0 0; color: var(--muted-on-dark); font-size: 1.125rem; line-height: 1.7; }
.contact-links { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; }
.contact-links a { display: inline-flex; min-height: 2.75rem; align-items: center; color: #fff; text-decoration: underline; text-underline-offset: .35em; }
.contact-links p { margin: 0; color: var(--muted-on-dark); font-size: 1rem; line-height: 1.65; }
.contact-links p a { display: inline; min-height: 0; color: #fff; }
.portfolio-home .contact h2 { max-width: 48rem; font-size: clamp(2.25rem,4.5vw,4rem); line-height: 1.12; letter-spacing: -.035em; }
.contact-title>i { width: 3.5rem; height: 3.5rem; border-color: #a77aa0; font-size: 1.5rem; }
.contact-title:hover>i { transform: translate(3px,-3px); background: transparent; }
.contact-title:focus-visible { outline-color: #e2b9db; }
.contact-foot { align-items: center; gap: 1rem; margin-top: 2rem; font-size: .8125rem; }
.contact-foot a { display: inline-flex; min-height: 2.75rem; align-items: center; }
.portfolio-home .contact .overline,
.portfolio-home .contact .contact-links p,
.portfolio-home .contact .contact-links a,
.portfolio-home .contact .contact-foot,
.portfolio-home .contact .contact-foot span,
.portfolio-home .contact .contact-foot a { color: #fff; }
.portfolio-home .contact .contact-links p { font-weight: 500; }
.portfolio-home .contact .contact-foot { font-weight: 550; }

/* About */
.about-page-intro {
  --about-text: #ffffff;
  min-height: 0;
  grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr);
  align-items: start;
  gap: var(--layout-gap);
  padding-top: clamp(10rem,16vw,14rem);
  padding-bottom: var(--section-space);
  background: var(--rust);
  color: var(--about-text);
}
.about-page-heading { padding-top: 0; }
.about-page-heading .about-label { color: var(--about-text); }
.about-page-heading h1 { margin: 1.5rem 0 0; font-size: clamp(2.375rem,4.5vw,4rem); line-height: 1.12; letter-spacing: -.035em; }
.about-page-copy { align-self: start; padding-bottom: 0; }
.about-page-copy p { color: var(--about-text); font-size: var(--body-size); line-height: 1.8; }
.about-page-copy p+p { margin-top: 1.5rem; }
.about-page-copy .about-location { margin-top: 2.5rem; color: var(--about-text); font-size: .8125rem; line-height: 1.6; letter-spacing: .045em; text-transform: none; }
.about-page-intro ::selection { background: var(--about-text); color: var(--rust); }
.about-page .profile-details { padding-block: var(--section-space); }
.about-page .profile-stack { gap: clamp(3.5rem,7vw,6rem); }
.about-page .profile-section h2 { margin-bottom: 2rem; font-size: clamp(1.75rem,2.5vw,2.125rem); font-weight: 600; line-height: 1.2; letter-spacing: -.025em; }
.about-page .education-list { max-width: 65rem; grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
.about-page .education-list article {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  align-items: start;
  gap: .25rem;
}
.about-page .education-list h3 { grid-column: 1; margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.5; text-wrap: pretty; }
.about-page .education-list p { grid-column: 1; min-height: 0; margin: 0; font-size: 1rem; font-weight: 500; line-height: 1.5; }
.education-list time { margin-top: .25rem; font-size: .75rem; line-height: 1.6; letter-spacing: .035em; }
.about-page .education-list time { grid-column: 1; margin: .25rem 0 0; font-size: .875rem; font-weight: 500; letter-spacing: 0; text-transform: none; text-align: left; }
.about-page .language-list { font-size: 1rem; font-weight: 500; line-height: 1.7; letter-spacing: 0; }
.about-page .language-list span { display: block; }
.about-page .skills-list { max-width: 65rem; gap: .625rem; }
.about-page .skills-list li { padding: .6875rem 1rem; border: 0; background: var(--rust); color: var(--on-dark); font-size: 1rem; font-weight: 500; line-height: 1.4; }
.about-page .skills-list li:hover { transform: none; background: var(--rust); }
.capability-groups { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.capability-groups section { min-width: 0; }
.capability-groups h3 { margin: 0 0 1rem; color: var(--rust); font-size: 1rem; font-weight: 600; line-height: 1.5; letter-spacing: 0; }
.capability-groups .skills-list { align-content: start; }
.tool-groups { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; max-width: none; }
.tool-groups section { min-width: 0; }
.tool-groups h3 { margin: 0 0 1rem; color: var(--rust); font-size: 1rem; font-weight: 600; line-height: 1.5; letter-spacing: 0; }
.tool-groups .skills-list { align-content: start; }
.about-page-footer { padding-block: 1.5rem; font-size: .8125rem; }
.about-page-footer a { display: inline-flex; min-height: 2.75rem; align-items: center; font-size: .875rem; }

/* Case studies: shared title, reading width and section rhythm. */
.network-case-page { --case-soft: var(--surface); --case-dark: var(--ink); }
.lms-case-page { --lms-deep: var(--ink); }
.s2-case-page { --s2-ink: var(--ink); --s2-muted: var(--muted); --s2-accent: #955329; }
.nm-hero,.s2-hero { min-height: 0; padding-top: clamp(9rem,15vw,12rem); padding-bottom: var(--section-space); }
.nm-hero-copy,.s2-hero-copy { max-width: 65rem; padding: 0 0 3.5rem; }
.nm-hero-copy h1,.s2-hero-copy h1 { max-width: 23ch; margin: 1.5rem 0; font-size: var(--title-size); line-height: 1.1; letter-spacing: -.04em; font-weight: 600; }
.nm-hero-copy p,.s2-hero-copy>p { max-width: 43rem; font-size: clamp(1.125rem,1.6vw,1.375rem); line-height: 1.7; letter-spacing: -.01em; }
.nm-meta,.s2-meta { grid-template-columns: .9fr 1.4fr 1.2fr 1fr; gap: 2rem; border: 0; }
.nm-meta>div:nth-child(n),.s2-meta>div:nth-child(n) { min-height: 0; padding: 0; border: 0; }
.nm-meta span,.s2-meta span { margin-bottom: .75rem; font-size: .75rem; line-height: 1.6; letter-spacing: .08em; color: var(--muted); }
.nm-meta p,.s2-meta strong { font-size: .9375rem; line-height: 1.65; font-weight: 400; }
.nm-hero-map,.lms-hero-image { margin-top: 3.5rem; }
.lms-hero-image,.case-map-demo { border-radius: var(--radius); box-shadow: var(--shadow-media); }
.nm-section,.nm-thesis,.nm-principles,.nm-decisions-intro,.nm-validation,.nm-closing,
.lms-process,.lms-interview-band,.lms-final,
.s2-problem,.s2-model,.s2-solutions,.s2-rejected,.s2-validation,.s2-decisions,.s2-outcome,.s2-role {
  padding-block: var(--section-space);
}
.nm-section-grid { grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: var(--layout-gap); }
.nm-section-heading { top: 7.5rem; }
.nm-section-heading h2 { max-width: 20ch; margin-top: 1rem; font-size: var(--heading-size); line-height: 1.17; letter-spacing: -.028em; font-weight: 600; }
.nm-copy { max-width: 44rem; min-width: 0; }
.nm-copy>p { margin-bottom: 1.5rem; font-size: var(--body-size); line-height: 1.8; color: #555650; }
.nm-copy .nm-lead { max-width: none; font-size: clamp(1.375rem,2vw,1.75rem); line-height: 1.5; letter-spacing: -.018em; font-weight: 500; color: var(--ink); }
.nm-copy h3 { margin: 2.5rem 0 1rem; color: var(--ink); font-size: .875rem; line-height: 1.5; letter-spacing: .05em; }
.nm-thesis p { max-width: 54rem; margin-top: 1.5rem; font-size: clamp(1.625rem,2.8vw,2.5rem); line-height: 1.45; letter-spacing: -.02em; font-weight: 500; }
.case-impact-snapshot { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 3rem; }
.case-impact-snapshot article { min-width: 0; padding: 1.5rem; border-radius: .875rem; background: rgba(255,255,255,.06); }
.s2-problem .case-impact-snapshot article { background: var(--surface); }
.case-impact-snapshot strong,.case-impact-snapshot span { display: block; }
.case-impact-snapshot strong { font-size: 1rem; line-height: 1.5; }
.case-impact-snapshot span { margin-top: .75rem; color: var(--muted-on-dark); font-size: .875rem; line-height: 1.65; }
.s2-problem .case-impact-snapshot span { color: var(--muted); }
.nm-principles h2,.nm-decisions-intro h2,.nm-validation-heading h2,.lms-process h2,.lms-band-heading h2,.lms-final h2 {
  max-width: 23ch;
  margin: 1.25rem 0 1.5rem;
  font-size: clamp(2.125rem,4vw,3.5rem);
  line-height: 1.15;
  letter-spacing: -.03em;
  font-weight: 600;
}
.nm-validation-heading>p,.lms-band-heading>p,.lms-opportunities>div:first-child p { max-width: 43rem; font-size: var(--body-size); line-height: 1.8; }
.nm-principles,.lms-interview-band,.lms-opportunities,.lms-final { background: var(--surface); }
.nm-decision { background: var(--paper); }
.nm-decision .nm-section-heading .nm-label { padding: 0; border: 0; background: none; }
.nm-list { margin-top: 2.5rem; gap: 1.75rem; }
.nm-list li { grid-template-columns: 2.25rem minmax(0,1fr); gap: 1rem; font-size: 1rem; line-height: 1.75; }
.nm-list-icon { margin: .125rem 0 0; border: 0; border-radius: .625rem; color: var(--rust); background: var(--brand-soft); }
.nm-list li:hover .nm-list-icon { transform: none; background: var(--brand-soft); color: var(--rust); }
.nm-evidence-callout,.nm-tradeoff { margin-top: 2.5rem; padding: 1.75rem; border: 0; border-radius: .875rem; background: var(--surface); }
.nm-soft .nm-evidence-callout { background: var(--paper); }
.nm-evidence-callout span,.nm-tradeoff span { font-size: .75rem; line-height: 1.6; letter-spacing: .08em; }
.nm-evidence-callout strong { margin: .875rem 0; font-size: 1.5rem; line-height: 1.4; }
.nm-evidence-callout p,.nm-tradeoff p { font-size: 1rem; line-height: 1.75; }
.nm-tradeoff span { margin-bottom: .75rem; }
.nm-principle-grid,.nm-system-grid { margin-block: 3rem 0; gap: 2rem; border: 0; }
.nm-principle-grid article:nth-child(n),.nm-system-grid article:nth-child(n) { padding: 0; border: 0; min-width: 0; }
.nm-principle-grid span { font-size: 1rem; line-height: 1.6; }
.nm-principle-grid p,.nm-system-grid p { margin-top: 1rem; font-size: 1rem; line-height: 1.75; }
.nm-system-grid { margin-block: 1.5rem 2rem; gap: 1.5rem; }
.nm-system-grid strong { font-size: 1.125rem; }
.nm-evidence-grid,.lms-task-grid { gap: 1rem; margin-top: 3rem; border: 0; }
.nm-evidence-grid article,.lms-task-grid article { min-height: 0; padding: 1.75rem; border: 0; border-radius: .875rem; background: rgba(255,255,255,.045); }
.nm-evidence-grid span,.lms-task-grid span { font-size: .75rem; line-height: 1.6; }
.nm-evidence-grid p,.lms-task-grid p { margin: 1.25rem 0 0; font-size: 1rem; line-height: 1.75; }
.nm-measures { margin-top: 4rem; }
.nm-measures>div { gap: 2rem; margin-top: 2rem; border: 0; }
.nm-measures article { padding: 0; border: 0; }
.nm-measures strong { font-size: 1rem; line-height: 1.6; }
.nm-measures p { margin: .75rem 0 0; color: var(--muted-on-dark); font-size: 1rem; }
.nm-future-list { gap: 2.5rem; }
.nm-future-list article { grid-template-columns: 1fr; gap: .75rem; padding: 0; }
.nm-future-list span { font-size: .875rem; line-height: 1.6; letter-spacing: .035em; }
.nm-future-list p { color: #555650; }
.nm-closing { min-height: 0; }
.nm-closing>p { max-width: 48rem; margin-top: 1.5rem; font-size: var(--body-size); line-height: 1.8; }
.nm-closing blockquote { max-width: 52rem; margin-top: 3rem; font-size: clamp(1.75rem,3.5vw,3rem); line-height: 1.3; letter-spacing: -.025em; }
.nm-closing-links { align-items: center; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 4rem; font-size: .875rem; line-height: 1.5; }
.nm-closing-links a { display: inline-flex; align-items: center; min-height: 2.75rem; }

/* Interactive map and case imagery */
.case-map-topbar { min-height: 4.25rem; height: auto; padding: .875rem 1.25rem; gap: 1rem; }
.case-map-search { min-width: 0; width: min(28rem,65%); font-size: .875rem; }
.case-map-status { font-size: .8125rem; }
.case-map-controls { padding: .75rem 1.25rem; flex-wrap: wrap; }
.case-map-controls button { min-height: 2.75rem; font-size: .8125rem; text-transform: none; letter-spacing: 0; }
.case-map-controls button[aria-pressed="true"] i { box-shadow: none; background: #d5a2cd; }
.case-map-surface { min-height: clamp(24rem,42vw,34rem); }
.case-map-hexes { left: 26%; }
.case-map-hexes button.selected { background: #98648c; border: 0; box-shadow: none; }
.case-map-hexes button:focus-visible { background: #e9c5e3; transform: scale(1.12); }
.case-postcode-boundary span,.case-map-hint { font-size: .75rem; line-height: 1.6; letter-spacing: .02em; }
.case-map-hint { color: #c5c5bf; }
.case-map-demo.compact { margin: 2rem 0 2.5rem; border-radius: var(--radius); box-shadow: none; }
.case-map-demo.compact .case-map-surface { min-height: 26rem; }
.case-map-demo.compact .case-map-hexes { left: 12%; }
.lms-stats,.lms-evidence-list { gap: 1rem; margin: 2.5rem 0; border: 0; }
.lms-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
.lms-stats article,.lms-evidence-list article { min-height: 0; padding: 1.5rem; border: 0; border-radius: .875rem; background: var(--surface); }
.nm-soft :is(.lms-stats,.lms-evidence-list) article { background: var(--paper); }
.lms-stats strong,.lms-evidence-list strong { font-size: clamp(1.875rem,3vw,2.375rem); line-height: 1.2; letter-spacing: -.03em; }
.lms-stats span { margin-top: .75rem; font-size: .75rem; line-height: 1.6; letter-spacing: .04em; }
.lms-evidence-list p { margin-top: .875rem; font-size: 1rem; line-height: 1.65; }
.lms-figure { margin: 1.5rem 0 0; min-width: 0; }
.lms-figure button { border: 1px solid rgba(31,31,27,.07); border-radius: .875rem; background: #f0f0ee; box-shadow: var(--shadow-media); }
.lms-figure button:hover img { transform: none; }
.lms-figure button>span { padding: .5rem .75rem; border-radius: .5rem; font-size: .75rem; line-height: 1.4; letter-spacing: .025em; }
.lms-figure button:focus-visible { outline: 3px solid var(--rust); outline-offset: 5px; }
.lms-figure figcaption { margin: .875rem 0 0; font-size: .8125rem; line-height: 1.65; }
.lms-process .lms-figure,.lms-image-grid,.lms-opportunities .lms-figure,.lms-final>.lms-figure,.lms-testing .lms-image-grid { margin-top: 3rem; }
.lms-image-grid { align-items: start; gap: 1.25rem; }
.lms-image-grid .lms-figure button { height: auto; }
.lms-image-grid .lms-figure img { height: auto; object-fit: contain; }
.lms-testing-intro { grid-template-columns: .6fr 1fr; gap: 2rem; margin-top: 0; }
.lms-testing-intro>div { min-width: 0; padding: 1.25rem; border-radius: .875rem; background: rgba(255,255,255,.07); }
.lms-testing-intro>div strong { font-size: 4rem; }
.lms-testing-intro>div span { font-size: .875rem; color: var(--muted-on-dark); }
.lms-testing-intro>p { font-size: var(--body-size); line-height: 1.75; }

/* LMS editorial layout: generous images opposite a single, unified text column. */
.lms-narrative .nm-section-heading { position: static; }
.lms-editorial-layout { display: grid; grid-template-areas: "visual copy"; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); align-items: center; gap: clamp(2rem,4.5vw,4rem); }
.lms-editorial-copy { grid-area: copy; min-width: 0; }
.lms-editorial-copy .nm-section-heading { margin-bottom: 1.75rem; }
.lms-editorial-copy .nm-section-heading h2 { max-width: 25ch; font-size: clamp(1.875rem,2.7vw,2.5rem); }
.lms-editorial-copy .nm-copy { max-width: none; }
.lms-editorial-copy .nm-copy h3 { margin-top: 2rem; text-transform: none; letter-spacing: 0; font-size: 1.125rem; }
.lms-narrative .nm-copy>:first-child { margin-top: 0; }
.lms-narrative .nm-copy>:last-child { margin-bottom: 0; }
.lms-narrative .nm-copy>ul { margin: 0 0 1.5rem; padding-left: 1.4em; list-style: disc; color: #555650; font-size: var(--body-size); line-height: 1.8; }
.lms-narrative .nm-copy>ul li+li { margin-top: .5rem; }
.lms-case-page #impact .nm-copy h3 { color: var(--rust); }
.lms-case-page #impact .nm-copy strong { color: var(--ink); font-size: 1.25em; }
.lms-supporting-visual { grid-area: visual; width: 100%; min-width: 0; }
.lms-supporting-visual>.lms-figure { margin: 0; }
.lms-supporting-visual .lms-figure button { border: 0; border-radius: .5rem; background: transparent; box-shadow: none; }
.lms-supporting-visual .lms-figure img { display: block; width: 100%; height: auto; object-fit: contain; }
.lms-editorial-photo .lms-stats,.lms-editorial-photo .lms-evidence-list { gap: 1rem; margin-block: 2rem; }
.lms-editorial-photo .lms-stats span { margin-top: .375rem; font-size: .875rem; text-transform: none; letter-spacing: 0; font-weight: 500; }
.lms-editorial-photo .lms-evidence-list p { margin-top: .5rem; }
.lms-section-evidence { width: 100%; display: grid; gap: 1.5rem; margin: 2.5rem 0 0; }
.lms-section-evidence>.lms-figure { width: 100%; margin: 0; }
.lms-section-evidence .lms-figure button,.lms-narrative .nm-copy>.lms-figure button { padding: clamp(1rem,2vw,1.5rem); background: #fff; box-shadow: none; }
.lms-artifact-heading { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: var(--layout-gap); margin-top: 1.5rem; }
.lms-artifact-heading h3 { margin: 0; font-size: 1rem; line-height: 1.5; }
.lms-artifact-heading p { max-width: 44rem; margin: 0; font-size: var(--body-size); line-height: 1.8; color: #555650; }
.lms-summary-grid { align-items: stretch; }
.lms-summary-grid .lms-figure button { aspect-ratio: 363 / 229; padding: 1rem; background: #fff; box-shadow: none; }
.lms-testing .lms-summary-grid .lms-figure button { aspect-ratio: 412 / 374; background: #fff; }
.lms-summary-grid .lms-figure img { height: 100%; object-fit: contain; object-position: top center; }
.lms-opportunities .nm-principle-grid article:nth-child(n) { padding: 0; border: 0; }
.lms-testing-summary .nm-validation-heading h2 { max-width: 25ch; font-size: clamp(1.875rem,2.7vw,2.5rem); }
.lms-testing-summary .nm-validation-heading>p { margin-top: 1.5rem; }
.lms-testing-summary .lms-testing-intro { margin-top: 2rem; }
.lms-testing-summary>.lms-task-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 1.5rem; }
.lms-testing-summary { max-width: 58rem; }
.lms-outcome-note { margin-top: 2.5rem; padding: 1.5rem; border-radius: .875rem; background: var(--paper); }
.lms-outcome-note strong { display: block; margin-bottom: .75rem; color: var(--lms-blue); font-size: 1rem; }
.lms-outcome-note p { margin: 0; color: #555650; font-size: 1rem; line-height: 1.75; }
.lms-testing-summary .lms-task-grid article { padding: 1.25rem; }
.lms-testing-summary .lms-task-grid p { margin-top: .75rem; }
.lms-process-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; margin: 3rem 0 0; padding: 0; list-style: none; }
.lms-process-steps li { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; min-width: 0; }
.lms-process-steps svg { display: block; width: clamp(3rem,5vw,4rem); height: auto; color: #e2b9db; }
.lms-process-steps span { color: var(--on-dark); font-size: clamp(1rem,1.5vw,1.25rem); font-weight: 600; line-height: 1.5; }
.lms-final>.lms-figure { width: 100%; }
.lms-lightbox { padding: 5rem 1.5rem 1.5rem; background: rgba(22,23,22,.96); backdrop-filter: blur(8px); }
.lms-lightbox>button { top: 1rem; right: 1.5rem; min-height: 2.75rem; font-size: .875rem; }
.lms-lightbox>button:focus-visible { outline-color: #e2b9db; }
.lms-lightbox>img { max-width: 100%; max-height: calc(100svh - 6.5rem); border-radius: .75rem; box-shadow: none; }

/* Scheduling retains its decision-led layout with the same editorial scale. */
.s2-section-label { grid-template-columns: 2.5rem 1fr; gap: 1rem; align-items: baseline; }
.s2-section-label span,.s2-row-number,.s2-decision-list span,.s2-findings span { font-family: inherit; font-size: .875rem; font-weight: 650; line-height: 1.6; font-variant-numeric: tabular-nums; }
.s2-body { font-size: var(--body-size); line-height: 1.8; }
.s2-body blockquote { margin-top: 2rem; padding: 0; font-size: clamp(1.375rem,2vw,1.75rem); line-height: 1.5; letter-spacing: -.015em; }
.s2-body strong { font-size: 1rem; line-height: 1.75; margin-top: 1.5rem; }
.s2-problem-grid,.s2-rejected-grid,.s2-outcome-grid,.s2-role-grid { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: var(--layout-gap); margin-top: 2.5rem; }
.s2-problem-grid h2,.s2-model-intro h2,.s2-solution-heading h2,.s2-rejected h2,.s2-validation-head h2,.s2-outcome-grid h2,.s2-role-grid h2 {
  max-width: 25ch;
  margin: 0;
  font-size: clamp(2rem,3.5vw,3rem);
  line-height: 1.18;
  font-weight: 600;
  letter-spacing: -.03em;
}
.s2-model-intro h2,.s2-rejected h2 { margin-block: 1.25rem 1.5rem; }
.s2-model-intro p { font-size: var(--body-size); line-height: 1.75; }
.s2-model,.s2-validation { background: var(--surface); }
.s2-outcome { background: #ece5eb; }
.s2-intent-grid,.s2-findings { gap: 2rem; margin-top: 3rem; }
.s2-intent-grid article { min-height: 0; }
.s2-intent-head>span { font-size: .75rem; }
.s2-intent-head i { border: 0; border-radius: .75rem; background: var(--brand-soft); }
.s2-intent-grid h3 { margin: 1.75rem 0 .625rem; font-size: clamp(1.75rem,2.7vw,2.375rem); line-height: 1.2; }
.s2-intent-grid strong { font-size: .75rem; line-height: 1.6; letter-spacing: .04em; }
.s2-intent-grid p { margin: 1.25rem 0; font-size: 1rem; line-height: 1.75; }
.s2-intent-grid small { margin-top: auto; font-size: .875rem; line-height: 1.6; }
.s2-principle { grid-template-columns: .65fr 1fr 1.25fr; gap: 2rem; margin-top: 4rem; }
.s2-principle>span { font-size: .75rem; line-height: 1.6; }
.s2-principle blockquote { font-size: clamp(1.375rem,2.1vw,1.875rem); line-height: 1.4; letter-spacing: -.02em; }
.s2-principle p { font-size: 1rem; line-height: 1.75; }
.s2-solution-heading { margin: 2.5rem 0 3.5rem; }
.s2-solution-row,.s2-decision-list article { grid-template-columns: 2.5rem minmax(0,.8fr) minmax(0,1.2fr); gap: 2rem; }
.s2-solution-row+.s2-solution-row { margin-top: 4rem; }
.s2-solution-row h3 { margin-top: .75rem; font-size: clamp(1.875rem,3vw,2.5rem); line-height: 1.2; }
.s2-decision-mark { font-size: .75rem; line-height: 1.4; letter-spacing: .06em; }
.s2-validation-head { grid-template-columns: 1fr 1fr; gap: var(--layout-gap); margin: 2.5rem 0; }
.s2-validation-head p { align-self: start; font-size: var(--body-size); }
.s2-findings { gap: 3rem 2.5rem; }
.s2-findings h3 { margin: 1rem 0 .75rem; font-size: 1.25rem; line-height: 1.4; }
.s2-findings p { font-size: 1rem; line-height: 1.75; }
.s2-decision-list { margin-top: 3rem; gap: 2.5rem; }
.s2-decision-list h3 { font-size: 1.5rem; line-height: 1.35; letter-spacing: -.02em; }
.s2-decision-list p { font-size: 1rem; line-height: 1.75; }
.s2-role-grid ul { gap: 1.125rem; }
.s2-role-grid li { padding: 0; font-size: 1rem; line-height: 1.75; }
.s2-closing { max-width: 54rem; margin: 4rem 0 0; font-size: clamp(1.75rem,3vw,2.75rem); line-height: 1.4; letter-spacing: -.025em; }
.s2-legacy { gap: .5rem 1rem; margin-top: 3rem; font-size: .75rem; letter-spacing: .025em; }
.s2-model-visual { max-width: 68rem; margin: 4rem auto 0; }
.s2-model-window { overflow: hidden; border: 1px solid rgba(31,31,27,.08); border-radius: var(--radius); background: #f6f4f1; box-shadow: var(--shadow-media); }
.s2-model-toolbar { display: flex; align-items: center; justify-content: space-between; min-height: 4rem; padding: .875rem 1.25rem; border-bottom: 1px solid rgba(31,31,27,.08); font-size: .8125rem; }
.s2-model-toolbar b { padding: .625rem .875rem; border-radius: .5rem; background: var(--rust); color: #fff; font-weight: 600; }
.s2-model-workspace { display: grid; grid-template-columns: 1fr minmax(17rem,.72fr); gap: 1.5rem; min-height: 24rem; padding: 1.5rem; }
.s2-model-orders>span { display: block; margin-bottom: 1rem; color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.s2-model-orders i { display: block; height: 4.5rem; margin-top: .75rem; border-radius: .625rem; background: #e8e4df; }
.s2-model-orders i.active { border-left: .35rem solid var(--rust); background: #fff; }
.s2-model-panel { align-self: center; padding: 1.5rem; border-radius: .875rem; background: #fff; box-shadow: 0 8px 24px rgba(31,31,27,.08); }
.s2-model-panel small,.s2-model-panel strong,.s2-model-panel label { display: block; }
.s2-model-panel small { color: var(--rust); font-size: .75rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.s2-model-panel strong { margin: .625rem 0 1.5rem; font-size: 1.25rem; }
.s2-model-panel label { margin-top: .75rem; color: var(--muted); font-size: .75rem; }
.s2-model-panel label span { display: block; margin-top: .375rem; padding: .625rem; border-radius: .5rem; background: var(--surface); color: var(--ink); font-size: .875rem; }
.s2-model-confirm { display: grid; width: 100%; min-height: 2.75rem; margin-top: 1.25rem; place-items: center; border-radius: .5rem; background: var(--rust); color: #fff; font-size: .8125rem; font-weight: 600; }
.s2-model-actions { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(31,31,27,.08); }
.s2-model-actions span { padding: 1rem; text-align: center; font-size: .8125rem; font-weight: 600; }
.s2-model-actions span.active { background: var(--brand-soft); color: var(--rust); }
.s2-model-visual figcaption { margin-top: 1rem; color: var(--muted); font-size: .8125rem; line-height: 1.6; }

/* A single dark-surface treatment across all pages. */
.s2-hero,.s2-rejected,.s2-role { --s2-accent: #e1ae8b; --s2-purple: #e1b4da; background: var(--ink); color: var(--on-dark); }
.s2-hero-copy>p,.s2-meta span,.s2-legacy,.s2-rejected .s2-body,.s2-role-grid li { color: var(--muted-on-dark); }
.nm-thesis .nm-label,.nm-decisions-intro .nm-label,.nm-validation .nm-label,.lms-process .nm-label,.nm-evidence-grid span,.lms-task-grid span { color: #ddb1d5; }
.nm-validation-heading>p { color: var(--muted-on-dark); }
.lms-thesis p strong,.lms-testing-intro>div strong { color: #e2b9db; }
.lms-thesis p strong { display: inline-block; padding: .25em .5em; border-radius: .5rem; background: rgba(255,255,255,.07); }
.s2-rejected .s2-section-label p,.s2-role .s2-section-label p { color: var(--muted-on-dark); }
.s2-role .nm-closing-links a { color: #e2b9db; }
.about-signature { box-shadow: var(--shadow-media); }
.course-sidebar i.active { box-shadow: none; }
.availability i { box-shadow: none; }

@media (max-width: 1100px) {
  .case-top-nav { grid-template-columns: 1fr auto; }
  .case-nav-title { display: none; }
  .portfolio-home .case-sticky { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); }
  .nm-measures>div,.lms-opportunities .nm-principle-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 980px) {
  .portfolio-home .case-sticky,.about-page-intro,.nm-section-grid,
  .s2-problem-grid,.s2-rejected-grid,.s2-outcome-grid,.s2-role-grid,.s2-validation-head { grid-template-columns: 1fr; }
  .portfolio-home .case-sticky { gap: 2rem; }
  .portfolio-home .case-heading h2 { max-width: none; }
  .portfolio-home .case-heading>p { max-width: 42rem; }
  .portfolio-home .visual-canvas { aspect-ratio: 16 / 10; min-height: 24rem; }
  .portfolio-home .case-stage { max-width: none; justify-self: stretch; }
  .about-page-intro { gap: 2.5rem; }
  .about-page-heading h1 { max-width: 20ch; }
  .about-page-copy { max-width: 43rem; }
  .nm-meta,.s2-meta { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
  .nm-section-heading { position: static; }
  .nm-section-heading h2 { max-width: 28ch; }
  .nm-copy { max-width: none; }
  .nm-copy>p { max-width: 68ch; }
  .nm-principle-grid,.nm-system-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .lms-opportunities .nm-principle-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lms-image-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .lms-testing-intro { grid-template-columns: .5fr 1fr; }
  .lms-editorial-layout { grid-template-columns: 1fr; grid-template-areas: "copy" "visual"; gap: 2rem; }
  .lms-editorial-copy { width: 100%; max-width: 48rem; margin-inline: auto; }
  .lms-editorial-photo>.lms-supporting-visual { max-width: 32rem; margin-inline: auto; }
  .lms-artifact-heading { grid-template-columns: 1fr; gap: 1rem; }
  .s2-intent-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .s2-principle { grid-template-columns: 1fr 1fr; }
  .s2-principle>span { grid-column: 1 / -1; }
  .s2-solution-row,.s2-decision-list article { grid-template-columns: 2.5rem 1fr; gap: 1rem 1.5rem; }
  .s2-solution-row>.s2-body,.s2-decision-list p { grid-column: 2; }
  .s2-findings { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .capability-groups,.tool-groups { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  :root { --gutter: 1.25rem; --section-space: 4rem; --layout-gap: 2rem; --title-size: clamp(2.125rem,8.6vw,3rem); --heading-size: clamp(1.875rem,7vw,2.375rem); }
  .floating-nav,.case-top-nav { top: .75rem; width: calc(100% - 1.25rem); padding: .375rem .5rem; min-height: 3.75rem; border-radius: .875rem; gap: .375rem; }
  .brand-name { display: none; }
  .floating-nav nav { gap: 0; }
  .floating-nav nav a { padding-inline: .5rem; font-size: .875rem; }
  .portfolio-home .home-nav { border-radius: 999px; }
  .site-header { width: fit-content; max-width: calc(100% - 1.25rem); }
  .case-top-nav { grid-template-columns: 1fr; gap: 0; padding-inline: .75rem; }
  .case-back { min-height: 2.25rem; font-size: .8125rem; }
  .case-top-nav nav { display: flex; justify-self: start; width: 100%; gap: .5rem; }
  .case-top-nav nav a { min-height: 2.5rem; padding: .5rem .625rem; font-size: .8125rem; }
  section[id],article[id] { scroll-margin-top: 8rem; }
  .portfolio-home .about-hero { min-height: 0; padding-top: 8.5rem; padding-bottom: 3.5rem; }
  .portfolio-home .about-statement h1 { font-size: clamp(2rem,7.5vw,2.75rem); line-height: 1.15; letter-spacing: -.03em; }
  .portfolio-home .about-lead { margin-top: 1.5rem; font-size: 1.125rem; }
  .portfolio-home .case-sticky { padding-block: 2.5rem; }
  .portfolio-home .case-heading h2 { font-size: clamp(1.875rem,7vw,2.5rem); }
  .portfolio-home .case-heading>p { font-size: 1rem; }
  .portfolio-home .case-heading>div { display: block; }
  .portfolio-home .case-heading .case-actions { margin-top: 1rem; }
  .portfolio-home .case-visual-wrap { padding: 0; border-radius: 1rem; }
  .portfolio-home .visual-canvas { min-height: 21rem; aspect-ratio: 1; border-radius: .625rem; }
  .portfolio-home .lms-preview { min-height: 0; aspect-ratio: 4 / 3; }
  .hex-field { inset: 26% auto auto 10%; transform: rotate(-7deg) scale(.78); }
  .map-toolbar { padding-inline: .75rem; }
  .scheduling-canvas { padding: 1rem; }
  .schedule-panel { width: 55%; right: 5%; padding: 1rem; }
  .schedule-panel strong { font-size: 1.125rem; }
  .schedule-flow { left: 1rem; right: 1rem; bottom: 1rem; }
  .contact-title { align-items: start; flex-direction: column; gap: 1.75rem; }
  .portfolio-home .contact h2 { font-size: clamp(2rem,8vw,2.75rem); }
  .portfolio-home .contact { gap: 2.5rem; }
  .contact-foot { flex-direction: column; align-items: start; margin-top: 0; gap: .5rem; }
  .about-page-intro { padding-top: 8.5rem; }
  .about-page-heading h1 { font-size: clamp(2.125rem,8vw,2.875rem); }
  .about-page-copy p { font-size: 1rem; }
  .about-page .profile-section h2 { margin-bottom: 1.5rem; font-size: 1.75rem; }
  .about-page .profile-stack { gap: 3.5rem; }
  .about-page-footer { gap: .5rem; }
  .nm-hero,.s2-hero { padding-top: 10rem; }
  .nm-hero-copy,.s2-hero-copy { padding-bottom: 2.5rem; }
  .nm-hero-copy h1,.s2-hero-copy h1 { margin-block: 1.125rem; }
  .nm-hero-copy p,.s2-hero-copy>p { font-size: 1.125rem; }
  .nm-meta,.s2-meta { grid-template-columns: 1fr; gap: 1.5rem; }
  .nm-meta span,.s2-meta span { margin-bottom: .375rem; }
  .nm-hero-map,.lms-hero-image { margin-top: 2.5rem; }
  .nm-thesis p { font-size: 1.5rem; line-height: 1.5; }
  .nm-principle-grid,.nm-system-grid,.lms-opportunities .nm-principle-grid,.nm-measures>div { grid-template-columns: 1fr; gap: 2rem; }
  .nm-copy>p,.nm-copy .nm-lead { max-width: none; }
  .nm-copy .nm-lead { font-size: 1.375rem; }
  .nm-principles h2,.nm-decisions-intro h2,.nm-validation-heading h2,.lms-process h2,.lms-band-heading h2,.lms-final h2 { font-size: clamp(1.875rem,7.5vw,2.5rem); }
  .nm-evidence-grid,.lms-task-grid { grid-template-columns: 1fr; }
  .nm-evidence-grid article,.lms-task-grid article,.nm-evidence-callout,.nm-tradeoff { padding: 1.25rem; }
  .case-impact-snapshot { grid-template-columns: 1fr; }
  .case-map-topbar { padding: 1rem; gap: .625rem; }
  .case-map-search { width: 100%; }
  .case-map-status { margin: 0; }
  .case-map-controls { padding: .625rem 1rem; gap: .5rem; }
  .case-map-controls button { padding-inline: .625rem; }
  .case-map-surface,.case-map-demo.compact .case-map-surface { min-height: 24rem; }
  .case-map-hexes,.case-map-demo.compact .case-map-hexes { left: 4%; top: 26%; }
  .case-map-hint { left: 1rem; right: 1rem; bottom: 1rem; }
  .lms-stats,.lms-evidence-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
  .lms-stats article,.lms-evidence-list article { padding: 1rem; }
  .lms-stats strong,.lms-evidence-list strong { font-size: 1.75rem; }
  .lms-image-grid.three { grid-template-columns: 1fr; gap: 1.5rem; }
  .lms-process-steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 1.5rem; margin-top: 2rem; }
  .lms-figure button>span { display: block; opacity: 1; transform: none; }
  .lms-testing-intro { grid-template-columns: 1fr; }
  .lms-testing-summary>.lms-task-grid { grid-template-columns: 1fr; }
  .lms-lightbox { padding: 4.75rem .75rem .75rem; }
  .lms-lightbox>img { max-height: calc(100svh - 5.5rem); }
  .s2-intent-grid,.s2-findings,.s2-principle { grid-template-columns: 1fr; gap: 2.5rem; }
  .s2-model-workspace { grid-template-columns: 1fr; min-height: 0; }
  .s2-intent-grid small { margin-top: .25rem; }
  .s2-intent-grid h3 { margin-top: 1rem; }
  .s2-solution-row,.s2-decision-list article { grid-template-columns: 1.5rem 1fr; gap: .75rem 1rem; }
  .s2-solution-row>.s2-body,.s2-decision-list p { grid-column: 1 / -1; }
  .s2-body blockquote { font-size: 1.375rem; }
  .s2-problem-grid h2,.s2-model-intro h2,.s2-solution-heading h2,.s2-rejected h2,.s2-validation-head h2,.s2-outcome-grid h2,.s2-role-grid h2 { font-size: clamp(1.875rem,7.5vw,2.5rem); }
  .nm-closing-links { align-items: start; margin-top: 3rem; gap: .75rem; }
}

/* Scheduling 2.0: intent-led narrative sourced from the validated project record. */
.s2-case-page .s2-intent-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.s2-case-page .s2-model-actions { grid-template-columns: repeat(3,1fr); }
.s2-research-snapshot { margin: 0 0 3rem; }
.s2-research-snapshot article { background: var(--paper); }
.s2-research-snapshot strong { color: var(--s2-accent); font-size: clamp(1.375rem,2.2vw,1.875rem); }
.s2-research-snapshot span { color: var(--muted); }

/* Password checkpoint for confidential Mercado Livre case studies. */
@media (max-width: 980px) {
  .s2-case-page .s2-intent-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .s2-case-page .s2-intent-grid { grid-template-columns: 1fr; }
  .s2-case-page .s2-model-actions { grid-template-columns: repeat(3,1fr); }
  .s2-research-snapshot { margin-bottom: 2.5rem; }
}
@media (max-width: 360px) {
  :root { --gutter: 1rem; }
  .floating-nav nav a { padding-inline: .4375rem; }
  .lms-stats,.lms-evidence-list { grid-template-columns: 1fr; }
}
@media (hover: none), (pointer: coarse) { .portfolio-home .case-visual-wrap { transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .reveal,.s2-reveal,.network-case-page .reveal { opacity: 1; transform: none; }
  .portfolio-home .case-visual-wrap { transform: none; }
}

/* Work progressive disclosure: content stays readable before hydration. */
@media (prefers-reduced-motion: no-preference) {
  html.motion-ready .portfolio-home .work-reveal {
    opacity: 0;
    transform: translateY(2rem);
    transition: opacity .72s cubic-bezier(.2,.75,.2,1),transform .72s cubic-bezier(.2,.75,.2,1);
    will-change: opacity,transform;
  }
  html.motion-ready .portfolio-home .case-stage.work-reveal { transition-delay: .11s; }
  html.motion-ready .portfolio-home .work-reveal.is-visible {
    opacity: 1;
    transform: none;
  }
  html.motion-ready .about-page .about-reveal {
    opacity: 0;
    transform: translateY(2rem);
    transition: opacity .72s cubic-bezier(.2,.75,.2,1),transform .72s cubic-bezier(.2,.75,.2,1);
    will-change: opacity,transform;
  }
  html.motion-ready .about-page .about-page-copy.about-reveal { transition-delay: .11s; }
  html.motion-ready .about-page .about-reveal.is-visible {
    opacity: 1;
    transform: none;
  }
}

/* Case-study editorial system: one hierarchy and predictable media grouping. */
:is(.network-case-page,.lms-case-page,.s2-case-page) {
  --case-title: clamp(3rem,5.2vw,4.5rem);
  --case-heading: clamp(2rem,3.1vw,2.875rem);
  --case-subheading: 1.1875rem;
  --case-copy: clamp(1rem,1.15vw,1.125rem);
}
:is(.network-case-page,.lms-case-page,.s2-case-page) :is(.nm-hero-copy,.s2-hero-copy) h1 {
  font-size: var(--case-title);
}
:is(.network-case-page,.lms-case-page,.s2-case-page) :is(
  .nm-section-heading h2,
  .nm-principles h2,
  .nm-decisions-intro h2,
  .nm-validation-heading h2,
  .lms-process h2,
  .lms-band-heading h2,
  .lms-final h2,
  .lms-editorial-copy .nm-section-heading h2,
  .lms-testing-summary .nm-validation-heading h2,
  .s2-problem-grid h2,
  .s2-model-intro h2,
  .s2-solution-heading h2,
  .s2-rejected h2,
  .s2-validation-head h2,
  .s2-outcome-grid h2,
  .s2-role-grid h2
) {
  max-width: 25ch;
  font-size: var(--case-heading);
  line-height: 1.16;
  letter-spacing: -.03em;
}
:is(.network-case-page,.lms-case-page,.s2-case-page) :is(
  .nm-copy h3,
  .lms-artifact-heading h3,
  .s2-intent-grid h3,
  .s2-solution-row h3,
  .s2-findings h3,
  .s2-decision-list h3
) {
  font-size: var(--case-subheading);
  line-height: 1.4;
  letter-spacing: -.01em;
  text-transform: none;
}
:is(.network-case-page,.lms-case-page,.s2-case-page) :is(.nm-copy>p,.s2-body,.lms-artifact-heading p) {
  font-size: var(--case-copy);
}
.network-case-page .nm-section-heading { position: static; top: auto; }
.lms-section-evidence {
  padding-top: 2rem;
  border-top: 1px solid var(--line);
}
.lms-section-evidence .lms-figure,
.lms-narrative .nm-copy>.lms-figure {
  max-width: 100%;
}
.lms-section-evidence .lms-figure img,
.lms-narrative .nm-copy>.lms-figure img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 640px) {
  :is(.network-case-page,.lms-case-page,.s2-case-page) {
    --case-title: clamp(2.25rem,10vw,3rem);
    --case-heading: clamp(1.75rem,7.5vw,2.125rem);
    --case-subheading: 1.125rem;
    --case-copy: 1rem;
  }
  :is(.network-case-page,.lms-case-page,.s2-case-page) :is(
    .nm-section,.nm-thesis,.nm-principles,.nm-decisions-intro,.nm-validation,.nm-closing,
    .lms-process,.lms-interview-band,.lms-final,
    .s2-problem,.s2-model,.s2-solutions,.s2-rejected,.s2-validation,.s2-decisions,.s2-outcome,.s2-role
  ) { padding-block: 3.75rem; }
  .lms-editorial-layout { gap: 1.5rem; }
  .lms-editorial-copy { margin-inline: 0; }
  .lms-editorial-copy .nm-section-heading { margin-bottom: 1.25rem; }
  .lms-section-evidence {
    display: grid;
    gap: 1.25rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
  }
  .lms-section-evidence>.lms-figure,
  .lms-narrative .nm-copy>.lms-figure,
  .lms-supporting-visual>.lms-figure { width: 100%; margin-top: 1.5rem; }
  .lms-supporting-visual>.lms-figure { margin-top: 0; }
  .lms-section-evidence .lms-figure button,
  .lms-narrative .nm-copy>.lms-figure button,
  .lms-summary-grid .lms-figure button {
    width: 100%;
    padding: .625rem;
    border-radius: .75rem;
  }
  .lms-section-evidence .lms-figure figcaption,
  .lms-narrative .nm-copy>.lms-figure figcaption { margin-top: .625rem; }
  .lms-artifact-heading { gap: .5rem; margin-top: 1.75rem; }
  .lms-artifact-heading+.lms-figure { margin-top: .75rem; }
  .lms-image-grid,
  .lms-image-grid.three,
  .lms-summary-grid { grid-template-columns: 1fr; gap: 1.25rem; margin-top: 2rem; }
  .lms-summary-grid .lms-figure button,
  .lms-testing .lms-summary-grid .lms-figure button { aspect-ratio: auto; }
  .lms-summary-grid .lms-figure img { height: auto; object-position: center; }
  .s2-solution-row h3,
  .s2-decision-list h3,
  .s2-intent-grid h3 { margin-top: .5rem; }
}

/* Portfolio V2 — operational journal */
.folio2-shell{--f2-wine:#6f1648;--f2-wine-deep:#430c2a;--f2-paper:#f0eee8;--f2-ink:#191719;--f2-muted:#625d61;min-height:100svh;background:var(--f2-paper);color:var(--f2-ink);font-family:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif}
.folio2-shell a:focus-visible{outline:3px solid #e9a84f;outline-offset:4px}
.folio2-rail{position:fixed;z-index:10;inset:0 auto 0 0;width:min(31vw,29rem);display:flex;flex-direction:column;padding:clamp(1.5rem,3vw,3rem);background:var(--f2-wine);color:#fff}
.folio2-rail-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.folio2-monogram{width:2.75rem;height:2.75rem;display:grid;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;font-size:.75rem;font-weight:750}.folio2-rail-top>span{color:#e9cbdc;font-size:.6875rem;font-weight:650;line-height:1.5;text-align:right;text-transform:uppercase;letter-spacing:.08em}
.folio2-intro{margin:auto 0}.folio2-kicker{margin:0 0 1.25rem;color:#e9cbdc;font-size:.75rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.folio2-intro h1{max-width:8.5ch;margin:0;font-size:clamp(3.2rem,5.4vw,6rem);font-weight:520;line-height:.88;letter-spacing:-.065em}.folio2-intro h1 em{display:block;margin-top:.12em;color:#f5cde3;font-family:Georgia,"Times New Roman",serif;font-weight:400}.folio2-intro>p:last-child{max-width:32rem;margin:2rem 0 0;color:#f2e6ed;font-size:clamp(.9375rem,1.2vw,1.125rem);line-height:1.65}
.folio2-rail nav{display:flex;flex-wrap:wrap;gap:.375rem 1rem}.folio2-rail nav a{padding:.45rem 0;border-bottom:1px solid transparent;color:#f2e6ed;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.folio2-rail nav a:hover{border-color:currentColor}.folio2-availability{display:flex;align-items:center;gap:.65rem;margin-top:1.75rem;color:#e9cbdc;font-size:.6875rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.folio2-availability i{width:.5rem;height:.5rem;border-radius:50%;background:#e9a84f}
.folio2-journal{margin-left:min(31vw,29rem);min-width:0}.folio2-journal-head{height:5.25rem;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;padding:0 clamp(1.25rem,3vw,3.5rem);border-bottom:1px solid rgba(25,23,25,.18);font-size:.6875rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.folio2-journal-head span:nth-child(2){text-align:center}
.folio2-project{padding:clamp(1rem,2.2vw,2rem);border-bottom:1px solid rgba(25,23,25,.22)}.folio2-visual-link{position:relative;display:block;height:min(66vw,45rem);max-height:calc(100svh - 7rem);min-height:32rem;overflow:hidden;background:#dedbd4}.folio2-visual-link>div{position:absolute;inset:0;transition:transform .7s cubic-bezier(.18,.76,.22,1)}.folio2-visual-link:hover>div{transform:scale(.985)}.folio2-project-info{display:grid;grid-template-columns:minmax(8rem,.68fr) minmax(14rem,1.2fr) minmax(16rem,1fr);gap:clamp(1rem,2.5vw,3rem);padding:1.5rem 0 2.5rem}.folio2-project-id{display:flex;align-items:flex-start;gap:1rem}.folio2-project-id>span{font:italic 1.5rem/1 Georgia,serif;color:var(--f2-wine)}.folio2-project-id small{max-width:16ch;color:var(--f2-muted);font-size:.6875rem;font-weight:650;line-height:1.5;text-transform:uppercase;letter-spacing:.07em}.folio2-project-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.folio2-project-title h2{max-width:11ch;margin:0;font-size:clamp(2rem,3.8vw,4.2rem);font-weight:550;line-height:.95;letter-spacing:-.055em}.folio2-project-title time{padding-top:.35rem;color:var(--f2-muted);font-size:.75rem}.folio2-project-story h3{max-width:22ch;margin:0 0 .75rem;color:var(--f2-wine);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.2rem,1.8vw,1.7rem);font-weight:400;line-height:1.28}.folio2-project-story p{max-width:38rem;margin:0;color:var(--f2-muted);font-size:.9375rem;line-height:1.65}.folio2-project-story>a{display:flex;width:max-content;align-items:center;gap:.7rem;margin-top:1.4rem;padding-bottom:.3rem;border-bottom:1px solid currentColor;color:var(--f2-wine);font-size:.75rem;font-weight:750;text-transform:uppercase;letter-spacing:.07em}.folio2-project-story>a span{transition:transform .25s}.folio2-project-story>a:hover span{transform:translate(.2rem,-.2rem)}
.folio2-network{background:var(--f2-wine-deep);color:#fff}.folio2-map-meta{position:absolute;z-index:3;inset:5% 5% auto;display:flex;justify-content:space-between;padding-bottom:.8rem;border-bottom:1px solid rgba(255,255,255,.24);color:#e8cada;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.folio2-route{position:absolute;left:20%;top:17%;width:59%;height:63%;border:2px dashed rgba(255,255,255,.32);border-radius:34% 48% 29% 44%;transform:rotate(-7deg)}.folio2-hex-field{position:absolute;left:12%;top:15%;width:78%;display:grid;grid-template-columns:repeat(12,1fr);gap:.3rem;transform:rotate(-7deg)}.folio2-hex-field i{aspect-ratio:1;clip-path:polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50%);background:rgba(255,255,255,.065)}.folio2-hex-field i.is-on{background:#c85d96}.folio2-map-card{position:absolute;right:6%;bottom:7%;width:min(15rem,32%);padding:1.25rem;background:#f4eee9;color:var(--f2-ink)}.folio2-map-card small,.folio2-map-card span{display:block;color:var(--f2-muted);font-size:.6875rem;text-transform:uppercase;letter-spacing:.07em}.folio2-map-card strong{display:block;margin:.6rem 0;font:italic clamp(2.5rem,5vw,5.5rem)/1 Georgia,serif;color:var(--f2-wine)}
.folio2-scheduling{padding:6%;background:#d8c8b9;color:#282126}.folio2-schedule-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid rgba(40,33,38,.2);font-size:.75rem;font-weight:700}.folio2-schedule-top b{padding:.75rem 1rem;background:var(--f2-wine);color:#fff}.folio2-capacity{position:absolute;left:8%;top:28%;display:grid;grid-template-columns:auto 1fr;align-items:end}.folio2-capacity small{grid-column:1/-1;color:#6f6168;font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em}.folio2-capacity strong{margin-top:.75rem;color:var(--f2-wine);font:italic clamp(5rem,10vw,10rem)/.8 Georgia,serif}.folio2-capacity span{padding:0 0 .5rem .6rem;font-size:.75rem}.folio2-order-list{position:absolute;right:7%;top:25%;width:42%;display:grid;gap:.65rem}.folio2-order-list i{height:clamp(2.5rem,5vw,4.5rem);border:1px solid rgba(40,33,38,.12);background:rgba(255,255,255,.38)}.folio2-order-list i.is-active{border-left:.4rem solid var(--f2-wine);background:#fff}.folio2-order-actions{position:absolute;inset:auto 7% 7%;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.folio2-order-actions span{padding:.75rem;border:1px solid rgba(40,33,38,.2);font-size:.6875rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.06em}
.folio2-lms{display:grid;place-items:center;padding:clamp(1.5rem,4vw,4rem);background:#263e74}.folio2-lms img{display:block;width:100%;height:auto}.folio2-lms span{position:absolute;right:2rem;bottom:1.5rem;color:#dce2ef;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.folio2-contact{min-height:88svh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(2rem,5vw,5rem);background:var(--f2-ink);color:#fff}.folio2-contact>p{margin:0;color:#c7bdc3;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em}.folio2-contact>a{position:relative;display:block;width:max-content;max-width:100%;font-size:clamp(4rem,10vw,10rem);font-weight:520;line-height:.8;letter-spacing:-.07em}.folio2-contact>a span,.folio2-contact>a em{display:block}.folio2-contact>a em{padding-left:12vw;color:#e8b9d4;font-family:Georgia,"Times New Roman",serif;font-weight:400}.folio2-contact>a i{position:absolute;right:-.7em;top:.08em;font-size:.23em;font-style:normal}.folio2-contact>div{display:flex;justify-content:space-between;gap:1rem;color:#c7bdc3;font-size:.6875rem;font-weight:650;text-transform:uppercase;letter-spacing:.07em}
@media(max-width:980px){.folio2-rail{position:relative;width:100%;min-height:75svh}.folio2-journal{margin-left:0}.folio2-project-info{grid-template-columns:.55fr 1.2fr}.folio2-project-story{grid-column:2}.folio2-visual-link{height:70vw}.folio2-contact{min-height:75svh}}
@media(max-width:640px){.folio2-rail{min-height:88svh;padding:1.25rem}.folio2-intro h1{font-size:clamp(3.2rem,15vw,5.2rem)}.folio2-intro>p:last-child{font-size:1rem}.folio2-journal-head{height:4.25rem;padding:0 1rem;grid-template-columns:1fr auto}.folio2-journal-head span:nth-child(2){display:none}.folio2-project{padding:.5rem}.folio2-visual-link{height:88vw;min-height:0;max-height:none}.folio2-project-info{display:block;padding:1.25rem .5rem 3rem}.folio2-project-id{margin-bottom:2rem}.folio2-project-title{margin-bottom:1.5rem}.folio2-project-title h2{font-size:clamp(2.6rem,13vw,4rem)}.folio2-map-card{width:40%;padding:.8rem}.folio2-map-card strong{font-size:2.25rem}.folio2-order-actions{display:none}.folio2-lms{padding:1rem}.folio2-lms span{right:1rem;bottom:.75rem}.folio2-contact{min-height:72svh;padding:3rem 1.25rem 1.25rem}.folio2-contact>a{font-size:clamp(4rem,20vw,7rem)}.folio2-contact>div{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.folio2-visual-link>div,.folio2-project-story>a span{transition:none}}

/* Portfolio V2 — interactive work index */
.archive2-page{--a2-paper:#f4f3ef;--a2-ink:#121112;--a2-wine:#741947;--a2-line:rgba(18,17,18,.22);min-height:100svh;background:var(--a2-paper);color:var(--a2-ink);font-family:Arial,"Helvetica Neue",sans-serif;scrollbar-color:var(--a2-wine) var(--a2-paper);scrollbar-width:thin}
.archive2-page *{box-sizing:border-box}.archive2-page a{cursor:pointer}.archive2-page a:focus-visible{outline:3px solid var(--a2-wine);outline-offset:4px}
.archive2-header{height:5.5rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(1.25rem,3vw,3rem);border-bottom:1px solid var(--a2-line)}.archive2-name{width:max-content;font-size:.9375rem;font-weight:700;line-height:1.1}.archive2-name span{display:block;margin-top:.3rem;color:#6f696d;font:italic .75rem/1.2 Georgia,serif}.archive2-header nav{display:flex;gap:1.5rem}.archive2-header nav a{position:relative;padding:.7rem 0;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.archive2-header nav a:after{content:"";position:absolute;inset:auto 0 .3rem;height:1px;background:var(--a2-wine);transform:scaleX(0);transform-origin:right;transition:transform .25s}.archive2-header nav a:hover:after{transform:scaleX(1);transform-origin:left}.archive2-place{justify-self:end;color:#6f696d;font-size:.75rem;line-height:1.4;text-align:right;text-transform:uppercase;letter-spacing:.04em}
.archive2-workspace{height:calc(100svh - 5.5rem);min-height:43rem;display:grid;grid-template-columns:minmax(30rem,1.05fr) minmax(27rem,.95fr)}.archive2-index{min-width:0;display:grid;grid-template-rows:1fr auto auto;padding:clamp(1.5rem,3vw,3rem);border-right:1px solid var(--a2-line)}.archive2-intro{align-self:center}.archive2-intro>p{margin:0 0 1.5rem;color:var(--a2-wine);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.archive2-intro h1{max-width:15ch;margin:0;font-size:clamp(2.6rem,4.4vw,5.2rem);font-weight:500;line-height:.93;letter-spacing:-.065em}.archive2-intro h1 em{font-family:Georgia,"Times New Roman",serif;font-weight:400;color:var(--a2-wine)}
.archive2-list{border-top:1px solid var(--a2-line)}.archive2-list>a{display:grid;grid-template-columns:2.3rem minmax(0,1fr) minmax(8rem,.45fr) 1.5rem;align-items:center;gap:1rem;min-height:5.25rem;border-bottom:1px solid var(--a2-line);transition:background .25s,color .25s,padding .25s}.archive2-list>a>span{font:italic 1rem/1 Georgia,serif}.archive2-list h2{margin:0;font-size:clamp(1.5rem,2.4vw,2.7rem);font-weight:600;line-height:1;letter-spacing:-.045em}.archive2-list small{font-size:.75rem;line-height:1.4}.archive2-list i{font-size:1rem;font-style:normal;transition:transform .25s}.archive2-list>a:hover,.archive2-list>a.is-active{padding-inline:1rem;background:var(--a2-wine);color:#fff}.archive2-list>a:hover i,.archive2-list>a.is-active i{transform:translate(.2rem,-.2rem)}
.archive2-index-foot{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-top:1.5rem;color:#6f696d;font-size:.75rem}.archive2-index-foot a{color:var(--a2-wine);font-weight:700}
.archive2-stage{position:relative;min-width:0;display:block;margin:clamp(1rem,2vw,2rem);overflow:hidden;background:#ddd9d3}.archive2-stage-top,.archive2-stage-bottom{position:absolute;z-index:5;left:1.25rem;right:1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#fff;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.archive2-stage-top{top:1.25rem}.archive2-stage-bottom{bottom:1.25rem}.archive2-stage-bottom strong{font-size:1rem}.archive2-stage>div:not(.archive2-stage-top):not(.archive2-stage-bottom){position:absolute;inset:0;animation:archive2-in .42s cubic-bezier(.2,.8,.2,1)}
@keyframes archive2-in{from{opacity:.25;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
.archive2-map{overflow:hidden;background:#2b0d1f}.archive2-map-head{position:absolute;z-index:2;inset:4.5rem 2rem auto;display:flex;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.25);color:#e7c7d9;font-size:.75rem}.archive2-map-shape{position:absolute;left:15%;top:21%;width:69%;height:57%;border:2px dashed rgba(255,255,255,.36);border-radius:42% 31% 48% 27%;transform:rotate(-9deg)}.archive2-map-grid{position:absolute;left:6%;top:18%;width:96%;display:grid;grid-template-columns:repeat(11,1fr);gap:.32rem;transform:rotate(-9deg)}.archive2-map-grid i{aspect-ratio:1;clip-path:polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50%);background:rgba(255,255,255,.06)}.archive2-map-grid i.on{background:#ca6398}.archive2-map>strong{position:absolute;right:-.08em;bottom:-.18em;color:rgba(255,255,255,.07);font:italic clamp(14rem,25vw,27rem)/1 Georgia,serif}
.archive2-schedule{background:#b9a48f;color:#221a1e}.archive2-schedule-head{position:absolute;z-index:2;inset:4.5rem 2rem auto;display:flex;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid rgba(34,26,30,.24);font-size:.75rem;font-weight:700}.archive2-schedule-head b{padding:.65rem .85rem;background:var(--a2-wine);color:#fff}.archive2-schedule-value{position:absolute;left:9%;top:29%;display:grid;grid-template-columns:auto 1fr;align-items:end}.archive2-schedule-value small{grid-column:1/-1;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.archive2-schedule-value strong{color:var(--a2-wine);font:italic clamp(5rem,9vw,10rem)/.85 Georgia,serif}.archive2-schedule-value span{padding:0 0 .6rem .5rem;font-size:.75rem}.archive2-schedule-lines{position:absolute;right:8%;top:27%;width:39%;display:grid;gap:.65rem}.archive2-schedule-lines i{height:3.5rem;border:1px solid rgba(34,26,30,.18);background:rgba(255,255,255,.34)}.archive2-schedule-lines i:nth-child(2){border-left:.45rem solid var(--a2-wine);background:#eee8e1}.archive2-schedule-key{position:absolute;right:-.08em;bottom:-.18em;color:rgba(116,25,71,.09);font:italic clamp(14rem,25vw,27rem)/1 Georgia,serif}
.archive2-lms{display:grid;place-items:center;padding:9%;background:#29406e}.archive2-lms-frame{display:grid;place-items:center;width:100%;padding:5%;background:#f4f3ef}.archive2-lms img{display:block;width:100%;height:auto}.archive2-lms>span{position:absolute;left:2rem;top:4.5rem;color:#dae2f1;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.archive2-lms>strong{position:absolute;right:-.08em;bottom:-.18em;color:rgba(255,255,255,.07);font:italic clamp(14rem,25vw,27rem)/1 Georgia,serif}
.archive2-footer{min-height:88svh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(1.5rem,4vw,4rem);background:var(--a2-wine);color:#fff}.archive2-footer>div{display:flex;justify-content:space-between;gap:1rem;color:#e9c9da;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.archive2-footer>a{position:relative;display:block;width:max-content;max-width:100%}.archive2-footer>a small{display:block;margin-bottom:1.25rem;color:#e9c9da;font-size:.875rem}.archive2-footer>a strong{display:block;font-size:clamp(6rem,17vw,18rem);font-weight:500;line-height:.76;letter-spacing:-.08em}.archive2-footer>a i{position:absolute;right:-1.4em;top:20%;font-size:2rem;font-style:normal}
@media(max-width:900px){.archive2-header{grid-template-columns:1fr auto}.archive2-place{display:none}.archive2-workspace{height:auto;min-height:0;display:block}.archive2-index{min-height:88svh;border-right:0}.archive2-stage{height:80svh;margin:0}.archive2-intro{padding-block:5rem}.archive2-index-foot{padding-bottom:1rem}}
@media(max-width:640px){.archive2-header{height:auto;min-height:5rem;padding:.8rem 1rem}.archive2-name span{display:none}.archive2-header nav{gap:.65rem}.archive2-header nav a{font-size:.75rem}.archive2-workspace{padding-top:0}.archive2-index{min-height:calc(100svh - 5rem);padding:1rem;display:flex;flex-direction:column}.archive2-intro{padding:4rem 0}.archive2-intro h1{font-size:clamp(2.8rem,13vw,4.5rem)}.archive2-list{margin-top:auto}.archive2-list>a{grid-template-columns:1.75rem 1fr 1rem;gap:.65rem;min-height:4.75rem}.archive2-list small{display:none}.archive2-list h2{font-size:clamp(1.45rem,7vw,2rem)}.archive2-index-foot{align-items:flex-start;flex-direction:column;gap:.6rem}.archive2-stage{height:75svh;margin:.5rem}.archive2-stage-top span:last-child{display:none}.archive2-footer{min-height:75svh;padding:2rem 1rem}.archive2-footer>a strong{font-size:clamp(5rem,25vw,9rem)}.archive2-footer>a i{right:0;top:-.2em}.archive2-footer>div{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.archive2-stage>div:not(.archive2-stage-top):not(.archive2-stage-bottom){animation:none}.archive2-header nav a:after,.archive2-list>a,.archive2-list i{transition:none}}
