:root{--lad-ink:#0a0a0a;--lad-paper:#f6f4ee;--lad-surface:#ece8df;--lad-accent:#d97706;--lad-green:#0b3d2e;--lad-muted:#5f5a52;--lad-border:#111111;--lad-shadow:10px 10px 0 #111111}*{box-sizing:border-box}html{overflow-y:scroll}body,html{margin:0;padding:0}body{--bg-lines-shift:0px;--bg-lines-shift-x:0px;--bg-shape-shift:0px;--bg-shape-shift-x:0px;--hero-font:"Space Grotesk","Segoe UI",sans-serif;background:radial-gradient(circle at 10% 10%,#fffefb 0,var(--lad-paper) 40%,#e9e4d8 100%);color:var(--lad-ink);font-family:"Space Grotesk","Segoe UI",sans-serif;line-height:1.6;overflow-x:hidden;min-height:100vh;transition:background .35s,color .25s}body::before{content:"";position:fixed;inset:0;pointer-events:none;background-image:repeating-linear-gradient(45deg,rgba(11,61,46,.04) 0,rgba(11,61,46,.04) 1px,transparent 1px,transparent 24px);z-index:-1;transform:translate3d(var(--bg-lines-shift-x),var(--bg-lines-shift),0);opacity:.9}body::after{content:"";position:fixed;left:-9vw;top:-10vh;width:min(48vw,760px);height:120vh;background:#090909;clip-path:polygon(0 0,92% 0,72% 18%,88% 44%,62% 66%,94% 100%,0 100%,12% 58%);transform:translate3d(var(--bg-shape-shift-x),var(--bg-shape-shift),0);z-index:-2;opacity:.985}.site-nav,footer,main{position:relative;z-index:1}a{color:var(--lad-green)}a:focus,a:hover{color:#082a20}.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#fff;border:2px solid #000;padding:.5rem .75rem;z-index:1000}.site-nav{border-bottom:3px solid var(--lad-border);background:rgba(246,244,238,.96);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.navbar-brand{font-family:"IBM Plex Mono",monospace;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.nav-link{font-weight:600;text-transform:uppercase;letter-spacing:.02em}.nav-link.active{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:0.3rem}.hero-wrap{padding:6rem 0 4rem;position:relative}.hero-grid{border:3px solid var(--lad-border);background:linear-gradient(165deg,rgba(255,254,249,.98) 0,rgba(242,237,226,.98) 55%,rgba(236,230,217,.98) 100%);box-shadow:14px 14px 0 #111}.hero-copy{padding:2.25rem}.hero-badge{display:inline-block;padding:.25rem .65rem;background:var(--lad-accent);color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.hero-title{margin-top:1rem;font-size:clamp(2rem, 5vw, 4.2rem);line-height:.98;font-weight:700;font-family:var(--hero-font);letter-spacing:-.02em;text-transform:uppercase}.hero-sub{max-width:58ch;color:#2f2d2b;font-size:1.1rem}.hero-lead{max-width:62ch;font-size:1.05rem}.hero-points{list-style:none;padding:0;margin:1.25rem 0 0}.hero-points li{padding-left:1.1rem;position:relative;margin-bottom:.45rem}.hero-points li::before{content:"+";position:absolute;left:0;top:0;font-family:"IBM Plex Mono",monospace;font-weight:700;color:var(--lad-accent)}.hero-art{background:linear-gradient(145deg,#0b0b0b,#151515 38%,#0b3d2e 92%);min-height:360px;position:relative;overflow:hidden;border-left:3px solid var(--lad-border)}.hero-art::after,.hero-art::before{content:"";position:absolute;border:2px solid #f6f4ee;opacity:.3}.hero-art::before{width:220px;height:220px;right:-40px;top:24px;transform:rotate(20deg)}.hero-art::after{width:180px;height:180px;left:18px;bottom:18px;transform:rotate(-12deg)}.hero-art-content{position:relative;z-index:1;color:#fff;padding:2rem}.mode-control{display:inline-flex;align-items:center;gap:.45rem;border:2px solid rgba(246,244,238,.55);background:rgba(10,10,10,.45);padding:.35rem;margin-bottom:1rem;flex-wrap:wrap}.nav-mode-control{margin-left:1rem;align-self:center;background:rgba(17,17,17,.08);border-color:rgba(17,17,17,.3)}.nav-mode-control .mode-label{color:rgba(17,17,17,.72)}.nav-mode-control .mode-chip{color:#111;border-color:rgba(17,17,17,.35)}.nav-mode-control .mode-chip.is-active,.section-shell-dark{background:#111;color:#f6f4ee}.nav-mode-control .mode-tone{color:rgba(17,17,17,.66);border-color:rgba(17,17,17,.25)}.mode-label{font-family:"IBM Plex Mono",monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:rgba(246,244,238,.8);padding:0 .2rem}.mode-chip{border:1px solid rgba(246,244,238,.5);background:0 0;color:#f6f4ee;font-family:"IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;padding:.3rem .5rem}.mode-chip.is-active{background:#f6f4ee;color:#111}.mode-chip:focus-visible{outline:#f6f4ee solid 2px;outline-offset:1px}.mode-tone{margin-left:.15rem;border:1px dashed rgba(246,244,238,.45);padding:.26rem .46rem;font-family:"IBM Plex Mono",monospace;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:rgba(246,244,238,.82)}.hero-art-list{list-style:none;padding:0;margin:1rem 0 0}.hero-art-list li{border-top:1px solid rgba(255,255,255,.2);padding:.7rem 0}.hero-art-list strong{display:block;font-size:.9rem;text-transform:uppercase;letter-spacing:.04em}.kicker{font-family:"IBM Plex Mono",monospace;letter-spacing:.05em;text-transform:uppercase;font-size:.8rem;color:var(--lad-muted)}.section-shell{border:3px solid var(--lad-border);background:rgba(255,255,255,.97);box-shadow:var(--lad-shadow);padding:2rem}.section-shell-dark .kicker,.section-shell-dark .section-title,.section-shell-dark h3,.section-shell-dark li,.section-shell-dark p,.signal-panel h2,.signal-panel h3,.signal-panel li,.signal-panel p{color:#f6f4ee}.section-shell-dark .kicker,.signal-panel .kicker{color:rgba(246,244,238,.72)}.section-title{font-size:clamp(1.5rem, 2.2vw, 2.1rem);letter-spacing:.015em;text-transform:uppercase;margin-bottom:1rem}.mono{font-family:"IBM Plex Mono",monospace}.stat-box{border:2px solid var(--lad-border);background:var(--lad-surface);padding:1rem;height:100%}.stat-value{font-size:1.6rem;font-weight:700;margin:0}.stat-label{margin:0;color:#37332d}.skill-chip{border:2px solid var(--lad-border);display:inline-block;margin:.25rem;padding:.35rem .55rem;background:#fff;font-weight:600;font-size:.9rem}.project-card{border:3px solid var(--lad-border);box-shadow:8px 8px 0 #111;height:100%;transition:transform .2s,box-shadow .2s;background:rgba(255,255,255,.98)}.project-card .card-body{position:relative;padding-top:1.25rem;background:#fffefb}.project-card .card-body::before{content:"";position:absolute;left:1rem;right:1rem;top:0;height:4px;background:linear-gradient(90deg,#111 0,var(--lad-accent) 45%,#0b3d2e 100%)}.project-card .card-body::after{content:"";position:absolute;right:1rem;bottom:.9rem;width:54px;height:54px;border:2px solid rgba(17,17,17,.18);transform:rotate(12deg)}.project-card:nth-of-type(odd){transform:rotate(-.35deg)}.project-card:nth-of-type(2n){transform:rotate(.28deg)}@media (max-width:1199.98px){.project-card:nth-of-type(2n),.project-card:nth-of-type(odd){transform:none}}.project-card:hover{transform:translate(-2px,-2px)}.cta-band{border:3px solid #111;background:linear-gradient(120deg,#d97706 0,#b35f04 100%);color:#fff;box-shadow:var(--lad-shadow);padding:2rem}.issue-grid-card{border:3px solid #111;background:rgba(255,255,255,.97);padding:1.5rem;box-shadow:8px 8px 0 #111;height:100%}.problem-ribbon{border:3px solid #111;background:#111;color:#f6f4ee;box-shadow:12px 12px 0 #111;overflow:hidden}.problem-ribbon-inner{display:flex;gap:.5rem;flex-wrap:wrap;white-space:normal;padding:.65rem 1rem;font-family:"IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.problem-ribbon-inner span{padding:.2rem .55rem;border:1px solid rgba(246,244,238,.45)}.matrix-panel{border:3px solid #111;background:rgba(255,255,255,.97);box-shadow:12px 12px 0 #111;padding:1.75rem}.matrix-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:1rem}.matrix-cell{border:2px solid #111;background:var(--lad-surface);padding:.8rem}.matrix-cell h3{font-size:.95rem;text-transform:uppercase;margin-bottom:.35rem}.matrix-cell p{margin-bottom:0;font-size:.93rem}.issue-grid-card h3{text-transform:uppercase;font-size:1rem;margin-bottom:.75rem}.signal-panel{border:3px solid #111;background:linear-gradient(160deg,rgba(17,17,17,.96),rgba(11,61,46,.96));color:#f6f4ee;box-shadow:var(--lad-shadow);padding:2rem}.signal-list{list-style:none;padding:0;margin:0}.signal-list li{border-top:1px solid rgba(255,255,255,.2);padding:.85rem 0}.project-link{font-weight:700;text-transform:uppercase;letter-spacing:.03em;text-decoration:none}.project-link::after{content:" ->"}html[data-mode=afterhours] body{--lad-accent:#db2e00;--lad-green:#005a4e;--lad-surface:#f4dfd7;background:radial-gradient(circle at 76% 12%,#ffd6c6 0,#f5d5c4 24%,#ecd3c9 48%,#d9c7be 100%)}html[data-mode=afterhours] body::before{opacity:1;background-image:repeating-linear-gradient(-38deg,rgba(219,46,0,.12) 0,rgba(219,46,0,.12) 1px,transparent 1px,transparent 20px)}html[data-mode=afterhours] body::after{left:-12vw;width:min(55vw,860px);background:#2a0600;clip-path:polygon(0 0,100% 0,74% 22%,94% 38%,68% 62%,100% 100%,0 100%,10% 56%);opacity:.96}html[data-mode=afterhours] .contact-card,html[data-mode=afterhours] .cta-band,html[data-mode=afterhours] .detail-block,html[data-mode=afterhours] .hero-grid,html[data-mode=afterhours] .issue-grid-card,html[data-mode=afterhours] .matrix-panel,html[data-mode=afterhours] .project-card,html[data-mode=afterhours] .section-shell,html[data-mode=afterhours] .signal-panel{box-shadow:14px 14px 0 #2a0600}html[data-mode=afterhours] .hero-art{background:linear-gradient(140deg,#2a0600 0,#5c1200 46%,#005a4e 100%)}html[data-mode=afterhours] .project-card:nth-of-type(odd){transform:rotate(-.9deg)}html[data-mode=afterhours] .project-card:nth-of-type(2n){transform:rotate(.75deg)}html[data-mode=afterhours] .problem-ribbon{background:#2a0600}html[data-mode=afterhours] .btn-lad-primary{background:#db2e00}html[data-mode=afterhours] .btn-lad-primary:focus,html[data-mode=afterhours] .btn-lad-primary:hover{background:#b12200}html[data-mode=blueprint] body{--lad-accent:#0e7490;--lad-green:#1d4ed8;--lad-surface:#e3ecf7;background:radial-gradient(circle at 14% 10%,#f5fbff 0,#e9f2fa 34%,#d7e6f2 70%,#c5d6e3 100%)}html[data-mode=blueprint] body::before{opacity:.95;background-image:repeating-linear-gradient(90deg,rgba(10,83,151,.09) 0,rgba(10,83,151,.09) 1px,transparent 1px,transparent 28px),repeating-linear-gradient(0deg,rgba(10,83,151,.07) 0,rgba(10,83,151,.07) 1px,transparent 1px,transparent 28px)}html[data-mode=blueprint] body::after{left:auto;right:-14vw;width:min(44vw,700px);background:#041734;clip-path:polygon(8% 0,100% 0,100% 100%,0 100%,24% 74%,0 52%,18% 28%);opacity:.92}html[data-mode=blueprint] .contact-card,html[data-mode=blueprint] .cta-band,html[data-mode=blueprint] .detail-block,html[data-mode=blueprint] .hero-grid,html[data-mode=blueprint] .issue-grid-card,html[data-mode=blueprint] .matrix-panel,html[data-mode=blueprint] .project-card,html[data-mode=blueprint] .section-shell,html[data-mode=blueprint] .signal-panel{box-shadow:10px 10px 0 #041734}html[data-mode=blueprint] .hero-art{background:linear-gradient(140deg,#041734 0,#0a2f6f 45%,#0e7490 100%)}html[data-mode=blueprint] .project-card:nth-of-type(2n),html[data-mode=blueprint] .project-card:nth-of-type(odd){transform:none}html[data-mode=blueprint] .problem-ribbon{background:#041734}html[data-mode=blueprint] .btn-lad-primary{background:#1d4ed8}html[data-mode=blueprint] .btn-lad-primary:focus,html[data-mode=blueprint] .btn-lad-primary:hover{background:#173eb0}.detail-hero,.timeline-item{margin-bottom:1.5rem}.detail-block{border:3px solid #111;background:rgba(255,255,255,.97);box-shadow:8px 8px 0 #111;padding:1.75rem;height:100%}.detail-stat{border:2px solid #111;padding:1rem;background:var(--lad-surface);height:100%}.detail-stat strong{display:block;font-size:1.35rem}.eyebrow-line{display:inline-block;background:#111;color:#fff;padding:.25rem .55rem;font-family:"IBM Plex Mono",monospace;text-transform:uppercase;font-size:.75rem;letter-spacing:.04em}.resume-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}.resume-meta div{border:2px solid #111;background:var(--lad-surface);padding:.9rem}.compact-list{padding-left:1rem;margin-bottom:0}.compact-list li+li{margin-top:.4rem}.muted-note{color:var(--lad-muted);font-size:.95rem}footer{border-top:3px solid #111;background:#efe9dd}.timeline{border-left:3px solid #111;padding-left:1.1rem}.timeline-item h3{margin-bottom:.25rem;font-size:1.15rem}.timeline-item p{margin-bottom:.45rem}.contact-card{border:3px solid #111;background:#fff;padding:1.5rem;box-shadow:8px 8px 0 #111}.form-control,.form-control:focus,.form-select,.form-select:focus{border:2px solid #111;box-shadow:none}.btn-lad{border:2px solid #111;border-radius:0;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.65rem 1rem}.btn-lad-primary{color:#fff;background:var(--lad-green)}.btn-lad-primary:focus,.btn-lad-primary:hover{color:#fff;background:#0a2f24}.btn-lad-outline{color:#111;background:#fff}.btn-lad-outline:focus,.btn-lad-outline:hover{color:#111;background:#efe9dd}.reveal{opacity:1;transform:none}html.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .45s,transform .45s}html.js .reveal.is-visible{opacity:1;transform:translateY(0)}@media (max-width:991.98px){body::after{width:70vw;left:-20vw;opacity:.94}.matrix-grid,.resume-meta{grid-template-columns:1fr}.problem-ribbon-inner{font-size:.72rem;gap:.4rem}.nav-mode-control{margin-left:0;margin-top:.75rem;width:100%}.hero-art{min-height:250px;border-left:0;border-top:3px solid #111}.hero-wrap{padding-top:5rem}.section-shell{padding:1.4rem}}@media (prefers-reduced-motion:reduce){.project-card,.reveal{transition:none}}