/* Self-hosted, latin subset. Inter and Playfair Display are variable fonts. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/Inter-normal-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/PlayfairDisplay-normal-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 600;font-display:swap;src:url(/assets/fonts/PlayfairDisplay-italic-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Tangerine';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/Tangerine-normal-700.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--navy:#12202E;--ink:#12202E;--gold:#B28A4C;--gold-text:#765A31;--paper:#F2ECE1;--warm-white:#FBF8F1;--parchment:#EFE7D4;--mist:#DCE3E6;--muted:#59636D;--line:#D9CDB6;--white:#fff;--body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;--display:'Playfair Display',Georgia,serif;--script:'Tangerine',cursive;--space-xs:.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-xxl:6rem;--space-section:clamp(3.5rem,8vw,6rem);--ease:cubic-bezier(.2,.8,.2,1);--dur-fast:180ms;--dur-card:210ms;--dur-reveal:420ms;--dur-diagram:600ms;--dur-hero:560ms;--measure:68ch}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--navy);font-family:var(--body);font-size:15px;line-height:1.8}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--gold-text)}img{max-width:100%;height:auto;display:block}h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.16}h1{font-size:clamp(2.3rem,5vw,4rem);letter-spacing:-.035em;margin:0 0 24px}h2{font-size:clamp(1.8rem,3.2vw,2.7rem);letter-spacing:-.025em}h3{font-size:1.35rem}p{margin:0 0 1.2em}a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid var(--gold-text);outline-offset:5px}main:focus{outline:none}.container{width:min(1160px,calc(100% - 80px));margin-inline:auto}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font:700 .75rem/1.7 var(--body);color:var(--gold-text);margin-bottom:22px}.signature{font:700 3rem/1.1 var(--script);color:var(--gold-text)}.lead{font-size:1.08rem;line-height:1.9;max-width:700px;color:var(--muted)}.page-intro{padding-block:78px 60px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;background:var(--navy);color:var(--paper);text-decoration:none;border:1px solid var(--navy);border-radius:3px;font-size:.8rem;font-weight:700}.button:hover{color:white;background:#333b4e}.button.secondary{background:transparent;color:var(--navy);border-color:#9c9a92}.actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.text-link{display:inline-block;padding-block:12px;font-weight:700;font-size:.85rem}.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:20}.header-inner{max-width:1240px;margin:auto;min-height:80px;padding:12px 40px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;flex-shrink:0;line-height:1.25}.brand strong{font:600 1rem/1.4 Georgia,serif}.brand small{display:block;font-size:.75rem;letter-spacing:.16em;color:var(--gold-text);font-weight:700}.seal{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:#D6B577;border:1px solid var(--gold);font-family:Georgia,serif}.desktop-nav{display:flex;gap:24px}.desktop-nav a{font-size:.76rem;text-decoration:none;padding-block:10px}.desktop-nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px}.mobile-nav{display:none}.skip-link{position:absolute;left:16px;top:-100px;background:var(--navy);color:white;padding:12px;z-index:100}.skip-link:focus{top:12px}.site-footer{padding-top:60px;background:var(--parchment);border-top:1px solid var(--line);font-size:.8rem}.footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1fr;gap:44px}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}.footer-nav a{padding-block:5px}.colophon{margin-top:40px;border-top:1px solid var(--line);padding-block:24px;font-size:.75rem;letter-spacing:.15em}.contact-panel{margin-block:40px;padding:36px;border:1px solid var(--line);background:white;max-width:760px}.email-address{margin-top:20px;overflow-wrap:anywhere}
@media(max-width:900px){.desktop-nav{gap:12px}.header-inner{padding-inline:24px}.container{width:calc(100% - 48px)}}
@media(max-width:760px){.desktop-nav{display:none}.mobile-nav{display:block}.mobile-nav summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:.8rem;padding:6px 10px;border:1px solid var(--line);border-radius:3px}.mobile-nav nav{position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:16px 24px;box-shadow:0 12px 18px #12202E12}.mobile-nav nav a{display:block;min-height:44px;padding:8px;text-decoration:none}.mobile-nav nav a[aria-current]{color:var(--gold-text);font-weight:bold}.footer-grid{grid-template-columns:1fr;gap:26px}.page-intro{padding-block:48px}.header-inner{padding-inline:20px;gap:10px}.brand strong{font-size:.87rem}.brand{gap:9px}.seal{width:34px;height:34px}.contact-panel{padding:24px}.container{width:calc(100% - 40px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
.hero{position:relative;background:linear-gradient(90deg,rgba(242,236,225,.98) 0%,rgba(242,236,225,.95) 34%,rgba(242,236,225,.68) 58%,rgba(242,236,225,.12) 100%),url('/assets/coastal-ledger-hero.jpg') center 60%/cover no-repeat}.hero-inner{padding-block:64px 54px}.hero .signature{margin-bottom:14px}.hero h1{font-size:clamp(2.4rem,4.6vw,3.8rem);max-width:790px}.hero h1 span{color:#434a56}.hero-thesis{font-size:1.04rem;line-height:1.85;max-width:550px}.hero-credential{font-size:.75rem;color:var(--muted);margin-block:22px}.button-note{font-size:.75rem;margin-left:12px;opacity:.8}.proof-section{padding-top:32px}.section-label{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:16px}.section-label h2{font:700 .75rem/1.6 var(--body);margin:0}.section-label>span{font-size:.75rem;color:var(--muted)}.proof-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:#fff}.proof{padding:28px 20px;text-decoration:none;border-right:1px solid var(--line)}.proof:last-child{border:0}.proof strong{display:block;font:600 2.5rem/1.2 Georgia,serif;letter-spacing:-.03em}.proof>span{display:block;font-size:.75rem;margin-top:12px;font-weight:700}.proof small{display:block;font-size:.75rem;line-height:1.8;color:var(--muted);margin-top:8px}.proof:hover{background:#fbf8f1;color:var(--navy)}.section{padding-block:88px}.split-section{display:grid;grid-template-columns:1fr 1fr;gap:80px}.split-section h2{margin:0}.prose{color:var(--muted);font-size:.9rem}.work-band{background:var(--parchment);border-block:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:32px}.section-heading h2{margin:0}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.work-card{display:flex;flex-direction:column;align-items:start;padding:30px 25px;background:var(--paper);border-top:3px solid var(--gold);text-decoration:none}.work-card h3{font-size:1.65rem;margin:0 0 22px}.work-card p:not(.eyebrow){font-size:.8rem;color:var(--muted)}.work-card .eyebrow{font-size:.75rem}.card-result{font-size:.75rem;border-top:1px solid var(--line);padding-top:18px;margin-top:auto;color:var(--gold-text);font-weight:700}.chapter-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.chapter-grid>a{display:flex;align-items:center;gap:22px;padding:28px 20px 28px 0;border-bottom:1px solid var(--line);text-decoration:none}.chapter-grid>a>span:last-child{margin-left:auto}.chapter-number{font:600 2.6rem/1 var(--display);color:var(--gold-text)}.chapter-grid h3{margin:0 0 8px}.chapter-grid p{font-size:.75rem;margin:0;color:var(--muted)}.closing{text-align:center;background:var(--navy);color:var(--paper);padding-block:70px}.closing .eyebrow{color:#D6B577}.closing h2{margin:0 0 20px}.closing p:not(.eyebrow){max-width:650px;margin:0 auto 28px;font-size:.9rem;color:#D5D5D6}.closing .button{background:var(--paper);color:var(--navy)}.essay{max-width:760px;padding-bottom:60px}.essay>p{font-family:var(--display);font-size:1.13rem;line-height:1.9;margin-bottom:26px}
@media(max-width:900px){.split-section{gap:36px}.work-grid{gap:12px}.work-card{padding:24px 20px}.work-card h3{font-size:1.4rem}.proof{padding:24px 16px}.proof strong{font-size:2.15rem}}
@media(max-width:760px){.hero{background:linear-gradient(90deg,rgba(242,236,225,.97),rgba(242,236,225,.86)),url('/assets/coastal-ledger-hero.jpg') center/cover}.hero-inner{padding-block:38px}.hero .eyebrow{font-size:.75rem}.hero h1{font-size:clamp(2rem,7.7vw,3rem)}.hero-thesis{font-size:.94rem}.hero-credential{font-size:.75rem}.proof-grid{grid-template-columns:1fr 1fr}.proof:nth-child(2){border-right:0}.proof:nth-child(-n+2){border-bottom:1px solid var(--line)}.section{padding-block:54px}.split-section,.work-grid,.chapter-grid{grid-template-columns:1fr}.section-heading{display:block}.section-heading .text-link{margin-top:12px}.section-label>span{display:none}.proof small{font-size:.75rem}.closing{padding-block:50px}.chapter-grid>a{padding-block:22px}.work-card{padding:28px}.hero .actions{gap:10px}.hero .button{padding-inline:17px;font-size:.75rem}}
.career-list{padding-bottom:64px}.career-entry{display:grid;grid-template-columns:250px minmax(0,1fr);gap:58px;padding-block:46px;border-top:1px solid var(--line);scroll-margin-top:24px}.career-meta{font-size:.78rem}.career-meta .eyebrow{font-size:.75rem}.career-meta p{margin-bottom:10px}.career-body h2{font-size:2rem;margin:0 0 14px}.role-title{font-weight:700;font-size:.92rem;margin-bottom:12px}.role-note{font-size:.78rem;color:var(--gold-text)}.scope{font-size:.9rem;line-height:1.9;color:var(--muted);margin-top:24px}.career-body h3{font:700 .75rem/1.6 var(--body);text-transform:uppercase;letter-spacing:.12em;margin-top:30px}.impact-list{padding-left:20px;font-size:.85rem}.impact-list li{padding-left:8px;margin-block:12px;line-height:1.9}.impact-list li::marker{color:var(--gold-text)}.technology{font-size:.75rem;padding-top:16px;border-top:1px solid var(--line);color:var(--muted)}
@media(max-width:900px){.career-entry{grid-template-columns:200px minmax(0,1fr);gap:32px}}@media(max-width:760px){.career-entry{grid-template-columns:1fr;gap:20px;padding-block:32px}.career-body h2{font-size:1.7rem}}
.case-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:30px}.case-nav a{font-size:.78rem;padding-block:10px}.case-study{border-top:1px solid var(--line);padding-block:48px;scroll-margin-top:24px}.case-study h2{margin:0 0 18px;max-width:900px}.case-role{font-size:.8rem;color:var(--muted);margin-bottom:32px}.case-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:64px}.case-grid h3{font-size:1.05rem;margin:24px 0 12px}.case-grid>div>h3:first-child{margin-top:0}.case-grid p{font-size:.85rem;color:var(--muted)}.case-result{background:var(--parchment);border-left:3px solid var(--gold);padding:28px 30px;align-self:start}.case-result strong{font:600 3rem/1.1 Georgia,serif}.case-result .eyebrow{color:var(--gold-text)}.case-result dl{margin:24px 0}.case-result dl>div{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.case-result dt{font-size:1.15rem;font-weight:bold}.case-result dd{font-size:.75rem;margin:4px 0 0;color:var(--muted)}.case-result a{font-size:.76rem}.case-result .evidence-note{font-size:.75rem}.system-figure{margin:32px 0 0;max-width:850px}.system-figure img{border:1px solid var(--line);border-radius:3px}.system-figure figcaption{font-size:.75rem;color:var(--muted);margin-top:10px}.project-note{font-size:.8rem;margin:30px 0 0;color:var(--muted)}
@media(max-width:760px){.case-grid{grid-template-columns:1fr;gap:22px}.case-study{padding-block:32px}.case-result{padding:24px}.case-nav{gap:8px 18px}}
.about-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;align-items:center}.portrait{margin:0;max-width:380px;justify-self:end}.portrait img{border:1px solid var(--line);border-radius:2px}.portrait figcaption{font-size:.75rem;color:var(--muted);margin-top:12px}.about-intro .signature{margin-bottom:12px}.principle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.principle-grid>div{border-top:2px solid var(--gold);padding-top:8px}.principle-grid p{font-size:.85rem;color:var(--muted)}.purpose{padding-block:64px;background:var(--parchment);border-block:1px solid var(--line)}.narrow{max-width:760px}.purpose p:not(.eyebrow){font-size:1rem;line-height:1.9}
@media(max-width:900px){.about-intro{gap:36px}}@media(max-width:760px){.about-intro{grid-template-columns:1fr}.portrait{justify-self:start;max-width:300px}.principle-grid{grid-template-columns:1fr;gap:20px}.purpose{padding-block:48px}}

.projects-intro{position:relative}.evidence-key{max-width:850px;margin-top:30px;padding:18px 20px;border-left:2px solid var(--gold);background:#fff;font-size:.78rem;color:var(--muted)}.evidence-key strong{color:var(--navy)}.evidence-level{display:inline-flex;align-items:center;gap:9px;margin:0 0 16px;text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:700;color:var(--muted)}.evidence-level span{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px #B28A4C1a}.evidence-development span{background:#315f61;box-shadow:0 0 0 4px #315f611f}.case-study header>.eyebrow{margin-bottom:8px}.algo-preview{position:relative;overflow:hidden;background:linear-gradient(135deg,#ebe3d2,#F2ECE1 65%)}.algo-preview-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:start}.algo-preview h2{margin:0 0 18px;font-size:clamp(2.2rem,4.5vw,4rem)}.chapter-mark{margin:-28px 0 0;font:600 clamp(7rem,18vw,14rem)/.8 var(--display);color:#B28A4C18}.algo-components{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:42px 0 34px;border:1px solid var(--line);background:var(--line)}.algo-components article{min-height:220px;padding:28px;background:#fbf8f1}.algo-components h3{margin:12px 0}.algo-components article>p:last-child{font-size:.8rem;color:var(--muted)}.component-number{margin:0;font-size:.75rem;letter-spacing:.16em;color:var(--gold-text)}
@media(max-width:760px){.evidence-key{font-size:.75rem}.algo-preview-heading{grid-template-columns:1fr}.chapter-mark{display:none}.algo-components{grid-template-columns:1fr}.algo-components article{min-height:0}.case-study header>.evidence-level{margin-bottom:12px}}

body{font-size:16px}.reveal-ready{transition-delay:var(--reveal-delay,0ms)}

.algo-hero{padding-block:72px;background:linear-gradient(135deg,var(--navy),#243943);color:var(--paper);border-bottom:4px solid var(--gold)}.algo-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:80px;align-items:end}.algo-hero .back-link{display:inline-block;margin-bottom:52px;font-size:.75rem;color:#d6b577}.algo-hero .eyebrow,.algo-hero .evidence-level{color:#d6b577}.algo-hero h1{font-size:clamp(3.4rem,7vw,6.6rem);line-height:.96}.algo-hero .lead{color:#d8dde0}.algo-hero .text-link{color:#d6b577}.algo-hero .button{background:var(--paper);color:var(--navy);border-color:var(--paper)}.algo-role-card{padding:34px;border:1px solid #d6b57766;background:#ffffff08}.algo-role-card h2{font-size:1.8rem;margin:0 0 18px}.algo-role-card>p:not(.eyebrow){font-size:.8rem;color:#d8dde0}.algo-role-card dl{margin:28px 0 0}.algo-role-card dl>div{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 0;border-top:1px solid #ffffff21}.algo-role-card dt{color:#d6b577;font-size:.75rem}.algo-role-card dd{margin:0;font-size:.75rem}.algo-thesis{display:grid;grid-template-columns:.45fr 1.55fr;gap:60px}.algo-thesis h2{margin-top:0}.algo-principles{background:#fff;border-block:1px solid var(--line)}.algo-principles .principle-grid span{font-size:.75rem;letter-spacing:.16em;color:var(--gold-text)}.algo-architecture{margin:40px 0 0}.architecture-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0;padding:0;border:1px solid var(--line);background:var(--line);gap:1px}.architecture-flow li{position:relative;min-height:175px;padding:26px 22px;background:#fff}.architecture-flow li:not(:last-child):after{content:"→";position:absolute;right:-12px;top:50%;z-index:2;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:#fff;transform:translateY(-50%)}.architecture-flow strong,.architecture-flow span{display:block}.architecture-flow strong{font-family:var(--display);font-size:1.05rem}.architecture-flow span{margin-top:20px;font-size:.75rem;color:var(--muted)}.algo-architecture figcaption{margin-top:12px;font-size:.75rem;color:var(--muted)}.algo-component-band{background:var(--parchment);border-block:1px solid var(--line)}.algo-component-detail{display:grid;grid-template-columns:220px minmax(0,1fr);gap:74px}.component-index{border-top:2px solid var(--gold);padding-top:16px}.component-index span{font:600 3.6rem/1 var(--display);color:var(--gold-text)}.component-index p{font-size:.75rem;color:var(--muted)}.algo-component-detail h2{max-width:800px}.feature-list{list-style:none;padding:0;margin:38px 0 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.feature-list li{padding:22px 24px 22px 0;border-bottom:1px solid var(--line)}.feature-list li:nth-child(even){padding-left:24px;border-left:1px solid var(--line)}.feature-list strong,.feature-list span{display:block}.feature-list span{font-size:.75rem;color:var(--muted);margin-top:7px}.capability-list,.control-grid,.boundary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px}.capability-list article,.control-grid article,.boundary-grid article{padding:24px;border:1px solid var(--line);background:#fff}.capability-list h3,.control-grid h3,.boundary-grid h3{margin-top:0}.capability-list p,.control-grid p,.boundary-grid p{font-size:.75rem;color:var(--muted);margin-bottom:0}.algo-governance{align-items:start}.algo-ledger{background:var(--navy);color:var(--paper)}.algo-ledger .eyebrow{color:#d6b577}.ledger-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:38px;border-block:1px solid #ffffff25}.ledger-grid article{padding:24px 18px;border-right:1px solid #ffffff25}.ledger-grid article:last-child{border:0}.ledger-grid span{font:600 1.2rem var(--display);color:#d6b577}.ledger-grid p{font-size:.75rem;color:#d8dde0;margin:14px 0 0}.algo-build,.status-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}.algo-build h2,.status-section h2{margin-top:0}.algo-build>div:last-child,.status-copy{font-size:.86rem;color:var(--muted)}.algo-boundary{background:#fff;border-block:1px solid var(--line)}.evidence-boundary{padding-block:28px;background:#e5dcc8;border-top:1px solid var(--line)}.evidence-boundary .evidence-note{max-width:900px;margin:0;font-size:.75rem;color:var(--muted)}
@media(max-width:980px){.algo-hero-grid{gap:34px}.architecture-flow{grid-template-columns:1fr}.architecture-flow li{min-height:0}.architecture-flow li:not(:last-child):after{content:"↓";right:auto;left:28px;top:auto;bottom:-12px;transform:none}.ledger-grid{grid-template-columns:1fr 1fr}.ledger-grid article{border-bottom:1px solid #ffffff25}.ledger-grid article:last-child{grid-column:1/-1}}
@media(max-width:760px){.algo-hero{padding-block:42px}.algo-hero-grid,.algo-thesis,.algo-component-detail,.algo-build,.status-section{grid-template-columns:1fr;gap:30px}.algo-hero .back-link{margin-bottom:32px}.algo-hero h1{font-size:clamp(3rem,14vw,4.7rem)}.algo-role-card{padding:26px}.feature-list,.capability-list,.control-grid,.boundary-grid{grid-template-columns:1fr}.feature-list li:nth-child(even){padding-left:0;border-left:0}.ledger-grid{grid-template-columns:1fr}.ledger-grid article:last-child{grid-column:auto}.component-index{max-width:120px}}

/* Selected Builds: framed, sanitized screenshots */
.shot{margin:0;display:flex;flex-direction:column;min-width:0}.shot-frame{display:block;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 22px 40px -30px #12202Eaa;text-decoration:none;cursor:zoom-in;transition:transform .25s ease,box-shadow .25s ease}.shot-frame:hover{transform:translateY(-3px);box-shadow:0 30px 46px -30px #12202Ecc}.shot-bar{display:flex;align-items:center;gap:6px;padding:9px 13px;background:var(--navy)}.shot-bar i{width:9px;height:9px;border-radius:50%;background:#d6b57788}.shot-bar b{margin-left:10px;font:700 .75rem/1 var(--body);letter-spacing:.13em;text-transform:uppercase;color:#d6b577}.shot-frame img{width:100%;height:auto}.shot figcaption{padding-top:14px;font-size:.76rem;line-height:1.7;color:var(--muted)}.shot figcaption strong{display:block;margin-bottom:3px;font:600 1.05rem/1.3 var(--display);color:var(--navy)}.shot .evidence-level{display:flex;margin:12px 0 0;font-size:.75rem}.shot-note{display:inline-block;margin-top:8px;padding:2px 9px;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:.75rem;font-weight:700;letter-spacing:.05em;color:var(--gold-text)}
.shot-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:34px 28px;margin-top:34px;align-items:start}.s-4{grid-column:span 4}.s-5{grid-column:span 5}.s-6{grid-column:span 6}.s-7{grid-column:span 7}.s-8{grid-column:span 8}
.build-group{padding-block:64px;border-top:1px solid var(--line);scroll-margin-top:24px}.build-group-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 28px;align-items:start}.build-group-head .chapter-number{grid-row:span 3;font-size:4.4rem}.build-group-head h2{margin:0 0 10px}.build-group-head .evidence-level{margin:0 0 12px}.build-group-head .lead{margin-bottom:0}.build-legend{display:flex;flex-wrap:wrap;gap:10px 26px;margin:30px 0 0;padding:0;list-style:none;font-size:.75rem;color:var(--muted)}.build-legend strong{color:var(--navy)}.filter-chips{display:flex;flex-wrap:wrap;gap:10px;margin:36px 0 0}.filter-chips button{min-height:44px;padding:8px 18px;border:1px solid #9c9a92;border-radius:99px;background:transparent;color:var(--navy);font:700 .75rem var(--body);cursor:pointer}.filter-chips button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:var(--paper)}.filter-chips[hidden]{display:none}.build-group[hidden]{display:none}
.evidence-delivered span{background:#8a4b2a;box-shadow:0 0 0 4px #8a4b2a1c}
.client-stage{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:40px;margin-top:34px;align-items:end}.phone{margin:0;padding:9px;border-radius:30px;background:var(--navy);box-shadow:0 26px 44px -28px #12202Ecc}.phone a{display:block;border-radius:22px;overflow:hidden;cursor:zoom-in}.phone img{width:100%;height:auto}.design-card{padding:28px;border:1px solid var(--line);background:#fff}.design-card h3{margin:0 0 6px}.design-card p{font-size:.78rem;color:var(--muted)}.swatches{display:flex;gap:10px;margin:18px 0;padding:0;list-style:none;flex-wrap:wrap}.swatches li{display:flex;flex-direction:column;gap:6px;font-size:.75rem;color:var(--muted)}.swatches i{display:block;width:62px;height:62px;border-radius:8px;border:1px solid #0000001f}.design-list{margin:0;padding-left:18px;font-size:.76rem;color:var(--muted)}.design-list li{margin-block:6px}
.strip-section{padding-block:70px}.strip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:6px}.strip-grid .shot-frame{cursor:pointer}
.lightbox{width:min(1240px,94vw);max-height:94vh;padding:0;border:0;background:transparent;color:var(--paper);overflow:visible}.lightbox::backdrop{background:#10151ff0}.lightbox figure{margin:0}.lightbox img{max-height:76vh;width:auto;max-width:100%;margin:auto;border-radius:6px;background:#fff}.lightbox figcaption{max-width:760px;margin:16px auto 0;font-size:.82rem;line-height:1.7;text-align:center;color:#e6e6e6}.lb-close,.lb-nav button{min-width:44px;min-height:44px;border:1px solid #d6b57799;border-radius:50%;background:#12202E;color:#d6b577;font:700 1.1rem var(--body);cursor:pointer}.lb-close{position:absolute;right:0;top:-54px}.lb-nav{display:flex;justify-content:center;gap:18px;margin-top:14px}.lb-close:hover,.lb-nav button:hover{background:#d6b577;color:#12202E}
@media(max-width:900px){.s-4,.s-5{grid-column:span 6}.s-7,.s-8{grid-column:span 12}.client-stage{grid-template-columns:minmax(0,1fr) 200px;gap:24px}}
@media(max-width:760px){.shot-grid{gap:30px;grid-template-columns:1fr}.s-4,.s-5,.s-6,.s-7,.s-8{grid-column:auto}.build-group{padding-block:44px}.build-group-head{grid-template-columns:1fr}.build-group-head .chapter-number{display:none}.client-stage{grid-template-columns:1fr}.phone{max-width:240px;margin-inline:auto}.strip-grid{grid-template-columns:1fr}.strip-section{padding-block:48px}.lb-close{top:-50px}}
@media(prefers-reduced-motion:reduce){.shot-frame{transition:none}.shot-frame:hover{transform:none}}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Shell refinements: header, mobile sheet, footer, signature-only script */
body{line-height:1.7;font-feature-settings:"ss01","cv11"}
.desktop-nav{align-items:center;gap:26px}.desktop-nav a{font-size:.82rem;font-weight:500;letter-spacing:.01em}
.nav-resume{padding:8px 14px!important;border:1px solid var(--navy);border-radius:3px;font-weight:600!important;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.nav-resume:hover{background:var(--navy);color:var(--paper)}.desktop-nav .nav-resume:after{display:none}
.mobile-nav summary{min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border:1px solid var(--navy);border-radius:3px;font-size:.8rem;font-weight:600;cursor:pointer;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}
.mobile-nav[open]>nav{position:absolute;left:0;right:0;top:100%;display:grid;padding:8px 20px 20px;background:var(--warm-white);border-bottom:1px solid var(--line);box-shadow:0 18px 30px -20px #12202E40}.mobile-nav nav a{display:flex;align-items:center;min-height:52px;font-size:1rem;border-bottom:1px solid var(--line);text-decoration:none}.mobile-nav nav a[aria-current]{color:var(--gold-text);font-weight:600}
.footer-name{font:600 1.25rem/1.3 var(--display);margin:0 0 10px}.footer-links{list-style:none;margin:0;padding:0}.footer-links a{display:inline-block;padding-block:5px}.site-footer .eyebrow{margin-bottom:14px}
.colophon{letter-spacing:.04em;font-size:.75rem;color:var(--muted);position:relative}.colophon:before{content:"";position:absolute;left:0;top:-1px;width:64px;height:2px;background:var(--gold)}
.header-inner{position:relative}
.evidence-key,.evidence-note,.evidence-level{font-family:var(--body)}

/* Homepage (Phases 4-5): proof rail, transformations with process diagrams, principles, systems, credibility, stewardship */
.hero h1{max-width:820px}.hero h1 span{color:#3d4753}.hero-thesis{max-width:560px;font-size:1.08rem}.hero .actions{margin-top:8px;gap:12px 14px}.hero-credential{margin-top:26px}
.sec-head{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px 40px;align-items:start;margin-bottom:var(--space-lg)}.sec-head h2{margin:0 0 10px}.sec-id{margin:8px 0 0;font:600 .75rem/1.5 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);padding-top:12px;border-top:1px solid var(--gold)}
.proof-section{padding-top:var(--space-lg)}.proof-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line)}.proof-rail .proof{display:block;padding:30px 24px 26px;border-right:1px solid var(--line);text-decoration:none;background:none}.proof-rail .proof:first-child{padding-left:0}.proof-rail .proof:last-child{border-right:0}.proof-rail .proof strong{display:block;font:600 clamp(2.4rem,4.4vw,3.4rem)/1.05 var(--display);letter-spacing:-.03em;color:var(--ink)}.proof-rail .proof>span{display:block;margin-top:12px;font:600 .75rem/1.4 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.proof-rail .proof:hover{background:none;color:var(--ink)}.proof-rail .proof:hover strong{color:var(--gold-text)}.proof-note{margin:14px 0 0;font-size:.75rem;color:var(--muted)}
.transformations{padding-top:var(--space-section)}.transform{display:block;padding:var(--space-lg) 0 var(--space-lg);border-top:1px solid var(--line)}.transform header{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0 40px}.transform header>*{grid-column:2}.transform h3{margin:0 0 var(--space-md);font-size:clamp(1.6rem,2.8vw,2.2rem)}.transform>*:not(header){margin-left:240px}
.pir{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-block:0 var(--space-lg)}.pir>div{padding-top:14px;border-top:2px solid var(--gold)}.pir dt{font:700 .75rem/1.5 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);margin-bottom:6px}.pir dd{margin:0;font-size:.9rem;line-height:1.65;color:var(--muted)}
.flow{counter-reset:step;list-style:none;margin:0 0 var(--space-md);padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.flow li{counter-increment:step;position:relative;padding:50px 8px 0;text-align:center;font:600 .86rem/1.4 var(--body);color:var(--ink)}.flow li:before{content:counter(step);position:absolute;z-index:1;left:50%;top:0;translate:-50% 0;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;background:var(--paper);font:600 .8rem var(--display);color:var(--gold-text)}.flow li:after{content:"";position:absolute;left:50%;width:100%;top:16px;height:1px;background:var(--gold);transform-origin:left center}.flow li:last-child:after{display:none}.flow li:last-child:before{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.flow-outcomes{margin:0 0 6px;font-size:1rem}.flow-outcomes strong{font:600 1.5rem var(--display);color:var(--ink)}.flow-note{margin:0 0 var(--space-sm);font-size:.75rem;color:var(--muted);max-width:60ch}.transform .text-link{margin-top:4px}
.principles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.principles li{padding-top:20px;border-top:1px solid var(--gold)}.principles li>span{display:block;font:600 3rem/1 var(--display);color:var(--gold);margin-bottom:14px}.principles h3{margin:0 0 10px}.principles p{font-size:.9rem;color:#d5d9de;margin:0}.leadership-band .sec-id{color:#D6B577;border-color:#D6B577}.leadership-band .sec-head h2{max-width:720px}
.systems-home{padding-top:var(--space-section)}.systems-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.systems-grid .shot-frame{background:var(--warm-white)}.systems-grid .shot-frame img{aspect-ratio:16/10;object-fit:cover;object-position:top left}
.credibility{border-block:1px solid var(--line);background:var(--warm-white)}.credibility ul{list-style:none;margin:0;padding:26px 0;display:flex;flex-wrap:wrap;gap:12px 0;font-size:.82rem;color:var(--muted)}.credibility li{padding:0 22px;border-right:1px solid var(--line)}.credibility li:first-child{padding-left:0}.credibility li:last-child{border-right:0}.credibility strong{color:var(--ink);font-weight:600}
.stewardship{padding-block:var(--space-section);text-align:center}.stewardship .narrow{max-width:760px}.stewardship blockquote{margin:0 0 18px}.stewardship blockquote p{margin:0;font:italic 400 clamp(1.7rem,3.6vw,2.7rem)/1.3 var(--display);color:var(--ink)}.stewardship-words{margin:0;font:600 .75rem var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.cta-final .availability{font-size:.88rem;color:#c7ccd2;max-width:640px;margin-inline:auto}.cta-final .actions{justify-content:center;margin-top:8px}.cta-final .text-link{color:#D6B577}.cta-final h2{max-width:760px;margin-inline:auto}
html.motion .flow:not(.in) li{opacity:0}html.motion .flow:not(.in) li:after{transform:scaleX(0)}html.motion .flow li{transition:opacity var(--dur-diagram) var(--ease)}html.motion .flow li:after{transition:transform var(--dur-diagram) var(--ease)}
html.motion .flow li:nth-child(2),html.motion .flow li:nth-child(2):after{transition-delay:80ms}html.motion .flow li:nth-child(3),html.motion .flow li:nth-child(3):after{transition-delay:160ms}html.motion .flow li:nth-child(4),html.motion .flow li:nth-child(4):after{transition-delay:240ms}html.motion .flow li:nth-child(5){transition-delay:320ms}
@media(max-width:900px){.sec-head{grid-template-columns:1fr;gap:8px}.sec-id{max-width:200px}.transform header{display:block}.transform>*:not(header){margin-left:0}.pir{grid-template-columns:1fr;gap:18px}.systems-grid{grid-template-columns:1fr 1fr}.principles{gap:24px}}
@media(max-width:760px){.proof-rail{grid-template-columns:1fr 1fr}.proof-rail .proof{padding:22px 16px}.proof-rail .proof:nth-child(odd){padding-left:0}.proof-rail .proof:nth-child(2){border-right:0}.proof-rail .proof:nth-child(-n+2){border-bottom:1px solid var(--line)}.flow{grid-template-columns:1fr;gap:0}.flow li{display:block;text-align:left;padding:4px 0 22px 50px;min-height:48px}.flow li:before{left:0;top:0;translate:0 0}.flow li:after{left:16px;top:32px;width:1px;height:calc(100% - 28px);transform-origin:top center}html.motion .flow:not(.in) li:after{transform:scaleY(0)}.principles,.systems-grid{grid-template-columns:1fr}.credibility li{border-right:0;padding:0;width:100%}.credibility ul{padding:20px 0;gap:8px}.cta-final .actions{flex-direction:column;align-items:stretch}.cta-final .button{width:100%}}
.proof-rail .proof:nth-child(n) strong{color:var(--ink)}.proof-rail .proof:nth-child(n):hover strong{color:var(--gold-text)}

/* Phases 6-7: experience timeline + role metrics, case-study template, demo badge */
.role-metrics{list-style:none;margin:20px 0 4px;padding:0;display:flex;flex-wrap:wrap;gap:0;border-block:1px solid var(--line)}.role-metrics li{padding:14px 22px 12px 0;margin-right:22px;display:flex;flex-direction:column;gap:2px;min-width:112px}.role-metrics strong{font:600 1.7rem/1.1 var(--display);color:var(--ink);letter-spacing:-.02em}.role-metrics span{font-size:.75rem;line-height:1.4;letter-spacing:.04em;color:var(--muted);max-width:18ch}
.career-list{position:relative}.career-list:before{content:"";position:absolute;left:279px;top:56px;bottom:56px;width:1px;background:var(--gold)}.career-entry{position:relative}.career-entry:before{content:"";position:absolute;left:274px;top:54px;width:11px;height:11px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px var(--paper);z-index:1}
.career-list.tl:before{background:linear-gradient(var(--gold) var(--tl,0%),var(--line) var(--tl,0%))}.tl .career-entry:before{background:var(--paper);border:1px solid var(--line);transition:background-color var(--dur-card) var(--ease),border-color var(--dur-card) var(--ease)}.tl .career-entry.passed:before{background:var(--gold);border-color:var(--gold)}.tl .career-entry.active:before{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 5px var(--paper),0 0 0 6px var(--gold)}.tl .career-entry:not(.active):not(.passed) .career-body{opacity:.82}
.case-narrative h3{font:700 .75rem/1.5 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);margin:22px 0 6px}.case-narrative>h3:first-child{margin-top:0}.case-narrative p{font-size:.92rem}.case-result .evidence-level{margin:18px 0 12px}.case-result>h3{font-family:var(--display);font-size:1.25rem;margin:0 0 10px}
.evidence-demo span{background:var(--mist);border:1px solid var(--muted);box-shadow:none}
@media(max-width:900px){.career-list{padding-left:28px}.career-list:before{left:5px;top:40px;bottom:40px}.career-entry:before{left:0;top:48px;left:-28px;margin-left:0}.role-metrics li{min-width:96px;padding-right:14px;margin-right:14px}}

/* Phases 8-10: contact actions, About tidy */
.contact-title{margin:var(--space-lg) 0 var(--space-md);font-size:clamp(1.5rem,2.6vw,2rem)}.contact-actions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:900px}.contact-action{display:flex;flex-direction:column;gap:6px;min-height:104px;padding:22px 24px;border:1px solid var(--line);border-radius:3px;background:var(--warm-white);text-decoration:none;transition:border-color var(--dur-card) var(--ease),background-color var(--dur-card) var(--ease)}.contact-action span{font:600 1.2rem/1.3 var(--display);color:var(--ink)}.contact-action small{font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}.contact-action:hover{border-color:var(--gold);color:var(--ink)}.contact-action.primary{background:var(--ink);border-color:var(--ink)}.contact-action.primary span{color:var(--paper)}.contact-action.primary small{color:#c7ccd2}.contact-action.primary:hover{background:#22344a;color:var(--paper)}.contact-note{margin-top:var(--space-md);font-size:.86rem;color:var(--muted);max-width:60ch}
.about-intro .signature{font-size:3.4rem}.about-intro .prose{max-width:var(--measure)}.principle-grid h3{font-family:var(--display)}
@media(max-width:760px){.contact-actions{grid-template-columns:1fr}.contact-action{min-height:84px}}

/* Phase 12: switch to the mobile menu before the desktop nav can overflow; 44px utility button */
.nav-resume{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:1020px){.desktop-nav{display:none}.mobile-nav{display:block}}

.process-figure{margin:24px 0 8px}.process-figure .flow{margin-bottom:10px}.process-figure figcaption{font-size:.75rem;color:var(--muted)}

.proof{min-width:0;overflow-wrap:anywhere}
.hero{background-image:linear-gradient(90deg,rgba(242,236,225,.98) 0%,rgba(242,236,225,.95) 34%,rgba(242,236,225,.68) 58%,rgba(242,236,225,.12) 100%),url('/assets/coastal-ledger-hero.jpg')}
.opportunity-strip{background:var(--navy);color:var(--paper);padding-block:46px;border-bottom:3px solid var(--gold)}.opportunity-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px}.opportunity-grid h2{margin:0}.opportunity-grid .eyebrow{color:#D6B577}.availability{color:#d5d5d6}.opportunity-strip .button{background:var(--paper);color:var(--navy)}.opportunity-strip .text-link{color:#D6B577}.reference-section{padding-block:56px}.reference-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:white}.reference-grid>div{padding:24px}.reference-grid>div+div{border-left:1px solid var(--line)}.reference-grid h3{margin-top:0}.reference-grid p,.reference-section .evidence-note{font-size:.78rem;color:var(--muted)}
.not-found{min-height:62vh;padding-block:100px}.essay{max-width:980px}.essay-intro{text-align:center}.essay-intro .signature{font-size:2.3rem;margin-bottom:8px}.essay-intro h1{font-family:Tangerine,cursive;font-size:clamp(4rem,9vw,7rem);font-weight:700;color:var(--gold-text);letter-spacing:0;margin-bottom:12px}.essay-intro .lead{margin-inline:auto}.book{max-width:820px;margin:0 auto 70px;outline:none}.book-pages{position:relative;background:#fbf4df;border:1px solid #c8b68e;border-radius:4px 12px 12px 4px;box-shadow:inset 22px 0 36px #7a5a2414,12px 18px 40px #12202E26;padding:clamp(32px,6vw,72px);min-height:610px}.book-pages:before{content:"";position:absolute;inset:12px -7px -9px 9px;border:1px solid #c8b68e;border-radius:3px 10px 10px 3px;z-index:-1;background:#e9ddbd}.book-pages>p,.book-face>p{font-family:var(--display);font-size:1.05rem;line-height:1.9}.book-face{animation:page-turn .5s ease}.book-controls{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:34px}.book-controls p{margin:0;font-size:.75rem}.book-controls button{min-height:44px;padding:10px 18px;border:1px solid var(--navy);background:transparent;color:var(--navy);font:700 .75rem var(--body);cursor:pointer}.book-controls button:disabled{opacity:.4}.book-help{text-align:center;color:var(--muted);font-size:.75rem}.book:not([data-enhanced=true]) .book-controls,.book:not([data-enhanced=true]) .book-help{display:none}@keyframes page-turn{from{opacity:.3;transform:rotateY(-12deg)}to{opacity:1;transform:rotateY(0)}}
@media(max-width:760px){.hero{background-image:linear-gradient(90deg,rgba(242,236,225,.97),rgba(242,236,225,.86)),url('/assets/coastal-ledger-hero.jpg')}.opportunity-grid,.reference-grid{grid-template-columns:1fr}.opportunity-grid{gap:20px}.reference-grid>div+div{border-left:0;border-top:1px solid var(--line)}.book-pages{min-height:0;padding:28px 24px}.book-pages>p,.book-face>p{font-size:.93rem}.essay-intro h1{font-size:3.7rem}.book-controls{gap:10px}}
@media(max-width:760px){}

.site-header{position:sticky;top:0;z-index:50;background:rgba(242,236,225,.93);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line),0 8px 25px transparent;transition:box-shadow .25s ease}.scroll-progress{position:fixed;z-index:80;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#8b6427,#d6b577);transform:scaleX(0);transform-origin:left center;will-change:transform}.desktop-nav a{position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .28s ease}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1);transform-origin:left}.desktop-nav a[aria-current]{text-decoration:none}
.depth-section{padding-bottom:70px}.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.capability-grid article{position:relative;padding:30px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(145deg,#fffdf8,#f2ead9);transition:transform var(--dur-card) var(--ease),box-shadow var(--dur-card) var(--ease)}.capability-grid article:hover{transform:translateY(-3px);box-shadow:0 12px 24px #12202E17;z-index:1}.capability-grid span{font:600 2rem var(--display);color:var(--gold-text)}.capability-grid h3{min-height:3.1em;margin:8px 0 14px}.capability-grid p{font-size:.76rem;color:var(--muted);margin:0}.leadership-band{background:var(--navy);color:var(--paper);position:relative;overflow:hidden}.leadership-band:after{content:"LG";position:absolute;right:-.05em;bottom:-.3em;font:600 19rem var(--display);color:#fff;opacity:.025}.leadership-band .eyebrow{color:#D6B577}.leadership-band h2{max-width:720px}.leadership-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:48px}.leadership-grid article{border-top:1px solid #B28A4C;padding-top:22px}.leadership-grid p{font-size:.79rem;color:#d5d5d6}.mandate-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.mandate-section h2{margin-top:0}.mandate-section ol{list-style:none;margin:0;padding:0}.mandate-section li{display:grid;grid-template-columns:46px 1fr;gap:18px;padding:20px 0;border-top:1px solid var(--line)}.mandate-section li>span{font:600 1.8rem var(--display);color:var(--gold-text)}.mandate-section li p{font-size:.8rem;color:var(--muted);margin:0}.mandate-section strong{color:var(--navy);display:block;margin-bottom:4px}.work-card,.proof,.chapter-grid>a{transition:transform .28s ease,box-shadow .28s ease,background-color .28s ease}.work-card:hover{transform:translateY(-3px);box-shadow:0 12px 24px #12202E18}.chapter-grid>a:hover{transform:translateX(4px)}.reveal-ready{opacity:0;transform:translateY(10px);transition:opacity var(--dur-reveal) var(--ease),transform var(--dur-reveal) var(--ease)}.reveal-ready.revealed{opacity:1;transform:none}
@media(max-width:900px){.capability-grid{grid-template-columns:1fr 1fr}.mandate-section{gap:38px}}
@media(max-width:760px){.site-header{position:sticky}.header-inner{min-height:68px}.capability-grid,.leadership-grid,.mandate-section{grid-template-columns:1fr}.capability-grid h3{min-height:0}.leadership-grid{gap:18px}.mandate-section{gap:20px}.depth-section{padding-bottom:50px}}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none}.capability-grid article:hover,.work-card:hover,.chapter-grid>a:hover{transform:none}}
:root{--deep-teal:#315f61;--oxblood:#743f43;--sage:#78806a;--ink-blue:#344c68}.capability-grid article:nth-child(1){border-top:4px solid var(--gold)}.capability-grid article:nth-child(2){border-top:4px solid var(--deep-teal);background:linear-gradient(145deg,#fbfdf9,#e8eee8)}.capability-grid article:nth-child(3){border-top:4px solid var(--oxblood);background:linear-gradient(145deg,#fffafa,#f1e5e2)}.capability-grid article:nth-child(4){border-top:4px solid var(--ink-blue);background:linear-gradient(145deg,#fafcff,#e7ebf0)}.capability-grid article:nth-child(2) span{color:var(--deep-teal)}.capability-grid article:nth-child(3) span{color:var(--oxblood)}.capability-grid article:nth-child(4) span{color:var(--ink-blue)}.proof:nth-child(2) strong{color:var(--deep-teal)}.proof:nth-child(3) strong{color:var(--oxblood)}.proof:nth-child(4) strong{color:var(--ink-blue)}.leadership-band{background:linear-gradient(125deg,var(--navy) 0%,#202d38 58%,#254849 130%)}.leadership-grid article:nth-child(2){border-color:#79a3a0}.leadership-grid article:nth-child(3){border-color:#b57b72}.mandate-section li:nth-child(2) span{color:var(--deep-teal)}.mandate-section li:nth-child(3) span{color:var(--oxblood)}.mandate-section li:nth-child(4) span{color:var(--ink-blue)}
/* Motion layer (spec: quiet, <=12px moves, no loops, reduced-motion respected) */
@media(prefers-reduced-motion:no-preference){
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out 160ms var(--ease) both}::view-transition-new(root){animation:vt-in 320ms var(--ease) both}
.site-header{view-transition-name:site-header}::view-transition-group(site-header){animation-duration:0s}
@keyframes vt-out{to{opacity:0}}@keyframes vt-in{from{opacity:0}}
@keyframes rise{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@keyframes settle{from{opacity:0;scale:.98}to{opacity:1;scale:1}}
@keyframes lb-in{from{opacity:0;scale:.98}to{opacity:1;scale:1}}@keyframes lb-fade{from{opacity:0}to{opacity:1}}
.hero-inner>*,.page-intro>*,.algo-hero-grid>div>*,.algo-role-card{animation:rise var(--dur-hero) var(--ease) both;animation-delay:calc(var(--i,0)*70ms + 60ms)}
.hero-inner>:nth-child(1),.page-intro>:nth-child(1){--i:0}.hero-inner>:nth-child(2),.page-intro>:nth-child(2){--i:1}.hero-inner>:nth-child(3),.page-intro>:nth-child(3){--i:2}.hero-inner>:nth-child(4),.page-intro>:nth-child(4){--i:3}.hero-inner>:nth-child(5),.page-intro>:nth-child(5){--i:4}.hero-inner>:nth-child(n+6),.page-intro>:nth-child(n+6){--i:5}
.about-intro .portrait{animation:settle var(--dur-hero) var(--ease) .2s both}
.rv{opacity:0}.rv.in{animation:rise var(--dur-reveal) var(--ease) both;animation-delay:var(--rv-delay,0ms)}
.button{transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}
.text-link span[aria-hidden]{display:inline-block;transition:translate var(--dur-fast) var(--ease)}.text-link:hover span[aria-hidden]{translate:4px 0}
.shot-frame{transition:border-color var(--dur-card) var(--ease)}.shot-frame:hover{border-color:var(--gold)}.shot-frame img{transition:scale var(--dur-card) var(--ease)}.shot-frame:hover img{scale:1.02}
.architecture-flow li{transition:background-color var(--dur-card) var(--ease)}.architecture-flow li:hover{background:var(--warm-white)}
.algo-components article,.capability-list article,.control-grid article,.boundary-grid article,.principle-grid>div,.leadership-grid article{transition:border-color var(--dur-card) var(--ease),transform var(--dur-card) var(--ease)}.algo-components article:hover,.capability-list article:hover,.control-grid article:hover,.boundary-grid article:hover,.principle-grid>div:hover,.leadership-grid article:hover{transform:translateY(-2px)}
.filter-chips button{transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}
.site-header .header-inner{transition:min-height var(--dur-card) var(--ease),padding var(--dur-card) var(--ease)}.site-header.compact .header-inner{min-height:62px;padding-block:6px}.site-header.compact{box-shadow:0 1px 0 var(--line)}
.mobile-nav[open] nav{animation:rise var(--dur-fast) var(--ease) both}
.lightbox[open]{animation:lb-in var(--dur-card) var(--ease) both}.lightbox[open]::backdrop{animation:lb-fade var(--dur-card) ease both}
}
@media(prefers-reduced-motion:reduce){.rv{opacity:1}.hero-inner>*,.page-intro>*{animation:none}.shot-frame:hover img{scale:1}.text-link:hover span[aria-hidden]{translate:0 0}}

/* The Ledger — Land, Sea & Ink. Visual-design layer loaded after site.css and enhancements.css. */
:root{
--ink:#12202E;--navy:#12202E;--deep-ink:#09141E;--paper:#F2ECE1;--warm-white:#FCFAF6;--gold:#B28A4C;--gold-text:#765A31;--atlantic:#5C7582;--atlantic-deep:#304B59;--mist:#DCE5E5;--sand:#D8C5A5;--clay:#966E58;--sand-tint:#EBE2CF;--muted:#59636D;--line:#D8CDB8;
--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .07 0 0 0 0 .12 0 0 0 0 .18 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
--pad-section:clamp(4.5rem,8vw,7rem);--pad-feature:clamp(5rem,10vw,8.5rem);--pad-small:clamp(3rem,5vw,4.5rem);
}
html{background:var(--paper)}
body{background:var(--paper) var(--grain);color:var(--ink)}
@media(min-width:900px){body{font-size:17px}}
h1{font-size:clamp(3.25rem,5vw,5.8rem);line-height:1.02;letter-spacing:-.03em}
h2{font-size:clamp(2.3rem,3.5vw,3.8rem);line-height:1.08}
h3{font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.2}
.lead{font-size:clamp(1.2rem,1.7vw,1.45rem);line-height:1.6;color:var(--muted)}
.eyebrow{font-size:.78rem;letter-spacing:.14em}
main p,main li,main dd{line-height:1.68}
.pir dd,.case-narrative p,.principle-grid p,.capability-list p,.control-grid p,.boundary-grid p,.feature-list span,.scope,.impact-list,.prose,.contact-note,.case-grid p,.status-copy,.algo-build>div:last-child,.ledger-grid p,.algo-role-card>p:not(.eyebrow),.sys-copy p{font-size:1rem}
.section{padding-block:var(--pad-section)}
.page-intro{padding-block:clamp(3.5rem,7vw,6rem) clamp(2.5rem,4vw,4rem)}
.page-intro h1{font-size:clamp(3.25rem,5vw,5.8rem)}

/* backgrounds */
.ruled{background-image:repeating-linear-gradient(to bottom,transparent 0 35px,rgba(18,32,46,.045) 35px 36px),var(--grain)}
.tide-bg{background-image:url('/assets/tide-lines.svg'),var(--grain);background-repeat:no-repeat,repeat;background-position:center bottom,0 0;background-size:100% 240px,180px}
.stewardship-scene.tide-bg,.cta-final.tide-bg{background-size:100% auto,180px}
.scene-atlantic.tide-bg{padding-bottom:calc(var(--pad-feature) + 120px)}

/* header */
.site-header{background:rgba(242,236,225,.92)}
.brand strong{font-family:var(--display);font-size:1.08rem}

/* hero */
.hero2{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);min-height:clamp(560px,78vh,760px);background:var(--paper) var(--grain);border-bottom:1px solid var(--line)}
.hero2-copy{padding:clamp(3.5rem,8vw,7rem) 48px clamp(3rem,6vw,5rem) max(40px,calc((100vw - 1160px)/2));align-self:center}
.hero2-copy .signature{font-size:clamp(2.6rem,3.6vw,3.6rem);margin:0 0 6px}
.hero2 h1{font-size:clamp(3.8rem,6vw,6.8rem);line-height:.97;margin-bottom:28px;max-width:11ch;letter-spacing:-.035em}
.hero2 h1 span{color:var(--atlantic-deep)}
.hero2 .hero-thesis{font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.6;max-width:34em;color:var(--ink)}
.hero2 .actions{margin-top:30px}.hero2 .hero-credential{margin-top:30px;font-size:.78rem;letter-spacing:.06em;color:var(--muted)}
.hero2-art{position:relative;overflow:hidden;min-height:360px;isolation:isolate}
.hero2-photo{position:absolute;inset:0;background:url('/assets/coastal-ledger-hero.jpg') 62% 55%/cover no-repeat;filter:saturate(.8) contrast(.97);transform-origin:center}
.hero2-art:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--paper) 0,rgba(242,236,225,.55) 14%,rgba(242,236,225,0) 38%),linear-gradient(180deg,rgba(178,138,76,.14),rgba(18,32,46,.16))}
.hero2-art:after{content:"";position:absolute;inset:0;z-index:3;background:var(--grain);mix-blend-mode:multiply;opacity:.9;box-shadow:inset 0 0 120px rgba(9,20,30,.25)}
.hero2-tide{position:absolute;inset:0;width:100%;height:100%;z-index:2}.hero2-tide path{fill:none;stroke:#F6EAD0;stroke-opacity:.55;stroke-width:1.2;vector-effect:non-scaling-stroke}

/* metrics */
.metrics{background:var(--mist) var(--grain);padding-block:clamp(3rem,5vw,4.5rem);border-bottom:1px solid #c6d2d3}
.metrics .proof-rail{border-block:0}
.metrics .proof-rail .proof{padding:12px 28px 8px;border-right:1px solid rgba(18,32,46,.22)}.metrics .proof-rail .proof:first-child{padding-left:0}
.metrics .proof-rail .proof strong{font-size:clamp(3rem,5vw,5.4rem);font-weight:500;letter-spacing:-.04em;color:var(--ink);line-height:1}
.metrics .proof-rail .proof>span{margin-top:14px;font-size:.8rem;letter-spacing:.1em;color:#3f4b57}
.metrics .proof-note{margin-top:28px;font-size:.8rem;color:#3f4b57}

/* section heads */
.sec-head{margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.scene-intro{background:var(--paper) var(--grain);padding-block:clamp(4rem,7vw,6rem) clamp(1.5rem,3vw,2.5rem)}.scene-intro .sec-head{margin:0}

/* transformation scenes */
.scene{position:relative;padding-block:var(--pad-feature)}
.scene-paper{background-color:var(--paper)}.scene-mist{background:var(--mist) var(--grain)}.scene-atlantic{background-color:var(--atlantic-deep);color:#E9E3D5}
.scene-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}.scene-flip .scene-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
.scene-no{margin:0 0 .1em;font:500 clamp(5.5rem,10vw,9rem)/.82 var(--display);color:var(--gold);opacity:.22;letter-spacing:-.04em}
.scene h3{font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.08;margin:0 0 clamp(1.5rem,3vw,2.25rem);letter-spacing:-.02em}
.scene .pir{grid-template-columns:1fr;gap:18px;margin-bottom:28px}.scene .pir>div{display:grid;grid-template-columns:118px 1fr;gap:0 18px;border-top:1px solid rgba(18,32,46,.2);padding-top:14px}.scene .pir dt{margin:3px 0 0}
.scene-atlantic .eyebrow,.scene-atlantic .pir dt{color:#D8B97A}.scene-atlantic .pir>div{border-color:rgba(233,227,213,.28)}.scene-atlantic .pir dd{color:#D5DDE0}.scene-atlantic .text-link{color:#F1E3C2}.scene-atlantic .scene-no{color:#D8B97A;opacity:.3}.scene-atlantic .evidence-level{color:#C9D3D8}.scene-atlantic .evidence-level span{background:#D8B97A;box-shadow:0 0 0 4px rgba(216,185,122,.2)}
.scene .evidence-level{margin:18px 0 12px}
.outcome-block{margin-top:34px;padding:4px 0 4px 22px;border-left:2px solid var(--gold)}
.outcome-block .flow-outcomes{margin:0 0 6px;font-size:1.05rem}.outcome-block .flow-outcomes strong{font:500 clamp(2.2rem,3.4vw,3.2rem)/1.1 var(--display);letter-spacing:-.03em;margin-right:.2em}.outcome-block .flow-note{font-size:.82rem;max-width:44ch}
.scene-visual{min-width:0}
.scene-atlantic .flow li{color:#E9E3D5}.scene-atlantic .flow li:before{background:var(--atlantic-deep);border-color:#D8B97A;color:#F1E3C2}.scene-atlantic .flow li:after{background:#D8B97A}.scene-atlantic .flow li:last-child:before{background:#F1E3C2;color:var(--deep-ink)}
.proc-shot{margin:0 0 34px}.proc-shot .shot-frame{border-color:rgba(233,227,213,.3)}.proc-shot figcaption{color:#C9D3D8}
.flow li{font-size:.95rem}
.flow-v{grid-template-columns:1fr;gap:0;margin:0}.flow-v li{display:block;text-align:left;padding:6px 0 30px 62px;min-height:62px;font-size:1.12rem}.flow-v li:before{left:0;top:0;translate:0 0;width:42px;height:42px;font-size:1rem;background:var(--warm-white)}.flow-v li:after{left:20px;top:44px;width:1px;height:calc(100% - 40px);transform-origin:top center}
html.motion .flow-v:not(.in) li:after{transform:scaleY(0)}

/* leadership */
.leadership-scene{background:var(--paper) var(--grain);padding-block:var(--pad-feature);border-top:1px solid var(--line)}
.lead-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(3rem,7vw,7rem);align-items:start}
.lead-side{position:sticky;top:104px}.lead-side .sec-id{margin:0 0 28px;max-width:220px}.lead-side h2{margin:0 0 36px}
.margin-notes{list-style:none;margin:0;padding:0}.margin-notes li{padding:12px 0;border-top:1px solid var(--line);font-size:.95rem;color:var(--muted)}.margin-notes li:last-child{border-bottom:1px solid var(--line)}.margin-notes strong{display:block;font:500 1.35rem/1.25 var(--display);color:var(--ink)}
.statements{list-style:none;margin:0;padding:0}.statements li{display:grid;grid-template-columns:clamp(96px,11vw,150px) minmax(0,1fr);gap:0 28px;padding:34px 0 38px;border-top:1px solid var(--ink)}.statements li:last-child{border-bottom:1px solid var(--ink)}
.statements li>span{grid-row:span 2;font:500 clamp(4.5rem,8vw,7.5rem)/.85 var(--display);color:var(--gold);opacity:.35;letter-spacing:-.04em}
.statements h3{margin:0 0 14px;font-size:clamp(1.9rem,3.2vw,2.9rem);line-height:1.04;text-transform:uppercase;letter-spacing:.01em;font-weight:500}.statements p{margin:0;font-size:1.08rem;color:var(--muted);max-width:46ch}

/* systems */
.systems-scene{background:var(--sand-tint) var(--grain);padding-block:var(--pad-feature);border-block:1px solid #d9ccb2}
.systems-scene .sec-id{border-color:var(--gold-text)}
.sys-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,5rem);align-items:center;padding-block:clamp(1.75rem,3vw,2.75rem)}.sys-flip{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.sys-flip .shot{order:2}
.sys-row .shot{margin:0}.sys-row .shot-frame{background:#fff;box-shadow:0 30px 60px -36px rgba(18,32,46,.6)}.sys-row .shot-frame img{aspect-ratio:16/10;object-fit:cover;object-position:top left;width:100%}
.sys-copy h3{font-size:clamp(1.9rem,3vw,2.7rem);margin:12px 0 14px}.sys-copy p{color:#434e59}.sys-copy .evidence-level{margin:0}

/* stewardship */
.stewardship-scene{background-color:var(--atlantic-deep);color:#EFE8D8;padding-block:clamp(6rem,12vw,10rem);text-align:center}
.stewardship-scene .eyebrow{color:#D8B97A}.stewardship-scene blockquote{margin:0 auto 26px}.stewardship-scene blockquote p{max-width:15em;margin-inline:auto;font:italic 400 clamp(2.1rem,4.8vw,4rem)/1.22 var(--display);color:#F6F0E2}.stewardship-scene .stewardship-words{color:#D8B97A;font-size:.82rem}

/* final CTA */
.cta-final{background:var(--deep-ink);background-image:url('/assets/tide-lines.svg'),var(--grain);background-repeat:no-repeat,repeat;background-position:center bottom,0 0;background-size:100% auto,180px;padding-block:clamp(5rem,9vw,8rem)}
.cta-final h2{font-size:clamp(2.4rem,4.4vw,4.2rem);color:#F6F0E2}.cta-final p{color:#C9D3D8}.cta-final .button{background:#F6F0E2;color:var(--deep-ink)}.cta-final .button:hover{background:#fff;color:var(--deep-ink)}

/* footer */
.site-footer{background:var(--deep-ink);color:#C9D3D8;border-top:3px solid var(--gold);padding-top:clamp(3.5rem,6vw,5rem);position:relative;overflow:hidden}
.site-footer:before{content:"";position:absolute;inset:auto 0 0 0;height:160px;background:url('/assets/tide-lines.svg') center bottom/100% auto no-repeat;opacity:.55;pointer-events:none}
.site-footer .container{position:relative}.footer-name{font:600 1.5rem/1.25 var(--display);color:#F6F0E2}.site-footer .muted{color:#9fb0b8}.site-footer a{color:#E3D9C2}.site-footer a:hover{color:#fff}.site-footer .eyebrow{color:#D8B97A}
.footer-sig{font:700 clamp(3rem,5vw,4.2rem)/1 var(--script);color:#D8B97A;margin:0 0 10px}
.colophon{color:#9fb0b8;border-top:1px solid rgba(233,227,213,.2);position:relative}.colophon:before{background:var(--gold)}

/* responsive */
@media(max-width:900px){
.hero2{grid-template-columns:1fr;min-height:0}.hero2-copy{padding:3rem 24px 2.5rem}.hero2-art{min-height:300px;order:2}.hero2-art:before{background:linear-gradient(180deg,var(--paper) 0,rgba(242,236,225,0) 30%),linear-gradient(180deg,rgba(178,138,76,.1),rgba(18,32,46,.16))}.hero2 h1{max-width:none}
.scene-grid,.scene-flip .scene-grid,.lead-grid,.sys-row,.sys-flip{grid-template-columns:minmax(0,1fr)}.scene-flip .scene-visual{order:2}.sys-flip .shot{order:0}.lead-side{position:static}
.scene .pir>div{grid-template-columns:1fr}.metrics .proof-rail{grid-template-columns:1fr 1fr}.metrics .proof-rail .proof{padding:20px 16px}.metrics .proof-rail .proof:nth-child(odd){padding-left:0}.metrics .proof-rail .proof:nth-child(2){border-right:0}.metrics .proof-rail .proof:nth-child(-n+2){border-bottom:1px solid rgba(18,32,46,.22)}
}
@media(max-width:760px){.statements li{grid-template-columns:minmax(0,1fr);gap:0}.statements li>span{grid-row:auto;font-size:3.4rem;margin-bottom:6px}.statements h3{font-size:clamp(1.6rem,7vw,2.2rem);overflow-wrap:anywhere}.scene-no{font-size:5rem}.stewardship-scene{padding-block:5rem}.scene{padding-block:4.5rem}.flow:not(.flow-v) li{padding-left:58px}}
@media(prefers-reduced-motion:no-preference){
@keyframes tide-draw{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}@keyframes tide-sway{from{translate:-6px 0}to{translate:6px 0}}@keyframes photo-settle{from{scale:1.025}to{scale:1}}
.hero2-photo{animation:photo-settle 700ms var(--ease) both}
.hero2-tide path{stroke-dasharray:900;animation:tide-draw 1800ms var(--ease) 300ms both,tide-sway 16s ease-in-out 2.2s infinite alternate}.hero2-tide path:nth-child(2){animation-delay:420ms,2.2s}.hero2-tide path:nth-child(3){animation-delay:540ms,2.2s}
.sys-row .shot-frame img{transition:scale var(--dur-card) var(--ease)}.sys-row .shot-frame:hover img{scale:1.02}
}

/* ===== Experience: career timeline scenes ===== */
.career-list{--epad:clamp(4rem,7vw,6rem)}
.career-list:before,.career-entry:before{display:none!important}
.exp-intro{padding-bottom:clamp(2.5rem,5vw,4rem)}
.career-entry{padding-block:var(--epad);border:0;display:block;margin:0;background-color:var(--paper)}
.role-grid{display:grid;grid-template-columns:minmax(0,.24fr) minmax(0,.76fr);gap:0 clamp(2.5rem,5vw,5rem);align-items:start}
.career-entry .career-meta{position:relative;padding-right:clamp(1.5rem,3vw,2.75rem);font-size:.95rem}
.career-entry .career-meta:after{content:"";position:absolute;right:0;top:calc(var(--epad)*-1);bottom:calc(var(--epad)*-1);width:1px;background:linear-gradient(var(--gold) var(--fill,100%),var(--rail,#cdbf9f) var(--fill,100%))}
.career-entry:first-child .career-meta:after{top:14px}
.career-entry .career-meta:before{content:"";position:absolute;right:-5.5px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px var(--entry-bg,#F2ECE1);z-index:1;display:block!important;transition:background-color var(--dur-card) var(--ease)}
.tl .career-entry .career-meta:before{background:var(--entry-bg,#F2ECE1);border:1px solid var(--gold)}.tl .career-entry.passed .career-meta:before,.tl .career-entry.active .career-meta:before{background:var(--gold)}.tl .career-entry.active .career-meta:before{box-shadow:0 0 0 5px var(--entry-bg,#F2ECE1),0 0 0 6px var(--gold)}
.career-meta .eyebrow{margin-bottom:12px}.career-meta p:nth-child(2){font:500 clamp(1.4rem,2vw,1.75rem)/1.2 var(--display);margin:0 0 6px;color:var(--ink)}.career-meta .muted{color:#4d5863}
.career-body h2{font-size:clamp(2.3rem,3.8vw,3.6rem);margin:0 0 14px;line-height:1.06;letter-spacing:-.02em}.role-title{font-size:1.1rem}.scope{font-size:clamp(1.05rem,1.4vw,1.2rem);max-width:var(--measure);color:var(--muted)}
.role-metrics{border-color:rgba(18,32,46,.2)}.role-metrics strong{font-size:clamp(2.2rem,3.4vw,3rem);font-weight:500}.role-metrics span{font-size:.78rem}
.impact-list{font-size:1rem}.impact-list li{margin-block:14px}.career-body h3{font-size:.8rem;letter-spacing:.14em}.technology{font-size:.88rem}
.role-paper{--entry-bg:#F2ECE1;background:var(--paper) var(--grain)}.role-warm{--entry-bg:#FCFAF6;background:var(--warm-white)}.role-sand{--entry-bg:#EBE2CF;--rail:#bfae88;background:var(--sand-tint) var(--grain)}
.role-ink{--entry-bg:#09141E;--rail:#34495a;background:var(--deep-ink) var(--grain);color:#DCE3E5}
.role-ink .career-body h2,.role-ink .career-meta p:nth-child(2){color:#F6F0E2}.role-ink .role-title{color:#F6F0E2}.role-ink .role-note{color:#D8B97A}.role-ink .scope,.role-ink .impact-list,.role-ink .technology,.role-ink .career-meta .muted,.role-ink .career-meta p{color:#C9D3D8}.role-ink .impact-list strong{color:#F6F0E2}.role-ink .eyebrow{color:#D8B97A}.role-ink .career-body h3{color:#D8B97A}.role-ink .text-link{color:#F1E3C2}.role-ink .role-metrics{border-color:rgba(233,227,213,.25)}.role-ink .role-metrics strong{color:#F6F0E2;font-size:clamp(2.8rem,4.6vw,4.4rem)}.role-ink .role-metrics span{color:#C9D3D8}.role-ink .impact-list li::marker{color:#D8B97A}
.role-ink .technology{border-color:rgba(233,227,213,.25)}

/* ===== Projects: chapters ===== */
.case-list{border-top:1px solid var(--line)}
.case-study{border:0;padding-block:var(--pad-feature);position:relative}
.case-no{margin:0 0 .1em;font:500 clamp(5rem,9vw,8rem)/.82 var(--display);color:var(--gold);opacity:.24;letter-spacing:-.04em}
.case-study h2{font-size:clamp(2.3rem,4vw,3.8rem);max-width:15em}
.case-study .case-role{font-size:1rem}
.cs-1{background:var(--paper);background-image:repeating-linear-gradient(to bottom,transparent 0 35px,rgba(18,32,46,.045) 35px 36px),var(--grain)}.cs-2{background:var(--mist) var(--grain)}.cs-4{background:var(--sand-tint) var(--grain)}
.cs-3{background-color:var(--atlantic-deep);background-image:url('/assets/tide-lines.svg'),var(--grain);background-repeat:no-repeat,repeat;background-position:center bottom,0 0;background-size:100% 220px,180px;color:#E9E3D5}
.cs-3 .case-no{color:#D8B97A;opacity:.3}.cs-3 .eyebrow,.cs-3 .case-narrative h3{color:#D8B97A}.cs-3 .case-role,.cs-3 .case-narrative p{color:#D5DDE0}.cs-3 .evidence-level{color:#C9D3D8}.cs-3 .evidence-level span{background:#D8B97A;box-shadow:0 0 0 4px rgba(216,185,122,.2)}
.cs-3 .case-result{background:rgba(255,255,255,.07);border-color:#D8B97A;color:#E9E3D5}.cs-3 .case-result h3,.cs-3 .case-result strong{color:#F6F0E2}.cs-3 .case-result p,.cs-3 .case-result dd,.cs-3 .evidence-note{color:#D5DDE0}.cs-3 .case-result a{color:#F1E3C2}.cs-3 .system-figure img{border-color:rgba(233,227,213,.3)}.cs-3 .system-figure figcaption{color:#C9D3D8}
.cs-2 .case-result,.cs-4 .case-result{background:rgba(252,250,246,.72)}.cs-1 .case-result{background:var(--warm-white)}
.case-result strong{font-size:clamp(3rem,5vw,4.6rem);font-weight:500;letter-spacing:-.03em}
.case-grid{gap:clamp(2rem,5vw,5rem)}

/* ===== About ===== */
.about-intro{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.about-intro .portrait{order:-1;margin:0}.about-intro .portrait img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:top;border:1px solid var(--line);box-shadow:0 40px 70px -44px rgba(18,32,46,.7)}
.about-intro .prose{font-size:1.08rem;color:var(--muted)}
.poem-preview{background-color:var(--atlantic-deep);color:#EFE8D8;padding-block:var(--pad-feature)}.poem-preview .eyebrow{color:#D8B97A}.poem-preview h2{color:#F6F0E2}.poem-preview p{color:#D5DDE0}
.poem-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.poem-card{padding:clamp(1.75rem,3vw,2.75rem);border-left:2px solid #D8B97A;background:rgba(9,20,30,.35)}.poem-title{margin:0 0 14px;font:600 .8rem/1.4 var(--body);letter-spacing:.16em;text-transform:uppercase;color:#D8B97A}.poem-card blockquote{margin:0 0 22px}.poem-card blockquote p{font:italic 400 clamp(1.4rem,2.2vw,1.9rem)/1.45 var(--display);color:#F6F0E2;margin:0}.poem-card .text-link{color:#F1E3C2}

/* ===== Essay ===== */
.essay-hero{position:relative;display:flex;align-items:flex-end;min-height:clamp(440px,66vh,680px);padding-block:clamp(5rem,10vw,8rem) clamp(3rem,6vw,5rem);color:#F2ECE1;background:linear-gradient(180deg,rgba(9,20,30,.5) 0,rgba(18,32,46,.72) 55%,rgba(48,75,89,.94) 100%),url('/assets/coastal-ledger-hero.jpg') center 58%/cover no-repeat;overflow:hidden}
.essay-hero .container{position:relative;z-index:1}.essay-hero .eyebrow{color:#D8B97A}.essay-hero h1{font-size:clamp(3.4rem,7vw,6.8rem);line-height:.98;max-width:11ch;margin:0 0 20px;color:#F6F0E2;font-weight:500}.essay-meta{margin:0;font-size:.9rem;letter-spacing:.06em;color:#C9D3D8}
.essay-tide{display:block;width:100%;height:56px;margin-top:40px;translate:0 var(--tide-y,0px)}.essay-tide path{fill:none;stroke:#D8B97A;stroke-opacity:.6;stroke-width:1.2;vector-effect:non-scaling-stroke}
.essay-body{background:var(--paper) var(--grain);padding-block:clamp(3rem,7vw,6rem)}
.essay-text{width:min(680px,calc(100% - 48px));margin-inline:auto}
.essay-text:before{content:"\201C";display:block;font:500 clamp(5rem,9vw,8rem)/.7 var(--display);color:var(--gold);opacity:.4;margin-bottom:.2em}
.essay-text p{font:400 clamp(1.2rem,1.7vw,1.5rem)/1.78 var(--display);margin:0 0 1.45em;color:#1a2938}
.essay-text p:first-of-type{font-size:clamp(1.35rem,2vw,1.7rem)}.essay-text p:first-of-type:first-letter{float:left;font:500 4.6em/.82 var(--display);padding:.06em .1em 0 0;color:var(--gold-text)}
.essay-text .signature{font-size:3.2rem;margin-top:1em;text-align:left}

/* ===== Builds ===== */
.builds-list .build-group{padding-block:var(--pad-section);border-top:0}
.bg-paper{background:var(--paper) var(--grain)}.bg-mist{background:var(--mist) var(--grain)}.bg-sand{background:var(--sand-tint) var(--grain)}.bg-warm{background:var(--warm-white)}
.build-group .shot-frame img{aspect-ratio:16/10;object-fit:cover;object-position:top left;width:100%}.build-group .shot-frame img.fit{aspect-ratio:auto;object-fit:contain;background:#0c1620}
.build-group-head .chapter-number{font-size:clamp(4rem,6vw,5.5rem);opacity:.7}.build-group-head h2{font-size:clamp(2.2rem,3.4vw,3.4rem)}
.builds-intro{padding-bottom:clamp(2rem,4vw,3rem)}

/* ===== Contact scene ===== */
.contact-scene{background-color:var(--deep-ink);background-image:radial-gradient(60% 80% at 85% 20%,rgba(48,75,89,.55),transparent 70%),url('/assets/tide-lines.svg'),var(--grain);background-repeat:no-repeat,no-repeat,repeat;background-position:0 0,center bottom,0 0;background-size:auto,100% 260px,180px;color:#E9E3D5;padding-block:clamp(5rem,10vw,9rem) clamp(7rem,12vw,11rem);min-height:70vh;display:flex;align-items:center}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(3rem,7vw,7rem);align-items:center;width:min(1160px,calc(100% - 80px))}
.contact-scene .eyebrow{color:#D8B97A}.contact-scene h1{font-size:clamp(3.4rem,6vw,6rem);color:#F6F0E2;margin-bottom:24px}.contact-scene .lead{color:#C9D3D8}.contact-scene .contact-note{color:#aebdc4}
.contact-panel2 .contact-title{font-size:clamp(1.5rem,2.4vw,2rem);color:#F6F0E2;margin:0 0 22px}
.contact-scene .contact-actions{grid-template-columns:1fr 1fr;max-width:none;gap:0;border-top:1px solid rgba(216,185,122,.5)}.contact-scene .contact-action{background:transparent;border:0;border-bottom:1px solid rgba(216,185,122,.35);border-radius:0;padding:26px 8px 24px 0;min-height:0}.contact-scene .contact-actions li:nth-child(odd) .contact-action{padding-right:24px}.contact-scene .contact-actions li:nth-child(even) .contact-action{padding-left:24px;border-left:1px solid rgba(216,185,122,.35)}
.contact-scene .contact-action span{color:#F6F0E2;font-size:1.4rem}.contact-scene .contact-action small{color:#aebdc4}.contact-scene .contact-action:hover{background:rgba(216,185,122,.07)}.contact-scene .contact-action.primary{background:#F2ECE1}.contact-scene .contact-action.primary span{color:#09141E}.contact-scene .contact-action.primary small{color:#3f4b57}.contact-scene .contact-action.primary:hover{background:#fff}
.contact-scene .contact-action.static{margin:0}

/* ===== responsive for these pages ===== */
@media(max-width:900px){
.role-grid{grid-template-columns:1fr}.career-entry .career-meta{padding:0 0 18px 28px;margin-bottom:8px}.career-entry .career-meta:after{right:auto;left:5px;top:calc(var(--epad)*-1);bottom:calc(var(--epad)*-1 + 0px)}.career-entry:first-child .career-meta:after{top:14px}.career-entry .career-meta:before{right:auto;left:-1px}
.about-intro{grid-template-columns:1fr}.about-intro .portrait{max-width:420px}.poem-grid,.contact-grid{grid-template-columns:1fr}.contact-grid{width:min(1160px,calc(100% - 48px))}
}
@media(max-width:600px){.contact-scene .contact-actions{grid-template-columns:1fr}.contact-scene .contact-actions li:nth-child(even) .contact-action{padding-left:0;border-left:0}.contact-scene .contact-actions li:nth-child(odd) .contact-action{padding-right:0}.essay-text p:first-of-type:first-letter{font-size:3.8em}}
@media(prefers-reduced-motion:reduce){.essay-tide{translate:0 0}}

/* QA refinements */
.about-intro{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)}.about-intro .portrait{max-width:none;width:100%;justify-self:stretch}
.contact-scene .contact-action.primary{padding-left:22px}.contact-scene .contact-actions li:nth-child(odd) .contact-action.primary{padding-right:22px}

/* small-screen and small-type fixes from the width sweep */
.sec-id,.career-meta .eyebrow,.component-index p,.component-number{font-size:.78rem}
.career-meta .eyebrow{letter-spacing:.12em}.case-nav a{font-size:.9rem}
@media(max-width:400px){.header-inner{padding-inline:16px;gap:10px}.brand{gap:9px}.brand strong{font-size:.92rem}.brand small{font-size:.75rem;letter-spacing:.1em}.seal{width:36px;height:36px}.mobile-nav summary{padding:0 12px}}
@media(max-width:359px){h1,.hero2 h1,.page-intro h1,.contact-scene h1,.essay-hero h1{font-size:2.55rem}.hero2-copy{padding-inline:20px}.container{width:calc(100% - 40px)}}

/* mobile fixes: About stack order, timeline rail on small screens */
@media(max-width:900px){
.about-intro{grid-template-columns:minmax(0,1fr)}.about-intro .portrait{max-width:440px;justify-self:start}
.career-entry .career-meta:after,.career-entry .career-meta:before{display:none!important}
.career-entry .career-meta{padding:0 0 14px;margin:0}
.role-grid{position:relative;padding-left:34px}
.role-grid:before{content:"";position:absolute;left:5px;top:calc(var(--epad)*-1);bottom:calc(var(--epad)*-1);width:1px;background:linear-gradient(var(--gold) var(--fill,100%),var(--rail,#cdbf9f) var(--fill,100%))}
.career-entry:first-child .role-grid:before{top:14px}
.role-grid:after{content:"";position:absolute;left:0;top:8px;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px var(--entry-bg,#F2ECE1)}
.tl .role-grid:after{background:var(--entry-bg,#F2ECE1);border:1px solid var(--gold)}.tl .passed .role-grid:after,.tl .active .role-grid:after{background:var(--gold)}
}

/* Mobile spacing system: one gutter, one rhythm, readable type. Loaded last. */
:root{--gutter:20px;--pad-section:clamp(3rem,8vw,7rem);--pad-feature:clamp(3.5rem,10vw,8.5rem);--pad-small:clamp(2rem,5vw,4.5rem)}
@media(min-width:480px) and (max-width:760px){:root{--gutter:28px}}
@media(max-width:760px){
 html{-webkit-text-size-adjust:100%}
 body{font-size:1rem;line-height:1.7}
 .container{width:auto;margin-inline:var(--gutter)}
 .header-inner{padding-inline:var(--gutter);min-height:64px}
 .hero2-copy{padding:2.25rem var(--gutter) 2rem}
 .hero2-art{min-height:240px}
 .section,.scene,.leadership-scene,.systems-scene{padding-block:var(--pad-section)}
 .scene-intro{padding-block:var(--pad-small) 1rem}
 .page-intro{padding-block:2.5rem 2rem}
 .site-footer{padding-top:2.5rem}
 .footer-grid{gap:1.75rem}
 h1{margin-bottom:1rem}
 h2{margin-block:0 1rem}
 p{margin-bottom:1em}
 .actions{gap:10px}
 .actions .button{flex:1 1 100%}
 .button{min-height:48px;padding-inline:20px}
 .text-link,.desktop-nav a,.footer-nav a{min-height:44px;display:inline-flex;align-items:center}
 .work-card,.contact-panel{padding:1.5rem 1.25rem}
 .proof,.proof-rail .proof{padding:1.25rem 1rem}
 .section-heading{flex-direction:column;align-items:start;gap:.75rem;margin-bottom:1.5rem}
 .split-section{gap:1.5rem}
 .chapter-grid>a{padding-block:1.25rem}
 .colophon{margin-top:1.5rem;padding-block:1.25rem}
}
@media(max-width:359px){:root{--gutter:16px}}
@supports(padding:max(0px)){@media(max-width:760px){.container{margin-inline:max(var(--gutter),env(safe-area-inset-left)) max(var(--gutter),env(safe-area-inset-right))}.header-inner{padding-inline:max(var(--gutter),env(safe-area-inset-left)) max(var(--gutter),env(safe-area-inset-right))}}}
/* Type floor (all widths): nothing under 12px */
dt{font-size:max(.8125rem,.66em)}.button-note,.colophon{font-size:.75rem}
@media(max-width:480px){.page-intro h1{font-size:clamp(2rem,9.4vw,2.8rem);overflow-wrap:anywhere}}

/* Native motion. Every rule is progressive: unsupported browsers keep the JS/static behavior. */
@media(prefers-reduced-motion:no-preference){
 /* Cross-document view transitions: the header and seal persist while pages cross-fade. */
 @view-transition{navigation:auto}
 .site-header{view-transition-name:site-header}
 .seal{view-transition-name:seal}
 ::view-transition-old(root),::view-transition-new(root){animation-duration:.28s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
 ::view-transition-group(site-header),::view-transition-group(seal){animation-duration:0s}
}
@supports(animation-timeline:scroll()){
 @media(prefers-reduced-motion:no-preference){
  /* Reading progress without a scroll listener */
  .scroll-progress{transform:scaleX(0);animation:progress-grow linear both;animation-timeline:scroll(root)}
  @keyframes progress-grow{to{transform:scaleX(1)}}
  /* Header tightens over the first 80px of scroll */
  .site-header .header-inner{animation:header-compact linear both;animation-timeline:scroll(root);animation-range:0 80px}
  @keyframes header-compact{to{min-height:62px;padding-block:6px}}
 }
}
@media(prefers-reduced-motion:reduce){.scroll-progress{display:none}}

/* Home hero: layered coastal parallax, glass proof rail, CSS counters, tide chart, caustics. All enhancements are progressive. */
@property --n{syntax:'<integer>';initial-value:0;inherits:false}

/* --- Layered photo --- */
.hero2-art{background-size:cover;background-position:center}
.hero2-layer{position:absolute;inset:-4% 0;transform-origin:50% 60%;will-change:transform}
.hero2-layer picture,.hero2-layer img{display:block;width:100%;height:100%}
.hero2-layer img{object-fit:cover;object-position:62% 55%;filter:saturate(.82) contrast(.97)}
.hero2-fore{-webkit-mask-image:linear-gradient(to bottom,transparent 48%,#000 70%);mask-image:linear-gradient(to bottom,transparent 48%,#000 70%)}
.hero2-glint{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgb(255 244 214/.34) 50%,transparent 62%);mix-blend-mode:screen;opacity:0}
@media(prefers-reduced-motion:no-preference){
 .hero2-glint{opacity:.55;animation:glint 14s ease-in-out infinite alternate}
 @keyframes glint{from{transform:translateX(-35%)}to{transform:translateX(35%)}}
}
@supports(animation-timeline:scroll()){
 @media(prefers-reduced-motion:no-preference){
  .hero2-base{animation:hero-base linear both;animation-timeline:scroll(root);animation-range:0 90vh}
  .hero2-fore{animation:hero-fore linear both;animation-timeline:scroll(root);animation-range:0 90vh}
  @keyframes hero-base{to{transform:translateY(6%) scale(1.05)}}
  @keyframes hero-fore{to{transform:translateY(-3%) scale(1.07)}}
 }
}

/* --- Glass proof rail overlapping the hero --- */
.metrics{position:relative;z-index:4}
@supports(backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
 .metrics .proof-rail{background:color-mix(in srgb,var(--paper) 78%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border:1px solid color-mix(in srgb,var(--gold) 38%,transparent);box-shadow:0 22px 50px -24px rgb(18 32 46/.5)}
 .metrics .proof-rail .proof{background:transparent}
}

/* --- Tide-as-chart --- */
.tide-chart{margin:0 0 1rem}
.tide-chart svg{display:block;width:100%;height:clamp(48px,7vw,84px);overflow:visible}
.tc-axis{display:flex;justify-content:space-between;margin-top:6px;font:600 .75rem/1 var(--body);letter-spacing:.08em;color:var(--muted)}
.tc-grid line{stroke:var(--gold);stroke-opacity:.22;stroke-width:1;vector-effect:non-scaling-stroke}
.tc-line{fill:none;stroke:var(--gold);stroke-width:2.4;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.tc-area{fill:color-mix(in srgb,var(--gold) 12%,transparent);stroke:none}
@media(prefers-reduced-motion:no-preference){
 .tc-line{animation:tc-draw 2.2s cubic-bezier(.2,.7,.2,1) .4s both}
 .tc-area{animation:tc-fade 1.4s ease-out 1.4s both}
 @keyframes tc-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
 @keyframes tc-fade{from{opacity:0}to{opacity:1}}
}
.metrics .proof-rail .proof,.metrics .proof-rail .proof:first-child{padding:1.5rem 1.25rem}
.proof strong{white-space:nowrap;overflow-wrap:normal}
@media(max-width:760px){.metrics .proof-rail .proof,.metrics .proof-rail .proof:first-child{padding:1.25rem 1rem}.proof strong{font-size:clamp(1.8rem,8.6vw,2.3rem)}}

/* --- KPI counters: real text stays in the DOM; CSS draws the animated number --- */
@supports(content:"a"/"") and (animation-timeline:scroll()){
 @media(prefers-reduced-motion:no-preference){
   .count{--n:var(--to);position:relative;color:transparent;counter-reset:n var(--n);animation:count-up 1.4s cubic-bezier(.2,.7,.2,1) .35s both}
  .count::after{content:counter(n)/"";position:absolute;left:0;top:0;color:var(--navy)}
  @keyframes count-up{from{--n:0}}
 }
}

/* --- Drifting light pools on the closing CTA (underwater light, kept subtle) --- */
.cta-final{position:relative;overflow:hidden;isolation:isolate}
.cta-final>*{position:relative;z-index:1}
.cta-final::before,.cta-final::after{content:"";position:absolute;inset:-20%;z-index:0;pointer-events:none;mix-blend-mode:screen}
.cta-final::before{background:radial-gradient(38% 30% at 18% 32%,rgb(214 181 119/.2),transparent 70%),radial-gradient(30% 26% at 82% 70%,rgb(110 165 190/.18),transparent 70%)}
.cta-final::after{background:radial-gradient(34% 28% at 62% 22%,rgb(214 181 119/.12),transparent 70%),radial-gradient(28% 24% at 30% 80%,rgb(110 165 190/.14),transparent 70%)}
@media(prefers-reduced-motion:no-preference){
 .cta-final::before{animation:pool-a 26s ease-in-out infinite alternate}
 .cta-final::after{animation:pool-b 34s ease-in-out infinite alternate}
 @keyframes pool-a{from{transform:translate3d(-4%,-2%,0) scale(1)}to{transform:translate3d(5%,3%,0) scale(1.08)}}
 @keyframes pool-b{from{transform:translate3d(4%,3%,0) scale(1.05)}to{transform:translate3d(-5%,-3%,0) scale(1)}}
}
@media(max-width:359px){.proof strong{font-size:clamp(1.4rem,6.6vw,1.8rem)}.metrics .proof-rail .proof,.metrics .proof-rail .proof:first-child{padding:1rem .75rem}}
@media(max-width:359px){.proof-rail .proof>span{letter-spacing:.05em;font-size:.75rem}.proof-rail .proof{overflow:hidden}}

/* Page-level enhancements: Experience tide-table rail, Projects scroll-linked process diagrams. Progressive. */

/* ---------- Experience: sticky "tide table" meta column ---------- */
@media(min-width:761px){
 .career-entry .career-meta{position:sticky;top:104px;align-self:start}
}
.career-meta p:nth-child(2){font:600 1.45rem/1.2 var(--display);letter-spacing:-.01em;font-variant-numeric:lining-nums tabular-nums;color:inherit}
.career-meta p:nth-child(2)::before{content:"";display:block;width:32px;height:2px;margin-bottom:12px;background:var(--gold)}

@supports(animation-timeline:view()){
 @media(prefers-reduced-motion:no-preference){
  /* The gold line draws down the list as you read; dots fill as you pass them. */
  .career-list:before{background:var(--gold);transform-origin:top center;animation:line-draw linear both;animation-timeline:view();animation-range:cover 14% cover 86%}
  @keyframes line-draw{from{transform:scaleY(0)}to{transform:scaleY(1)}}
  .career-entry:before{animation:dot-on linear both;animation-timeline:view();animation-range:cover 52% cover 60%}
  @keyframes dot-on{from{background:var(--paper);border-color:var(--line)}to{background:var(--gold);border-color:var(--gold)}}
 }
}

/* ---------- Projects: pinned process diagram, scroll-linked steps, sticky outcome ---------- */
@media(min-width:901px) and (min-height:720px){
 .case-grid>.case-result{position:sticky;top:228px}
 .case-study .process-figure{position:sticky;top:72px;z-index:3;margin-inline:0;padding-block:14px 8px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 14px 16px -16px rgb(18 32 46/.4)}
 .cs-2 .process-figure{background:var(--mist)}
 .cs-4 .process-figure{background:var(--sand-tint)}
 .cs-3 .process-figure{background:var(--atlantic-deep);border-color:#ffffff26}
 .cs-3 .process-figure .flow li,.cs-3 .process-figure figcaption{color:#E9E3D5}
}
@supports(animation-timeline:view()){
 @media(prefers-reduced-motion:no-preference){
  .case-study{view-timeline:--case block}
  .case-study .flow:not(.in) li,.case-study .flow:not(.in) li:after{opacity:1;transform:none}
  .case-study .flow li{animation:step-light linear both;animation-timeline:--case}
  .case-study .flow li:nth-child(1){animation-range:cover 8% cover 16%}
  .case-study .flow li:nth-child(2){animation-range:cover 18% cover 26%}
  .case-study .flow li:nth-child(3){animation-range:cover 28% cover 36%}
  .case-study .flow li:nth-child(4){animation-range:cover 38% cover 46%}
  .case-study .flow li:nth-child(5){animation-range:cover 48% cover 56%}
  @keyframes step-light{from{opacity:.32}to{opacity:1}}
 }
}

/* ---------- ALGO: architecture diagram (inline SVG, text in DOM), hero light pools ---------- */
.architecture-svg{display:none}
@media(min-width:981px){
 .architecture-svg{display:block;width:100%;height:auto;overflow:visible}
 .architecture-flow{display:none}
}
.architecture-svg .an{cursor:pointer;outline:none}
.architecture-svg rect{fill:#fff;stroke:var(--line);stroke-width:1;transition:fill .25s ease,stroke .25s ease}
.architecture-svg .an:hover rect,.architecture-svg .an:focus-visible rect{fill:var(--warm-white);stroke:var(--gold);stroke-width:2}
.architecture-svg .an:focus-visible rect{stroke:var(--ink);stroke-width:3}
.architecture-svg .an-t{font:600 14px var(--display);fill:var(--ink)}
.architecture-svg .an-s{font:400 12.5px var(--body);fill:var(--muted)}
.architecture-svg .an-n{font:600 12px var(--body);fill:var(--gold);letter-spacing:.08em}
.architecture-svg .an-tip{font:500 13px var(--body);fill:var(--ink);opacity:0;transition:opacity .2s ease}
.architecture-svg .an:hover .an-tip,.architecture-svg .an:focus-visible .an-tip{opacity:1}
.architecture-svg .af{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:5 5}
.architecture-svg .ah{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:no-preference){
 .architecture-svg .af{animation:flow-dash 1.2s linear infinite}
 @keyframes flow-dash{to{stroke-dashoffset:-20}}
}
.algo-hero{position:relative;overflow:hidden;isolation:isolate}
.algo-hero>*{position:relative;z-index:1}
.algo-hero::before,.algo-hero::after{content:"";position:absolute;inset:-20%;z-index:0;pointer-events:none;mix-blend-mode:screen}
.algo-hero::before{background:radial-gradient(38% 30% at 18% 32%,rgb(214 181 119/.16),transparent 70%),radial-gradient(30% 26% at 82% 70%,rgb(110 165 190/.16),transparent 70%)}
.algo-hero::after{background:radial-gradient(34% 28% at 62% 22%,rgb(214 181 119/.1),transparent 70%),radial-gradient(28% 24% at 30% 80%,rgb(110 165 190/.12),transparent 70%)}
@media(prefers-reduced-motion:no-preference){
 .algo-hero::before{animation:pool-a 26s ease-in-out infinite alternate}
 .algo-hero::after{animation:pool-b 34s ease-in-out infinite alternate}
}

/* ---------- Builds: cursor-following gold spotlight on screenshot frames (fine pointers only) ---------- */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .shot-frame{position:relative}
 .shot-frame::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s ease;background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgb(214 181 119/.22),transparent 70%)}
 .shot-frame:hover::after{opacity:1}
}
.architecture-svg:has(.an:focus-visible) .an:not(:focus-visible) .an-tip{opacity:0}

/* LCP text must not start invisible: the hero headline settles with a translate only. */
@keyframes rise-soft{from{translate:0 10px}to{translate:0 0}}
.hero-inner>h1,.page-intro>h1{animation-name:rise-soft}

/* Finishing layer: isometric step stacks, About duotone portrait, 404 contours, dark theme, print. All progressive. */

/* ---------- Projects: isometric step stacks (stack grows with each step) ---------- */
.iso{display:block;width:40px;height:44px;margin:0 auto 8px;overflow:visible}
.iso .t{fill:var(--gold)}.iso .l{fill:var(--ink);opacity:.35}.iso .r{fill:var(--ink);opacity:.62}
.cs-3 .iso .l,.cs-3 .iso .r{fill:#E9E3D5}
.system-figure.shot{margin-inline:0}.system-figure .shot-frame{max-width:100%}

/* ---------- About: duotone seal portrait, colour on hover/focus ---------- */
.about-intro .portrait img{border-radius:50% 50% 2px 2px/32% 32% 2px 2px;filter:grayscale(1) sepia(.45) hue-rotate(172deg) saturate(.9) contrast(1.04);transition:filter .5s ease}
@media(hover:hover){.about-intro .portrait:hover img{filter:none}}
.about-intro .portrait:focus-within img{filter:none}

/* ---------- 404: lost-at-sea contour map ---------- */
.not-found{position:relative;isolation:isolate}
.not-found::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background:radial-gradient(ellipse 60% 40% at 70% 60%,transparent 0 12%,var(--line) 12.4% 12.8%,transparent 13% 22%,var(--line) 22.4% 22.8%,transparent 23% 32%,var(--line) 32.4% 32.8%,transparent 33% 42%,var(--line) 42.4% 42.8%,transparent 43%),radial-gradient(ellipse 40% 28% at 20% 30%,transparent 0 14%,var(--line) 14.5% 15%,transparent 15.5% 30%,var(--line) 30.5% 31%,transparent 31.5%)}
@media(prefers-reduced-motion:no-preference){.not-found::before{animation:drift 40s ease-in-out infinite alternate}@keyframes drift{from{transform:translate3d(-2%,0,0)}to{transform:translate3d(2%,-2%,0)}}}


/* ---------- Print: clean one-column résumé-style output ---------- */
@media print{
 :root{--paper:#fff;--warm-white:#fff;--parchment:#fff;--mist:#fff;--sand-tint:#fff;--ink:#12202E;--navy:#12202E;--muted:#444;--line:#bbb}
 body{background:#fff;color:#12202E;font-size:10.5pt;line-height:1.5}
 header,footer,.skip-link,.mobile-nav,.actions,.nav-resume,.filter-chips,.lightbox,.cta-final,.closing,.process-figure,.hero-art,.essay-tide,.architecture-svg,video{display:none!important}
 .architecture-flow{display:grid!important}
 *{animation:none!important;transition:none!important;box-shadow:none!important;mix-blend-mode:normal!important}
 *::before,*::after{mix-blend-mode:normal!important}
 .container{width:100%}
 section{break-inside:avoid-page;padding-block:10pt!important;background:#fff!important;color:#12202E!important}
 .career-entry{break-inside:avoid;display:block;padding-block:8pt;border-top:1px solid #bbb}
 .career-meta{position:static!important}
 .role-grid,.career-grid{display:block!important}
 .career-list:before,.career-entry:before{display:none!important}
 html,body{overflow-x:hidden}
 a{text-decoration:none;color:inherit}
 a[href^="http"]:after{content:" (" attr(href) ")";font-size:8.5pt;color:#555}
 img{max-width:60%;filter:none!important}
 h1{font-size:22pt}h2{font-size:15pt}h3{font-size:12pt}
 @page{margin:14mm}
}

/* White & Navy: final design layer (proposal v2.1). White canvas, navy structure,
   one gold accent, guilloche engraving on the bands, mesh light in intro bands, ledger graph on dark bands.
   Loaded last; it re-points the shared tokens and restyles shared components. */

:root{
 --navy:#0B1930;--ink:#0B1930;--paper:#FFFFFF;--warm-white:#F7F9FC;--parchment:#F7F9FC;--mist:#EFF4FC;
 --sand-tint:#F4F7FC;--sand:#DCE6F4;--line:#D3DDEA;--muted:#4B5D77;--white:#FFFFFF;
 --gold:#C99A4E;--gold-text:#7A5A22;--atlantic:#315EAC;--atlantic-deep:#102C56;
 --label:#31568C;--accent:#E6BC73;--accent-hi:#F1C979;--deep:#040609;--ice:#82B2F3;
 --grain:none;
 --wn-gold-btn:linear-gradient(112deg,#FFECB5,#EDC377 45%,#DAA14E);
 --wn-navy-glass:linear-gradient(125deg,#345D92,#102B58 55%,#08182F);
 --wn-shadow-panel:inset 0 2px 0 #FFFFFF38,inset 0 -5px 0 #0007,0 7px 10px #10213A32,0 29px 42px #10213A34;
 --wn-plate-rosette:url(/assets/engraving.svg);--wn-plate-wave:url(/assets/guilloche-wave.svg);--wn-grain:url(/assets/paper-grain.svg);
}
body{background:#FFFFFF;color:var(--ink)}
h1,h2,h3{font-weight:400;letter-spacing:-.03em}
h1{letter-spacing:-.045em}
h1 em,h2 em,h3 em{font-style:italic;font-weight:400;color:#284577}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
.eyebrow,.sec-id,.wn-label{font:500 .75rem/1.5 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--label)}
.sec-id{border-top-color:var(--label)}
.signature{display:none}

/* ---------- Header, nav, footer ---------- */
.site-header{background:color-mix(in srgb,#FFFDF8 88%,transparent);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}
.brand strong{font:400 1.3rem/1.2 var(--display);letter-spacing:-.01em}
.brand small{color:var(--muted);font-weight:500;letter-spacing:.15em}
.seal{color:#F1C979;border:1px solid #E4BC76;background:linear-gradient(135deg,#2D466D,#071327);box-shadow:inset 0 2px 0 #FFF8,inset 0 -3px 0 #000C,0 0 22px #E4BC7620;font-family:var(--display)}
.desktop-nav a{color:var(--ink);min-height:44px;display:inline-flex;align-items:center}
.desktop-nav a:hover{color:#11294C}
.desktop-nav a[aria-current]{color:var(--atlantic);text-decoration:none}
.nav-resume{border:1px solid #ABC0DD!important;border-radius:4px;background:#fff}
.nav-resume:hover{background:#EAF0FA;color:#11294C}
.mobile-nav summary{border-color:#ABC0DD}
.mobile-nav[open]>nav,.mobile-nav nav{background:#fff}
.mobile-nav nav a[aria-current]{color:var(--atlantic)}
.site-footer{background:var(--deep);color:#E6ECF5;border-top:1px solid #1B2638}
.site-footer .eyebrow{color:var(--accent)}
.site-footer .muted,.colophon{color:#9FB0C8}
.site-footer a:hover{color:#FFE9BE}
.footer-sig{color:var(--accent)}
.colophon{border-top-color:#1B2638}.colophon:before{background:var(--accent)}

/* ---------- Buttons and links ---------- */
.button,.wn-btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:14px 24px;border-radius:5px;font:700 .8rem/1 var(--body);text-decoration:none;color:#142038;
 background:var(--wn-gold-btn);border:1px solid #E3B570;border-top:2px solid #FFFEDE;box-shadow:inset 0 2px 0 #FFFFFF45,inset 0 -3px 0 #93632C88,0 4px 5px #0B193022,0 12px 27px #0B193022;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s}
.button:hover,.wn-btn:hover{color:#142038;background:var(--wn-gold-btn);transform:translateY(-2px);box-shadow:inset 0 1px 0 #FFF9,0 10px 26px #0B193038}
.button.secondary,.wn-btn-quiet{color:#19395F;background:linear-gradient(135deg,#FFFFFF,#E8EFF9);border:1px solid #ABC0DD;border-top:2px solid #fff;box-shadow:inset 0 -2px 0 #BDCBE06B,0 5px 10px #15345A1A}
.button.secondary:hover,.wn-btn-quiet:hover{background:#EAF0FA;color:#11294C;border-color:#4C7AB8}
.text-link,.wn-textlink{min-height:44px;display:inline-flex;align-items:center;gap:6px;color:#19395F;font:600 .82rem/1.2 var(--body);text-decoration:none;border-bottom:1px solid #9DB3D3;padding-bottom:2px}
.text-link:hover,.wn-textlink:hover{color:var(--ink);border-color:#11294C}
@media(prefers-reduced-motion:no-preference){
 .wn-btn:before,.button:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent,#fff6,transparent);transform:translateX(-110%);pointer-events:none}
 .wn-btn:hover:before,.button:hover:before{animation:wn-shine .8s ease}
 @keyframes wn-shine{to{transform:translateX(110%)}}
}
:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid #11294C;outline-offset:3px;border-radius:3px}
:where(.site-footer,.wn-systems,.closing,.wn-results,.wn-case-navy,.wn-build,.stewardship-scene,.algo-hero,.algo-ledger) :where(a,button):focus-visible{outline-color:#FFD894}

/* ---------- Engraved plates and paper tooth (shared) ---------- */
.wn-band,.wn-paper,.page-intro,.wn-systems,.closing,.leadership-scene{position:relative;overflow:hidden;isolation:isolate}
.wn-paper::before,.leadership-scene::before,.wn-systems::before,.closing::before,.page-intro::before,.wn-plate{content:"";position:absolute;z-index:-1;pointer-events:none;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.wn-paper::before,.leadership-scene::before,.wn-plate{-webkit-mask-image:var(--wn-plate-rosette);mask-image:var(--wn-plate-rosette);-webkit-mask-size:contain;mask-size:contain;background-color:rgb(17 41 76/.055)}
.wn-paper::before{right:-170px;bottom:-220px;width:820px;height:820px}
.leadership-scene::before{left:-210px;top:-180px;width:640px;height:640px}
.wn-systems::before,.closing::before{-webkit-mask-image:var(--wn-plate-rosette);mask-image:var(--wn-plate-rosette);-webkit-mask-size:contain;mask-size:contain;background-color:rgb(173 206 248/.10)}
.wn-systems::before{left:-230px;top:-190px;width:900px;height:900px}
.closing::before{right:-180px;top:-140px;width:780px;height:780px;inset:auto;animation:none;mix-blend-mode:normal}
.page-intro::before{left:0;right:0;bottom:-40px;height:260px;-webkit-mask-image:var(--wn-plate-wave);mask-image:var(--wn-plate-wave);-webkit-mask-size:1200px 260px;mask-size:1200px 260px;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;background-color:rgb(17 41 76/.07)}
.wn-paper::after,.page-intro::after,.leadership-scene::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-mask-image:var(--wn-grain);mask-image:var(--wn-grain);-webkit-mask-size:180px 180px;mask-size:180px 180px;background-color:rgb(17 41 76/.028)}

/* ---------- Aurora host and motion control ---------- */
.motion-control{position:fixed;left:20px;bottom:20px;z-index:60;min-height:44px;display:inline-flex;align-items:center;gap:10px;padding:11px 18px;border:1px solid #A8BCD8;border-radius:999px;background:#FFFFFFF2;backdrop-filter:blur(14px);color:#11294C;font:500 12px/1 var(--body);letter-spacing:.13em;text-transform:uppercase;box-shadow:inset 0 1px 0 #FFF,0 2px 6px #0B19301F,0 14px 34px #0B193024;cursor:pointer}
.motion-control:hover{background:#EDF3FC}
.motion-control .glyph{width:9px;height:10px;flex:none;border-left:3px solid #11294C;border-right:3px solid #11294C}
.paused .motion-control .glyph{border:0;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:9px solid #11294C}
@media(max-width:600px),(prefers-reduced-motion:reduce){.motion-control{display:none}}
.paused *,.paused *::before,.paused *::after{animation-play-state:paused!important}

/* ---------- Home: hero ---------- */
.wn-hero{position:relative;overflow:hidden;isolation:isolate;padding:68px 0 56px;background:#fff}
.wn-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(112deg,#FFFFFF 0%,#FFFFFFE6 40%,#FFFFFF66 70%,transparent 90%)}
.wn-plate{right:-5%;top:-16%;width:760px;height:760px;background-color:rgb(17 41 76/.07)}
.wn-hero .container{position:relative;z-index:1}
.wn-hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:75px;align-items:center}
.wn-hero .wn-label{margin:0 0 23px;color:#2A5186}
.wn-hero h1{font-size:clamp(3.4rem,6.5vw,6rem);line-height:1.02;margin:0}
.wn-lead{font-size:1.125rem;line-height:1.7;color:var(--muted);max-width:610px;margin:24px 0 0}
.wn-actions{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-top:27px}
.wn-meta{font-size:.75rem;color:var(--muted);margin:26px 0 0;letter-spacing:.02em}
.wn-folio{position:relative;height:430px;perspective:1000px}
.wn-halo{position:absolute;width:430px;height:430px;left:-14px;top:-7px;border-radius:50%;border:1px solid #7199D381;box-shadow:0 0 55px #4D7BBB25,inset 0 0 50px #6798E41A;opacity:.88}
.wn-halo::before{content:"";position:absolute;inset:23px;border:1px dashed #82b2f340;border-radius:50%}
.wn-halo::after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--accent);left:60px;top:45px;box-shadow:0 0 20px var(--accent)}
.wn-folio-card{position:absolute;inset:26px 10px 18px 10px;padding:36px;border-radius:13px;color:#fff;transform:rotate(-4deg);overflow:hidden;
 border:1px solid #A6C7F19C;border-top:2px solid #E2F0FF;border-left:2px solid #D0E4FF;
 background:linear-gradient(130deg,#3D70AEF2 0%,#102C5FF2 26%,#0B214DF5 70%,#07172CF8 100%);
 box-shadow:inset 0 3px 0 #FFF5,inset 3px 0 0 #DDEFFF26,inset 0 -5px 0 #0008,inset -3px 0 0 #0004,0 7px 10px #0B193040,0 28px 44px #0B193047,0 65px 100px #0B193031,0 -8px 32px #78A7E12B}
.wn-folio-card::after{content:"";position:absolute;inset:-40%;background:linear-gradient(105deg,transparent 40%,#ffffff2a 50%,transparent 60%);transform:translateX(-60%);pointer-events:none}
.wn-topline{display:flex;justify-content:space-between;font:500 .75rem/1.5 var(--body);letter-spacing:.18em;text-transform:uppercase;color:#C8D7EE}
.wn-folio-mark{font:400 4.8rem/1 var(--display);margin:30px 0 0;background:linear-gradient(100deg,#F6DDA4,#E6BC73 40%,#C7953F 70%,#F3D69A);-webkit-background-clip:text;background-clip:text;color:transparent}
.wn-folio-sub{font:400 1.25rem/1.3 var(--display);margin:6px 0 0}
.wn-folio-card ul{list-style:none;margin:22px 0 0;padding:0;font-size:.75rem;color:#C8D7EE}
.wn-folio-card li{border-top:1px solid #8BAEEB32;padding:10px 0}
.wn-note{position:absolute;right:-6px;bottom:-3px;padding:14px 22px;border-radius:7px;transform:rotate(3deg);background:linear-gradient(145deg,#FFFFFF,#F2F5FB);color:#0B1930;font:600 .75rem/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;box-shadow:inset 0 1px 0 #FFF,0 15px 35px #0B193040}
.wn-note strong{display:block;font:400 1.45rem/1.2 var(--display);letter-spacing:0;text-transform:none}
@media(prefers-reduced-motion:no-preference){
 .wn-halo{animation:wn-spin 18s linear infinite}@keyframes wn-spin{to{transform:rotate(360deg)}}
 .wn-folio-card{animation:wn-float 8s ease-in-out infinite alternate}@keyframes wn-float{to{transform:rotate(-3deg) translateY(-8px)}}
 .wn-folio-card::after{animation:wn-glass 7s ease-in-out infinite}@keyframes wn-glass{0%,55%{transform:translateX(-60%)}100%{transform:translateX(60%)}}
 .wn-folio-mark{background-size:200% 100%;animation:wn-gold 9s ease-in-out infinite alternate}@keyframes wn-gold{to{background-position:100% 0}}
}

/* Metric panel */
.wn-results{display:grid;grid-template-columns:repeat(4,1fr);margin-top:22px;border-radius:8px;overflow:hidden;color:#fff;
 background:linear-gradient(115deg,#193D71,#0B2042 55%,#143363);border:1px solid #93B7E5;border-top:2px solid #DCEBFF;
 box-shadow:inset 0 2px 0 #FFF2,inset 0 -4px 0 #0007,0 6px 9px #0B193036,0 20px 35px #0B19303B}
.wn-result{display:block;padding:27px 29px;border-right:1px solid #B8D3FC38;text-decoration:none;color:inherit;transition:background .25s}
.wn-result:last-child{border-right:0}
.wn-result:hover{background:#ffffff0d;color:#fff}
.wn-result strong{display:block;font:400 2.6rem/1.1 var(--display);color:var(--accent-hi)}
.wn-result span{display:block;margin-top:9px;font-size:.75rem;color:#C8D7EE;max-width:22ch}
.wn-scope{font-size:.75rem;color:var(--muted);margin:13px 0 0;max-width:970px}

/* Ticker */
.wn-ticker{overflow:hidden;background:var(--deep);color:#B2C1D9;border-block:1px solid #1B2638;padding:18px 0;font:500 .75rem/1 var(--body);letter-spacing:.15em;text-transform:uppercase}
.wn-ticker span{display:inline-block;min-width:100%;white-space:nowrap}
.wn-ticker b{font-weight:400;color:var(--accent);margin:0 34px}
@media(prefers-reduced-motion:no-preference) and (min-width:601px){.wn-ticker span{animation:wn-ticker 35s linear infinite}@keyframes wn-ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}}

/* Section heads and case cards */
.wn-band{padding:78px 0 82px}
.wn-paper{background:radial-gradient(ellipse at 5% 0%,#FFF9ED,transparent 40%),#FFFFFF}
.wn-head{display:flex;justify-content:space-between;gap:45px;align-items:end;margin-bottom:40px}
.wn-head h2{font-size:clamp(2.2rem,4vw,3.2rem);margin:17px 0 0;line-height:1.05}
.wn-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.wn-case{position:relative;overflow:hidden;padding:26px;border-radius:9px;color:var(--ink);transition:transform .35s,box-shadow .35s;
 background:linear-gradient(135deg,#FFFFFF,#EFF4FC);border:1px solid #B6C6DE;border-top:2px solid #FFF;border-left-color:#FFF;
 box-shadow:inset 0 2px 0 #FFF,inset 0 -3px 0 #CAD7E87A,0 4px 7px #10213A17,0 18px 30px #10213A25}
.wn-case:hover{transform:translateY(-7px);box-shadow:inset 0 1px 0 white,0 9px 12px #101C3233,0 28px 42px #101C322B}
.wn-num{position:absolute;right:15px;top:4px;font:400 4.6rem/1 var(--display);color:#9DB3D35c}
.wn-case h3{font-size:1.85rem;line-height:1.08;margin:49px 0 18px}
.wn-case p{font-size:.84rem;line-height:1.75;color:#4B5D77;margin:0}
.wn-case .wn-outcome{font:400 1.95rem/1.1 var(--display);color:#26406E;margin:24px 0 4px}
.wn-case .wn-caption{font-size:.75rem}
.wn-case .wn-textlink{margin-top:20px}
.wn-case-navy{color:#fff;background:radial-gradient(ellipse at 100% 0%,#345E9E,transparent 65%),linear-gradient(135deg,#163360,#06152D);border-color:#92B2DE;border-top:2px solid #CFDFF9;box-shadow:inset 0 2px 0 #FFF3,inset 0 -4px 0 #0007,0 6px 9px #10213A36,0 24px 33px #10213A36}
.wn-case-navy .wn-label{color:#C8D7EE}
.wn-case-navy p{color:#C8D7EE}
.wn-case-navy .wn-outcome{color:var(--accent-hi)}
.wn-case-navy .wn-num{color:#ffffff1f}
.wn-case-navy .wn-textlink{color:#fff;border-color:#FFD89480}
.wn-case-navy .wn-textlink:hover{color:#FFE9BE;border-color:#FFD894}

/* Systems band and build cards */
.wn-systems{padding:78px 0;background:var(--deep);color:#FFFDF8}
.wn-systems .wn-label{color:var(--accent)}
.wn-systems h2 em{color:var(--accent-hi)}
.wn-systems .wn-textlink,.closing .wn-textlink{color:#FFFDF8;border-color:#FFD89480}
.wn-systems .wn-textlink:hover,.closing .wn-textlink:hover{color:#FFE9BE;border-color:#FFD894}
.wn-systems .wn-cards{gap:28px}
.wn-build{border-radius:9px;overflow:hidden;background:linear-gradient(125deg,#122442,#040A14);border:1px solid #8BAEEB32;border-top:2px solid #C4E2FF70;transition:transform .35s,border-color .35s,box-shadow .35s}
.wn-build:hover{transform:translateY(-6px);border-color:var(--ice);box-shadow:inset 0 1px 0 #FFFFFF45,0 12px 35px #0007,0 0 35px #82B2F31C}
.wn-screen{display:block;position:relative;padding:34px 18px 0;background:linear-gradient(132deg,#2F5799,#102956)}
.wn-dots{position:absolute;left:18px;top:13px;display:flex;gap:6px}.wn-dots i{width:8px;height:8px;border-radius:50%;background:#ffffffb3}
.wn-screen img{display:block;width:100%;height:auto;aspect-ratio:720/450;object-fit:cover;object-position:top;background:#fff;border-radius:5px 5px 0 0;box-shadow:0 10px 30px #0004}
.wn-build-copy{padding:24px}
.wn-badge{display:inline-block;margin:0;padding:5px 9px;border:1px solid #82B2F330;border-radius:3px;color:#A8CEF9;font:500 .75rem/1.3 var(--body);letter-spacing:.08em;text-transform:uppercase}
.wn-build h3{font-size:1.75rem;margin:17px 0 14px}
.wn-build p{font-size:.8rem;line-height:1.7;color:#B2C1D9}
.wn-build .wn-textlink{margin-top:12px}

/* ---------- Shared bands restyled ---------- */
.leadership-scene{background:#fff}
.leadership-scene .statements li{border-color:var(--line)}
.leadership-scene .statements span{color:#9DB3D3}
.margin-notes strong{color:var(--ink)}
.stewardship-scene{background:radial-gradient(ellipse at 85% 0%,#3466A9,transparent 66%),linear-gradient(115deg,#061429,#173460)!important;color:#fff}
.stewardship-scene .eyebrow,.stewardship-scene .stewardship-words{color:var(--accent)}
.stewardship-scene blockquote p{color:#fff}
.closing{color:#fff;background-color:#061021;
 background-image:radial-gradient(ellipse at 72% 18%,rgb(23 54 99/.85),transparent 62%),linear-gradient(104deg,#061021F2 0%,#071C33DE 46%,#0E2B50B5 100%),image-set(url(/assets/img/hero-1200.avif) type("image/avif"),url(/assets/img/hero-1200.webp) type("image/webp"));
 background-size:auto,auto,cover;background-position:center,center,50% 38%;background-repeat:no-repeat;border-top:2px solid #9EBDE6}
.closing::after{display:none}
.closing .eyebrow{color:var(--accent)}
.closing h2{font-size:clamp(2.4rem,5vw,4.1rem);line-height:1.04}
.closing h2 em{color:var(--accent-hi)}
.closing p:not(.eyebrow){color:#D6E0EE}
.closing .button{background:var(--wn-gold-btn);color:#142038}

/* ---------- Page intros (inner pages) ---------- */
.page-intro{background:#fff;padding-block:58px 52px}
.page-intro h1{font-size:clamp(2.8rem,6vw,4.6rem);line-height:1.04}
.page-intro .lead,.page-intro>p{color:var(--muted)}

/* ---------- Navy glass for figures across pages ---------- */
.role-metrics,.impact-figures,.career-metrics,.case-result,.algo-role-card{border-radius:9px}
.case-result{color:#fff;background:var(--wn-navy-glass)!important;border:1px solid #A2C1E4;border-top:2px solid #DDEEFF;border-left-color:#C0D9F7;box-shadow:var(--wn-shadow-panel)}
.case-result .eyebrow,.case-result p,.case-result .evidence-note{color:#C8D7EE}
.case-result h3,.case-result strong{color:var(--accent-hi)}
.case-result a{color:#fff}

/* ---------- Mobile ---------- */
@media(max-width:900px){
 .wn-hero-grid{grid-template-columns:1fr;gap:28px}
 .wn-folio{height:380px;max-width:440px}
 .wn-halo{width:300px;height:300px}
 .wn-cards{grid-template-columns:1fr}
 .wn-head{flex-direction:column;align-items:flex-start;gap:12px}
}
@media(max-width:600px){
 .wn-hero{padding:38px 0 32px}
 .wn-hero h1{font-size:3.1rem}
 .wn-lead{font-size:1rem}
 .wn-actions .wn-btn{width:100%}
 .wn-folio{height:340px}
 .wn-folio-card{padding:24px}
 .wn-folio-mark{font-size:3.8rem}
 .wn-results{grid-template-columns:repeat(2,1fr)}
 .wn-result{border-bottom:1px solid #B8D3FC38;padding:20px}
 .wn-result:nth-child(2n){border-right:0}
 .wn-result:nth-last-child(-n+2){border-bottom:0}
 .wn-result strong{font-size:2rem}
 .wn-band,.wn-systems{padding:56px 0}
 .wn-paper::before,.leadership-scene::before,.wn-systems::before,.closing::before{width:420px;height:420px}
 .wn-paper::after,.page-intro::after,.leadership-scene::after{display:none}
 .page-intro::before{height:170px;-webkit-mask-size:780px 170px;mask-size:780px 170px}
 .wn-plate{width:440px;height:440px;right:-18%;top:-8%}
}

/* Intro bands span the viewport; their content keeps the container measure. */
.page-intro.container{width:100%;max-width:none;padding-inline:max(var(--gutter,24px),calc((100% - 1160px)/2))}

/* Finish: labels clear the card numerals; statements in display case; closing reads left like the proposal. */
.wn-case .wn-label{padding-right:72px}
.statements h3{text-transform:none;font-size:clamp(1.6rem,2.4vw,2rem);letter-spacing:-.02em;line-height:1.1}
.statements span{font-family:var(--display);color:#9DB3D3}
.closing.wn-closing{text-align:left}
.closing.wn-closing h2,.closing.wn-closing p:not(.eyebrow){margin-inline:0;max-width:820px}
.closing.wn-closing .actions{justify-content:flex-start}
.wn-topline{gap:12px}

/* ---------- Experience: white role bands, navy feature band, navy glass stat tiles ---------- */
.role-paper{--entry-bg:#FFFFFF;background:#FFFFFF}
.role-warm{--entry-bg:#F7F9FC;background:#F7F9FC}
.role-sand{--entry-bg:#F4F7FC;--rail:#9DB3D3;background:#F4F7FC}
.role-ink{--entry-bg:#0B1930;--rail:#315EAC;background:radial-gradient(ellipse at 85% 0%,#1E3E75,transparent 60%),linear-gradient(115deg,#061429,#132E54);color:#D6E0EE}
.role-ink .career-body h2,.role-ink .career-meta p:nth-child(2),.role-ink .role-title,.role-ink .impact-list strong{color:#FFFFFF}
.role-ink .eyebrow,.role-ink .role-note,.role-ink .career-body h3{color:var(--accent)}
.role-ink .scope,.role-ink .impact-list,.role-ink .technology,.role-ink .career-meta .muted,.role-ink .career-meta p{color:#C8D7EE}
.role-ink .text-link{color:#fff;border-color:#FFD89480}
.role-title{color:var(--atlantic)}
.career-meta p:nth-child(2)::before{background:var(--accent)}
.role-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;border:0;margin:24px 0 8px}
.role-metrics li{margin:0;padding:20px 20px 18px;min-width:0;border-radius:9px;color:#fff;background:var(--wn-navy-glass);border:1px solid #A2C1E4;border-top:2px solid #DDEEFF;border-left-color:#C0D9F7;box-shadow:inset 0 2px 0 #FFFFFF38,inset 0 -5px 0 #0007,0 7px 10px #10213A24,0 18px 30px #10213A26;position:relative;overflow:hidden}
.role-metrics li::after{content:"";position:absolute;width:120px;height:120px;right:-60px;bottom:-60px;background:#315EAC;filter:blur(45px);pointer-events:none}
.role-metrics strong{position:relative;z-index:1;color:var(--accent-hi);font:400 clamp(1.9rem,2.6vw,2.4rem)/1.1 var(--display)}
.role-metrics span{position:relative;z-index:1;color:#C8D7EE}
.role-ink .role-metrics li{border-color:#5C82B8;border-top-color:#9EBDE6}
.role-metrics{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.role-metrics li{padding:18px 16px 16px}
.role-metrics strong{font-size:clamp(1.45rem,1.9vw,1.75rem);white-space:nowrap}
.role-ink .role-metrics strong{color:var(--accent-hi);font-size:clamp(1.45rem,1.9vw,1.75rem)}

/* ---------- Projects ---------- */
.case-no{color:#9DB3D3;opacity:.45;font-weight:400}
.cs-3 .case-no{color:#ADCEF8;opacity:.28}
.algo-preview{background:radial-gradient(ellipse at 90% 0%,#DCE8FA,transparent 55%),linear-gradient(135deg,#F7F9FC,#FFFFFF 65%)}
.algo-preview .chapter-mark,.algo-preview [class*="mark"]{color:#9DB3D3}
.iso .t{fill:var(--accent)}.iso .l{fill:#315EAC;opacity:.45}.iso .r{fill:#0B1930;opacity:.7}
.cs-3 .iso .l,.cs-3 .iso .r{fill:#C8D7EE}
.flow li:before{border-color:#9DB3D3}
.flow li:after{background:#9DB3D3}

/* ---------- Builds ---------- */
.chapter-number{color:#9DB3D3!important;font-weight:400}
.bg-warm{background:#F7F9FC}.bg-sand{background:#F4F7FC}
.filter-chips button[aria-pressed=true]{background:#0B1930;color:#fff;border-color:#0B1930}
.shot-bar{background:linear-gradient(132deg,#2F5799,#102956)}

/* ---------- Contact: white page, navy glass panel, gold primary tile ---------- */
.contact-scene{position:relative;overflow:hidden;isolation:isolate;background:#fff!important;background-image:none!important;color:var(--ink);padding-block:clamp(3.5rem,8vw,6rem)}
.contact-scene::before{content:"";position:absolute;right:-160px;top:8%;width:700px;height:700px;z-index:-1;pointer-events:none;-webkit-mask:var(--wn-plate-rosette) center/contain no-repeat;mask:var(--wn-plate-rosette) center/contain no-repeat;background-color:rgb(17 41 76/.055)}
.contact-scene .eyebrow{color:var(--label)}
.contact-scene h1{color:var(--ink)}
.contact-scene .lead,.contact-scene .contact-note{color:var(--muted)}
.contact-scene .contact-note{padding:20px 26px;border-left:2px solid var(--atlantic);background:linear-gradient(90deg,#EEF4FD,#F7F9FC00)}
.contact-panel2{padding:28px;border-radius:12px;color:#fff;background:var(--wn-navy-glass);border:1px solid #A2C1E4;border-top:2px solid #DDEEFF;border-left-color:#C0D9F7;box-shadow:var(--wn-shadow-panel)}
.contact-panel2 .contact-title{color:#fff!important;font-size:clamp(1.4rem,2.2vw,1.8rem)}
.contact-scene .contact-actions{grid-template-columns:1fr;gap:14px;border:0}
.contact-scene .contact-action,.contact-scene .contact-actions li .contact-action{padding:20px 22px!important;border:1px solid #8BAEEB55!important;border-radius:6px!important;background:#ffffff0a}
.contact-scene .contact-action span{color:#fff}
.contact-scene .contact-action small{color:#C8D7EE}
.contact-scene .contact-action:hover{background:#ffffff18}
.contact-scene .contact-action.primary{background:var(--wn-gold-btn)!important;border-color:#E3B570!important;border-top:2px solid #FFFEDE!important;box-shadow:inset 0 2px 0 #FFFFFF45,inset 0 -3px 0 #93632C88,0 6px 14px #0004}
.contact-scene .contact-action.primary span{color:#142038}
.contact-scene .contact-action.primary small{color:#3B3220}
.contact-scene .contact-action.static{background:transparent;border-style:dashed!important}

/* ---------- ALGO ---------- */
.algo-hero{background:radial-gradient(ellipse at 85% 0%,#3466A9,transparent 60%),linear-gradient(115deg,#061429,#173460)!important;border-bottom:2px solid #9EBDE6}
.algo-hero .eyebrow,.algo-role-card .eyebrow{color:var(--accent)}
.algo-role-card{background:#ffffff0d!important;border:1px solid #8BAEEB55!important;border-top:2px solid #C4E2FF70!important;border-radius:9px;backdrop-filter:blur(12px)}
.component-index span{color:#6683AE}.component-index p{color:var(--muted)}
.component-index{border-top-color:#9DB3D3!important}
.evidence-boundary{background:#F4F7FC!important;border-color:var(--line)!important}
.algo-ledger{background:radial-gradient(ellipse at 85% 0%,#1E3E75,transparent 60%),linear-gradient(115deg,#061429,#132E54)!important}

/* ---------- Dark theme (system preference), re-tuned for white & navy ----------
   Deep navy canvas, light ink, ice-blue labels, pale engraving. Navy glass panels and the
   gold primary action carry over unchanged; every white surface becomes a navy surface. */
@media(prefers-color-scheme:dark){
 :root{color-scheme:dark;--navy:#E8EEF7;--ink:#E8EEF7;--paper:#07111F;--warm-white:#0C1829;--parchment:#0C1829;--mist:#0F1E33;--sand-tint:#0C1829;--sand:#1B2C45;
  --line:#22344F;--muted:#A3B4CB;--white:#0C1829;--label:#8FB7F4;--gold-text:#E6BC73;--atlantic:#8FB7F4}
 body{background:#07111F;color:#E8EEF7}
 h1 em,h2 em,h3 em{color:#8FB7F4}
 .wn-hero .wn-label{color:#8FB7F4}
 img{filter:brightness(.94)}
 .site-header{background:color-mix(in srgb,#07111F 86%,transparent);border-bottom-color:#22344F}
 .nav-resume,.mobile-nav[open]>nav,.mobile-nav nav{background:#0C1829!important}
 .nav-resume:hover{background:#13243B;color:#fff}
 .desktop-nav a:hover{color:#fff}
 .skip-link{background:#E8EEF7;color:#07111F}
 .text-link,.wn-textlink{color:#D6E4F7;border-color:#4E6E9A}
 .text-link:hover,.wn-textlink:hover{color:#fff;border-color:#8FB7F4}
 .button.secondary,.wn-btn-quiet{color:#E8EEF7;background:linear-gradient(135deg,#13243B,#0C1829);border-color:#36507A;border-top-color:#5A7BAA;box-shadow:0 5px 10px #0005}
 .button.secondary:hover,.wn-btn-quiet:hover{background:#1A2F4D;color:#fff}
 :where(a,button,summary,[tabindex]):focus-visible{outline-color:#FFD894}
 .wn-hero,.wn-paper,.page-intro,.leadership-scene,.contact-scene,.role-paper{background:#07111F!important}
 .role-warm,.role-sand,.bg-warm,.bg-sand,.evidence-boundary{background:#0C1829!important}
 .algo-preview{background:radial-gradient(ellipse at 90% 0%,#13284A,transparent 55%),#0C1829}
 .wn-plate,.wn-paper::before,.leadership-scene::before,.contact-scene::before{background-color:rgb(173 206 248/.07)}
 .page-intro::before{background-color:rgb(173 206 248/.08)}
 .wn-paper::after,.page-intro::after,.leadership-scene::after{background-color:rgb(173 206 248/.03)}
 .wn-note{background:linear-gradient(145deg,#13243B,#0C1829);color:#E8EEF7;box-shadow:inset 0 1px 0 #ffffff1a,0 15px 35px #0008}
 .wn-scope,.wn-meta,.wn-lead{color:#A3B4CB}
 .wn-case{color:#E8EEF7;background:linear-gradient(135deg,#13243B,#0C1829);border-color:#2C4466;border-top-color:#4E6E9A;border-left-color:#2C4466;box-shadow:inset 0 1px 0 #ffffff14,0 4px 7px #0006,0 18px 30px #0007}
 .wn-case p{color:#A3B4CB}.wn-case .wn-outcome{color:#8FB7F4}.wn-num{color:#4E6E9A66}
 .wn-case-navy .wn-outcome{color:var(--accent-hi)}
 .contact-scene .contact-note{background:linear-gradient(90deg,#13243B,#07111F00);border-left-color:#8FB7F4}
 .leadership-scene .statements span,.case-no,.chapter-number,.component-index span{color:#4E6E9A!important}
 .essay-text p{color:#D6DEEA}
 .architecture-flow li,.capability-list article,.control-grid article,.boundary-grid article,.algo-principles,.algo-boundary,.design-card,.evidence-key,.shot-frame,.shot-note,.architecture-svg rect,.process-figure{background:#0C1829!important;fill:#0C1829}
 .case-study .process-figure{box-shadow:0 14px 16px -16px #000}
 .flow li:before{background:#07111F}
 .iso .r{fill:#8FB7F4;opacity:.55}.iso .l{fill:#8FB7F4;opacity:.3}
 .about-intro .portrait img{filter:grayscale(1) sepia(.45) hue-rotate(172deg) saturate(.9) brightness(.9)}
 .motion-control{background:#0C1829F2;color:#E8EEF7;border-color:#36507A}
 .motion-control .glyph{border-color:#E8EEF7}.paused .motion-control .glyph{border-left-color:#E8EEF7}
}
@media(prefers-color-scheme:dark){
 .career-meta .muted,.sys-copy p,.evidence-level{color:var(--muted)}
 .algo-components article,.algo-components li{background:#0C1829!important;border-color:#22344F!important}
 .component-number{color:#8FB7F4}
}
.page-intro.container{margin-inline:0;max-width:100%}
@media(max-width:420px){.brand strong{font-size:1.02rem}.brand small{letter-spacing:.1em}.header-inner{gap:8px}}

/* Smoothness: no live backdrop blur over animated bands (it re-blurs every frame), and the
   ticker on its own compositor layer, moving fast enough to avoid sub-pixel judder. */
.site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#FFFDF8}
.motion-control{backdrop-filter:none;background:#FFFFFF}
.wn-ticker span{will-change:transform;backface-visibility:hidden}
@media(prefers-reduced-motion:no-preference) and (min-width:601px){.wn-ticker span{animation:wn-ticker3d 26s linear infinite}@keyframes wn-ticker3d{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}}
@media(prefers-color-scheme:dark){.site-header{background:#07111F}.motion-control{background:#0C1829}}

/* ---------- Backgrounds: D mesh light, A engraved plate, C ledger graph ----------
   All three move only by transform/clip on their own layers, so the GPU composites them
   without repainting. Paused by the motion control and by reduced motion. */
.wn-mesh{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.wn-mesh span{position:absolute;border-radius:50%;filter:blur(64px);will-change:transform}
.wn-mesh span:nth-child(1){width:46%;height:72%;right:-6%;top:-20%;background:#82B2F3;opacity:.55}
.wn-mesh span:nth-child(2){width:34%;height:58%;right:22%;top:28%;background:#3063AF;opacity:.28}
.wn-mesh span:nth-child(3){width:26%;height:42%;right:4%;bottom:-16%;background:#F0D6A7;opacity:.45}
.wn-mesh::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#fff 0%,#ffffffe6 34%,#ffffff40 68%,transparent)}
.wn-hero::before{display:none}
.contact-scene .wn-mesh::after{background:linear-gradient(100deg,#fff 0%,#ffffffe6 40%,#ffffff55 75%,transparent)}
@media(prefers-reduced-motion:no-preference){
 .wn-mesh span:nth-child(1){animation:wn-m1 22s ease-in-out infinite alternate}
 .wn-mesh span:nth-child(2){animation:wn-m2 28s ease-in-out infinite alternate}
 .wn-mesh span:nth-child(3){animation:wn-m3 34s ease-in-out infinite alternate}
}
@keyframes wn-m1{to{transform:translate3d(-14%,12%,0) scale(1.08)}}
@keyframes wn-m2{to{transform:translate3d(16%,-10%,0) scale(.92)}}
@keyframes wn-m3{to{transform:translate3d(-20%,-16%,0) scale(1.12)}}
@media(max-width:600px){.wn-mesh span{filter:blur(44px)}.wn-mesh span:nth-child(2){display:none}}

/* A. Engraved plate: stronger ink on the white bands and one slow turn */
.wn-paper::before,.leadership-scene::before,.contact-scene::before,.wn-plate{background-color:rgb(17 41 76/.085)}
.closing::before{background-color:rgb(173 206 248/.12)}
@media(prefers-reduced-motion:no-preference){
 .wn-paper::before,.leadership-scene::before,.contact-scene::before,.closing::before,.wn-plate{animation:wn-turn 240s linear infinite;will-change:transform}
 @keyframes wn-turn{to{transform:rotate(360deg)}}
}

/* C. Ledger graph on the dark bands: draws across, holds, fades, repeats */
.wn-systems::before,.algo-hero::before{content:"";position:absolute;inset:0;left:auto;width:min(1200px,100%);height:auto;z-index:0;pointer-events:none;
 -webkit-mask:none;mask:none;mix-blend-mode:normal;opacity:1;transform:none;
 background:url(/assets/ledger-graph.svg) right center/auto 100% no-repeat}
.wn-systems>.container,.algo-hero>*{position:relative;z-index:1}
@media(prefers-reduced-motion:no-preference){
 .wn-systems::before,.algo-hero::before{animation:wn-ledger 18s linear infinite}
 @keyframes wn-ledger{0%{clip-path:inset(0 100% 0 0);opacity:1}55%{clip-path:inset(0 0 0 0);opacity:1}88%{clip-path:inset(0 0 0 0);opacity:1}100%{clip-path:inset(0 0 0 0);opacity:0}}
}
@media(max-width:600px){.wn-systems::before,.algo-hero::before{opacity:.6}}

@media(prefers-color-scheme:dark){
 .wn-mesh span:nth-child(1){background:#3063AF;opacity:.5}.wn-mesh span:nth-child(2){background:#1E3E75;opacity:.6}.wn-mesh span:nth-child(3){background:#E6BC73;opacity:.16}
 .wn-mesh::after,.contact-scene .wn-mesh::after{background:linear-gradient(100deg,#07111F 0%,#07111FE6 36%,#07111F40 70%,transparent)}
 .wn-paper::before,.leadership-scene::before,.contact-scene::before,.wn-plate{background-color:rgb(173 206 248/.08)}
}
/* Ledger graph fitted to the band width; the build cards turn to glass so the series read through them. */
.wn-systems::before{left:0;width:auto;background-size:100% auto;background-position:center 58%}
.algo-hero::before{left:0;width:auto;background-size:100% auto;background-position:center 70%}
.wn-build{background:linear-gradient(125deg,#122442d6,#040A14d6)}
@media(max-width:900px){.wn-systems::before,.algo-hero::before{background-size:auto 70%;background-position:right 60%}}

/* ---------- Photos ---------- */
/* About portrait: full colour, arched frame kept. */
.about-intro .portrait img,.about-intro .portrait:hover img{filter:none!important}
/* Beyond the ledger: the café portrait, labelled as AI-generated. */
.beyond-photo{margin:0 0 28px;max-width:340px}
.beyond-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:10px;border:1px solid #A2C1E4;border-top:2px solid #DDEEFF;box-shadow:0 7px 10px #0004,0 24px 40px #0006}
.beyond-photo figcaption{margin-top:8px;font-size:.75rem;letter-spacing:.06em;color:#C8D7EE}
@media(max-width:760px){.beyond-photo{max-width:260px}}
/* Essay hero: sunset ridge over water under a navy veil. */
.essay-hero{background:linear-gradient(180deg,rgba(6,20,41,.35) 0,rgba(6,20,41,.62) 55%,rgba(16,44,86,.92) 100%),image-set(url(/assets/img/essay-ridge-1122.avif) type("image/avif"),url(/assets/img/essay-ridge-1122.webp) type("image/webp")) right 45%/cover no-repeat!important}
.essay-hero .eyebrow{color:var(--accent)}
.essay-credit{margin:10px 0 0;font-size:.75rem;letter-spacing:.06em;color:#D6E0EE}
