:root{font-family:Barlow,Arial,sans-serif;color:#17251f;background:#f3f5ef;font-synthesis:none;--ink:#17251f;--muted:#59655e;--accent:#294b39;--line:#aebbb0;--paper:#f3f5ef;--surface:#fafbf7;--display:'Barlow Condensed','Arial Narrow',sans-serif}*{box-sizing:border-box}body{margin:0;padding:28px 28px 0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #47745a;outline-offset:4px}[hidden]{display:none!important}.sr-only,.contact-honeypot{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:15px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}.site-shell{max-width:1500px;margin:0 auto 24px;border:1px solid var(--ink);background:var(--paper);transition:margin-right .25s}.site-header{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 28px;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--display);font-size:27px;font-weight:600;letter-spacing:3px;text-transform:uppercase;white-space:nowrap}.site-header nav{display:flex;gap:20px;align-items:center;font-size:15px}.site-header nav a,.site-header nav button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;padding:0;min-width:44px;min-height:44px;border:0;background:none;font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:1.25;appearance:none}.site-header nav [aria-pressed=true]{box-shadow:inset 0 -2px var(--accent)}.site-meta{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:48px;padding:10px 28px;border-bottom:1px solid var(--line);font-size:14px;letter-spacing:.02em}.site-meta i{display:inline-block;height:12px;border-left:1px solid var(--muted);margin:0 14px}.meta-note{font-size:12px;color:var(--muted)}main{min-width:0}.architecture-hero,.portfolio-page,.conversation,.evidence-page main{background-image:linear-gradient(#294b3906 1px,transparent 1px),linear-gradient(90deg,#294b3906 1px,transparent 1px);background-size:32px 32px}.architecture-hero{display:grid;grid-template-columns:24% 1fr;gap:25px;padding:32px 28px 12px;min-height:450px}.hero-intro h1{font-family:var(--display);font-size:clamp(54px,5.8vw,84px);font-weight:700;line-height:.91;letter-spacing:-1.8px;margin:0 0 24px}.hero-intro p{font-size:18px;line-height:1.45;margin:20px 0}.hero-intro .method-note{font-size:11px;line-height:1.6;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:24px}.short-rule{display:block;width:34px;border-top:3px solid var(--accent)}.project-map{position:relative;min-height:430px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:24px;align-items:stretch;padding:8px 0}.map-connectors{position:absolute;inset:0;width:100%;height:100%;stroke:#54745f;fill:none;stroke-width:1;pointer-events:none}.map-connectors rect{fill:var(--paper)}.map-card{position:relative;border:1px solid #526b59;background:#f5f7f0d9;padding:22px;text-align:left;overflow:hidden;display:flex;align-items:flex-start;min-width:0;transition:background .18s,transform .18s;min-height:196px}.map-card:hover{background:#e8eee4;transform:translateY(-3px);text-decoration:none}.map-card:active{transform:translateY(0)}.map-card h2{font-family:var(--display);font-size:30px;line-height:1.05;margin:0 25px 12px 0;font-weight:600}.map-card p{font-size:15px;line-height:1.4;margin:0;max-width:23ch}.map-card small{display:block;font-size:9px;letter-spacing:1.7px;line-height:1.55;text-transform:uppercase;margin-top:22px}.map-card>div{position:relative;z-index:1;flex:1;min-width:0}.map-card img{width:43%;height:180px;object-fit:contain;align-self:center;margin-left:8px}.card-arrow{position:absolute;right:16px;top:13px;font-size:23px;line-height:1}.map-coinbell{grid-column:1 / 3;width:65%;justify-self:center}.map-enterprise{grid-column:1;grid-row:2}.map-cloud{grid-column:2;grid-row:2}.map-cloud h2{font-size:28px}.map-cloud img{width:38%;opacity:.8}.composer-dock{padding:22px 28px 18px;background:#f3f5eff2;border-top:1px solid transparent;position:sticky;bottom:0;z-index:12}.composer-dock form{display:flex;align-items:stretch;max-width:940px;margin:auto;background:#fbfcf9;border:1px solid #385440;min-height:60px}.composer-icon{padding:17px 0 0 19px;font-size:20px}.composer-dock textarea{flex:1;resize:none;min-width:0;background:transparent;border:0;padding:17px 18px;line-height:1.45;outline-offset:-4px;font-size:17px;max-height:120px;color:var(--ink)}.composer-dock textarea::placeholder{color:#69746e}.composer-dock #send{background:var(--accent);color:#fff;border:0;min-width:94px;font-size:18px;font-family:var(--display);letter-spacing:.4px;padding:12px 24px}.composer-dock #send:hover{background:#1d3829}.composer-notes{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:11px;line-height:1.45}.composer-notes p{margin:0}.composer-notes button{border:0;background:none;text-decoration:underline;text-underline-offset:3px;padding:4px}.composer-notes #ai-status{font-size:10px}.composer-dock #form-status{margin:5px auto 0;max-width:940px;font-size:13px;color:#805033}.site-footer{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);min-height:80px}.site-footer>a,.site-footer>button{padding:17px 20px;display:grid;grid-template-columns:24px 1fr;gap:2px 8px;align-content:center;border:0;border-right:1px solid var(--line);background:none;text-align:left;font-family:var(--display)}.site-footer>:last-child{border-right:0}.site-footer b{font-size:18px;font-weight:500;letter-spacing:.6px}.site-footer span{font-size:11px;color:var(--muted);grid-row:1 / 3;padding-top:4px}.site-footer small{font-family:Barlow,sans-serif;font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}.site-footer button:hover,.site-footer a:hover,.site-footer [aria-pressed=true]{background:#e6ede2;text-decoration:none}.portfolio-page{padding:22px 30px 30px;min-height:450px}.back-link{display:inline-block;font-size:14px;padding:9px 0;border:0;background:none;min-height:40px}.page-heading{font:600 clamp(36px,4.5vw,64px)/1 var(--display);letter-spacing:-.7px;margin:24px 0 12px}.page-lead{font-size:18px;line-height:1.5;color:var(--muted);max-width:65ch;margin:0 0 30px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-card{position:relative;border:1px solid #637965;background:#f8faf4c9;padding:26px;min-width:0}.project-card .project-art{position:absolute;right:14px;top:34px;width:36%;height:150px;object-fit:contain;pointer-events:none}.project-card h3{font:600 32px/1.1 var(--display);margin:10px 0 12px;max-width:70%}.project-card>p{line-height:1.6;max-width:62%;font-size:16px;min-height:54px}.card-kicker{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted)}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tags span{font-size:11px;color:var(--muted);border-bottom:1px solid var(--line);padding:4px 0}.card-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.card-actions a,.card-actions button,.context-contact,.project-followups button,.project-context-links a,.plain-button{border:1px solid #849887;background:none;min-height:42px;padding:10px 14px;font-size:14px;line-height:1.35;text-align:left}.card-actions a:hover,.card-actions button:hover,.context-contact:hover,.project-followups button:hover,.project-context-links a:hover{background:#e3eadf;text-decoration:none}.project-card details{margin-top:16px;font-size:14px;line-height:1.6}.project-card summary,summary{cursor:pointer;min-height:40px;padding:8px 0}.project-card ul,.role-card ul{padding-left:18px;line-height:1.65}.project-context-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(160px,.65fr);gap:24px}.project-context-card .page-heading{margin-top:16px}.project-detail-art{width:100%;height:auto;object-fit:contain;max-width:380px;justify-self:center;align-self:center;opacity:.9}.project-description{font-size:21px;line-height:1.45;max-width:34ch}.project-detail-sections{display:grid;gap:24px;margin-top:26px}.project-detail-sections h3{font:600 24px/1.2 var(--display);margin:0 0 8px}.project-detail-sections p{font-size:16px;line-height:1.6;margin:0;max-width:64ch}.project-context-links,.project-followups,.project-context-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:20px}.project-context-links{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px}.project-context-actions{grid-column:1/-1}.project-context-actions>.project-followups{margin-top:0}.project-context-actions button{min-height:44px}.project-context-links a{border:0;text-decoration:underline;text-underline-offset:4px;padding:6px 0;margin-right:12px}.primary-contact{background:var(--accent);color:#fff}.role-card{position:relative;padding:24px 0 24px 30px;border-left:1px solid #91a18d;margin-left:110px;max-width:1000px}.role-card:before{content:'';position:absolute;width:8px;height:8px;background:var(--accent);left:-4px;top:32px}.role-card header{display:flex;justify-content:space-between;gap:20px}.role-card h3{font:600 28px/1.15 var(--display);margin:0 0 8px}.role-card h4{font-size:16px;font-weight:500;margin:0 0 12px}.role-card .dates{position:absolute;right:calc(100% + 18px);width:92px;font-size:12px;line-height:1.45;top:26px}.role-card details{font-size:15px;line-height:1.6}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.skills-card{padding:24px;border:1px solid #879d89;background:#f8faf4b3;font-size:16px;line-height:1.8}.skills-card h3{font:600 29px/1.1 var(--display);margin:0 0 16px}.skills-card ul{padding-left:18px}.certifications{margin-top:30px;border-top:1px solid var(--line);padding-top:14px}.certifications summary{font:600 25px/1.2 var(--display)}.certifications li{font-size:15px;line-height:1.6;margin:9px 0}.github-cards{grid-template-columns:1fr}.github-cards .project-card{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:24px;align-items:start}.github-cards .project-art{position:static;width:140px;height:140px}.github-cards h3,.github-cards .repo-info>p{max-width:none;overflow-wrap:anywhere}.github-cards h3{margin-top:3px}.github-cards .card-actions{margin:0;display:grid}.github-note,.github-caveat{font-size:13px;line-height:1.6;color:var(--muted)}.github-directory{border-top:1px solid var(--line);padding-top:15px;margin-top:28px}.github-directory li{margin:12px 0;overflow-wrap:anywhere;font-size:15px}.conversation{padding:20px 30px;min-height:450px}.conversation-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;gap:16px}.conversation-head span{font-size:14px;color:var(--muted)}#messages{max-width:1050px;margin:0 auto}.message{margin:30px 0;scroll-margin-top:24px}.message.user{margin-left:auto;background:#e6ece3;padding:16px 20px;border-left:2px solid #93a88f;font-size:17px;line-height:1.5;max-width:72ch;width:fit-content}.message.assistant{padding:8px 0 22px}.assistant-label{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:1.5px;margin-bottom:17px}.assistant-monogram{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--accent);font:500 14px var(--display);letter-spacing:0}.answer-text{font-size:17px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere;max-width:76ch}.answer-text a{text-decoration:underline;text-underline-offset:4px}.source-link{display:inline-block;margin:18px 20px 0 0;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:4px;border:0;background:none;padding:3px 0}.pending{font-size:15px;color:var(--muted);padding:20px 0}.pending:after{content:'·';display:inline-block;animation:pulse 1s infinite;margin-left:6px}.error-message{font-size:14px;line-height:1.6;border-left:2px solid #aa7057;padding:12px;margin-top:16px}.error-message button{display:inline-block;border:1px solid var(--line);background:transparent;padding:9px 12px;margin:8px 8px 0 0}.agent-diagram{margin:24px 0;max-width:100%;border:1px solid #859b87;padding:18px;background:#f8faf4}.agent-diagram h3{font:600 25px var(--display);margin:0 0 10px}.agent-diagram p{font-size:14px;line-height:1.5}.agent-diagram svg{max-width:100%;height:auto;display:block}.agent-diagram-viewport,.diagram-viewport{overflow:auto;max-width:100%}.agent-diagram details{font-size:13px}.cv-tab{position:fixed;right:0;top:154px;z-index:31;display:flex;flex-direction:column;gap:10px;align-items:center;padding:15px 8px;background:var(--accent);color:white;border:1px solid var(--accent);font:500 16px var(--display);min-width:32px}.cv-tab span{font-size:22px}.cv-drawer{position:fixed;right:0;top:0;bottom:0;width:min(440px,34vw);background:#fafbf7;border-left:1px solid var(--ink);z-index:40;box-shadow:-12px 0 30px #182e2110;display:flex;flex-direction:column}.cv-drawer-head{display:flex;gap:14px;align-items:center;padding:20px;border-bottom:1px solid var(--line);flex-shrink:0}.cv-drawer-head h2{font:600 26px/1 var(--display);margin:0 auto 0 0}.cv-drawer-head a{font-size:12px;text-decoration:underline;white-space:nowrap}.cv-drawer-head button{background:none;border:0;font-size:28px;min-width:36px;min-height:36px}.cv-scroll{overflow:auto;padding:24px;overscroll-behavior:contain}.cv-open .site-shell{margin-right:min(440px,34vw)}.cv-open .cv-tab{right:min(440px,34vw)}.cv-open .map-card{padding:15px}.cv-open .map-card img{width:35%;height:135px}.cv-open .map-card small{display:none}.cv-open .architecture-hero{grid-template-columns:25% 1fr;gap:16px}.cv-open .hero-intro h1{font-size:clamp(48px,5vw,70px)}.cv-backdrop{position:fixed;inset:0;background:#13251a66;z-index:35}.resume-text{display:block!important;margin:0;padding:0;background:none;border:0}.resume-title-block h2,.resume-title-block h1{font:600 31px/1.15 var(--display);margin:0 0 12px}.resume-title-block p{font-size:14px;line-height:1.5}.resume-section-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0 24px;font-size:14px}.resume-section-nav a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border:1px solid var(--line);line-height:1.35;overflow-wrap:anywhere}.resume-section-nav a:hover{background:#e3eadf;text-decoration:none}.cv-section{border-top:1px solid var(--line);padding:20px 0;font-size:14px;line-height:1.6}.cv-section h2{font:600 26px/1.1 var(--display);margin:0 0 15px}.cv-section h3{font:600 22px/1.2 var(--display);margin:15px 0 4px}.cv-section h4{font-size:14px;margin:7px 0}.cv-section ul{padding-left:18px}.cv-section li{margin:9px 0}.cv-section p{margin:10px 0}.cv-section summary{font-size:15px}.resume-contact{display:grid;gap:10px;font-size:14px;border-top:1px solid var(--line);padding-top:20px}.resume-back{display:none}.business-card-stage{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;min-width:0;min-height:calc(100svh - 120px);padding:32px 16px}.about-standalone{padding:28px;background-image:linear-gradient(#294b3905 1px,transparent 1px),linear-gradient(90deg,#294b3905 1px,transparent 1px);background-size:32px 32px}.standalone-back{font-size:15px;display:inline-block;min-height:44px;padding:12px}.business-card{width:min(730px,100%);perspective:1400px;min-height:345px}.business-card-inner{position:relative;min-height:345px;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.2,1)}.business-card.is-flipped .business-card-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;background:#fafbf6;border:1px solid #799078;box-shadow:0 7px 24px #233c2220;backface-visibility:hidden;padding:22px;min-height:345px}.card-front{display:grid;grid-template-columns:38% 1fr;gap:28px;align-items:center}.card-back{transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:center;padding:30px 38px}.about-portrait{height:298px;width:100%;overflow:hidden;position:relative;background:#ccd0d5}.about-portrait img{position:absolute;width:350%;height:auto;max-width:none;left:-116%;top:-87%}.card-name{font:600 clamp(38px,5vw,62px)/.97 var(--display);letter-spacing:-1px;margin:0 0 26px;text-transform:uppercase;max-width:200px}.card-role{font-size:19px;margin:0 0 8px}.card-location{font-size:14px;color:var(--muted);margin:0}.flip-surface{position:absolute;inset:0;background:none;border:0;text-align:right;padding:20px;font-size:13px;display:flex;align-items:flex-end;justify-content:flex-end}.postcard-contact{display:grid;gap:17px;font-size:17px;margin-bottom:22px}.postcard-contact a,.postcard-contact button{display:block;text-align:left;border:0;background:none;padding:0;min-height:28px;overflow-wrap:anywhere}.postcard-contact a:hover,.postcard-contact button:hover{text-decoration:underline}.postcard-share{border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding-top:15px}.postcard-share button{background:none;border:0;min-height:40px;font-size:14px;text-decoration:underline;text-underline-offset:4px}.share-status{font-size:12px;flex-basis:100%;color:var(--muted)}.postcard-share input{max-width:100%;padding:10px;border:1px solid var(--line)}.flip-back{position:absolute;bottom:16px;right:18px;border:0;background:none;font-size:22px;padding:6px 12px}.card-back .postcard-share{margin-right:42px}.about-local .assistant-label{display:none}body[data-view=about] .site-header,body[data-view=about] .site-meta,body[data-view=about] .site-footer,body[data-view=about] .composer-dock,body[data-view=about]>.cv-tab{display:none}body[data-view=about] .site-shell{border:0;background:none}body[data-view=about] .portfolio-page{background:none}body[data-view=about] #page-content{display:grid;place-items:center;min-height:calc(100svh - 140px)}body[data-view=about] .business-card{width:min(730px,100%)}dialog{max-width:min(640px,calc(100vw - 32px));width:600px;max-height:calc(100svh - 48px);overflow:auto;background:#fafbf7;color:var(--ink);border:1px solid #607c66;padding:30px;box-shadow:0 20px 80px #17251f33}dialog::backdrop{background:#15291c66;backdrop-filter:blur(3px)}dialog>form[method=dialog]{display:flex;justify-content:flex-end;margin-bottom:10px}.dialog-close{background:none;border:0;min-height:38px;padding:6px 0;text-decoration:underline}.letter-top{display:flex;justify-content:space-between;align-items:center;font-size:14px}.letter-top p{margin:0}.letter-top p span{margin-right:14px;font-size:10px;letter-spacing:2px}.stamp{border:1px solid var(--line);padding:12px;font:500 22px var(--display)}dialog h2{font:600 38px/1.1 var(--display);margin:15px 0}.muted,dialog .muted{color:var(--muted);font-size:15px;line-height:1.5}dialog label{display:grid;gap:8px;font-size:14px;margin:18px 0}dialog input,dialog textarea{border:1px solid #9daa9c;background:#fff;padding:12px;width:100%;min-width:0;color:var(--ink);border-radius:0}dialog textarea{resize:vertical}.letter-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}.letter-bottom small{font-size:12px;color:var(--muted);line-height:1.5;max-width:65%}.solid-button,.letter-bottom button[type=submit]{border:1px solid var(--accent);background:var(--accent);color:white;padding:12px 24px;min-height:45px}.share-email-form label{display:grid}dialog [role=status]{font-size:14px;line-height:1.5}.proof-page main,.evidence-page main{padding:30px}.evidence-page h1{font:600 clamp(42px,5.5vw,72px)/1 var(--display);margin:20px 0}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.7px;color:var(--muted)}.proof-lead{font-size:18px;line-height:1.5;max-width:65ch}.proof-jumps{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;margin:26px 0}.proof-jumps a{text-decoration:underline;text-underline-offset:4px}.evidence-case{position:relative;border-top:1px solid var(--line);padding:30px 30% 30px 0;min-height:250px}.evidence-case h2{font:600 38px var(--display);margin:8px 0}.evidence-case h3{font:600 22px var(--display)}.evidence-case p,.evidence-case li{font-size:16px;line-height:1.65}.evidence-case ul{padding-left:20px}.evidence-case .evidence-art{position:absolute;right:0;top:45px;width:26%;height:250px;object-fit:contain}.proof-links{display:flex;gap:18px;flex-wrap:wrap;font-size:14px}.proof-links a{text-decoration:underline;text-underline-offset:4px}.proof-note{font-size:14px;line-height:1.6;color:var(--muted);border-left:2px solid var(--line);padding-left:16px}@keyframes pulse{50%{opacity:.2}}
@media(min-width:1600px){.cv-open .site-shell{max-width:calc(100vw - 496px)}}
@media(max-width:1050px){body{padding:18px 18px 0}.site-header{padding:10px 22px}.site-meta{padding:10px 22px}.meta-note{display:none}.architecture-hero{padding:26px 22px 12px;grid-template-columns:25% 1fr;gap:18px}.hero-intro h1{font-size:65px}.map-card{padding:17px}.map-card h2{font-size:27px}.map-card img{height:150px;width:38%}.map-card small{font-size:8px}.map-coinbell{width:80%}.project-map{gap:18px;min-height:400px}.map-cloud h2{font-size:24px}.map-card p{font-size:14px}.site-footer>a,.site-footer>button{padding:16px 12px}.cv-drawer{width:380px}.cv-open .site-shell{margin-right:380px}.cv-open .cv-tab{right:380px}.cv-open .architecture-hero{grid-template-columns:1fr}.cv-open .hero-intro h1 br{display:none}.cv-open .hero-intro h1{font-size:52px;line-height:1.05;max-width:9ch}.cv-open .hero-intro .method-note{display:none}.cv-open .project-map{min-height:380px}.cv-open .cards,.cv-open .skills-grid{grid-template-columns:1fr}.github-cards .project-card{grid-template-columns:110px minmax(0,1fr)}.github-cards .project-art{width:100px;height:120px}.github-cards .card-actions{grid-column:2;display:flex}.project-context-card{grid-template-columns:1fr}.project-detail-art{max-width:240px;grid-column:1;grid-row:2}.role-card{margin-left:100px}}
@media(max-width:760px){body{padding:12px 12px 125px}.site-shell{margin-bottom:0}.site-header{min-height:58px;padding:8px 16px;gap:12px}.wordmark{font-size:22px;letter-spacing:2px}.site-header nav{gap:12px;font-size:12px}.site-header nav [data-topic=projects]{display:none}.site-meta{font-size:12px;min-height:38px;padding:8px 16px}.site-meta i{margin:0 10px}.architecture-hero{grid-template-columns:1fr;gap:18px;padding:24px 16px 22px;min-height:0}.hero-intro{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;align-items:center}.hero-intro h1{font-size:56px;letter-spacing:-1px;grid-column:1;grid-row:1/3;margin:0}.hero-intro p{font-size:14px;line-height:1.5;margin:0;grid-column:2}.hero-intro p br{display:none}.hero-intro .method-note{font-size:9px;margin:0;line-height:1.7}.hero-intro .short-rule{display:none}.project-map{display:flex;flex-direction:column;gap:14px;min-height:0;padding:0}.map-connectors{display:none}.map-card,.map-coinbell{width:100%;min-height:138px;padding:18px;align-items:center}.map-card h2,.map-cloud h2{font-size:29px;margin:0 20px 8px 0}.map-card p{font-size:14px;max-width:24ch}.map-card small{display:none}.map-card img,.map-cloud img{width:33%;height:110px;margin:0 9px 0 0}.card-arrow{right:11px;top:10px;font-size:21px}.composer-dock{position:fixed;bottom:0;left:12px;right:12px;padding:10px 0 8px;background:#f3f5eff7;z-index:20;border-top:1px solid var(--line)}.composer-dock form{min-height:52px}.composer-dock textarea{font-size:16px;padding:13px 10px}.composer-dock #send{min-width:64px;padding:10px 14px;font-size:17px}.composer-icon{padding:13px 0 0 12px;font-size:19px}.composer-notes{font-size:10px;gap:4px 10px;margin-top:4px}.composer-notes .input-storage-note{flex-basis:100%;text-align:center;font-size:10px}.composer-notes #hero-contact{display:none}.composer-notes #ai-status{font-size:10px}.site-footer{min-height:64px}.site-footer>a,.site-footer>button{display:flex;justify-content:center;align-items:center;padding:12px 5px}.site-footer b{font-size:15px;letter-spacing:.2px}.site-footer small,.site-footer span{display:none}.portfolio-page{padding:14px 17px 26px;min-height:400px}.page-heading{font-size:42px;line-height:1.04;margin:18px 0 15px}.page-lead{font-size:16px;margin-bottom:24px}.cards,.skills-grid{grid-template-columns:1fr;gap:18px}.project-card{padding:20px}.project-card h3{font-size:31px}.project-card .project-art{width:33%;height:120px;top:35px;right:12px}.project-card>p{font-size:15px;min-height:45px}.card-kicker{font-size:9px}.card-actions{gap:9px}.card-actions a,.card-actions button{font-size:13px;padding:10px;min-height:44px}.tags{margin:14px 0;gap:6px 14px}.project-context-card{gap:15px}.project-description{font-size:19px}.project-detail-art{max-width:210px;grid-row:auto}.project-detail-sections{gap:20px}.project-detail-sections h3{font-size:24px}.project-detail-sections p{font-size:15px}.project-context-actions{display:grid;gap:12px}.project-followups{margin-top:0;gap:8px}.project-followups button{font-size:13px;min-height:44px}.project-context-links{font-size:13px;gap:9px;margin-top:6px}.role-card{margin-left:70px;padding:22px 0 22px 20px}.role-card .dates{width:63px;font-size:11px;right:calc(100% + 10px);top:25px}.role-card h3{font-size:27px;line-height:1.15}.role-card h4{font-size:14px;line-height:1.5}.role-card details{font-size:14px}.skills-card{padding:20px;font-size:15px;line-height:1.7}.skills-card h3{font-size:29px}.github-cards .project-card{grid-template-columns:72px minmax(0,1fr);gap:13px}.github-cards .project-art{width:72px;height:100px;margin-top:15px}.github-cards h3{font-size:27px;max-width:100%}.github-cards .repo-info>p{font-size:14px;line-height:1.55}.github-cards .card-actions{grid-column:1/-1;display:flex;justify-content:flex-end}.github-note,.github-caveat{font-size:12px}.conversation{padding:12px 16px}.conversation-head{align-items:flex-start}.conversation-head span{font-size:12px}.message{margin:22px 0}.message.user{padding:12px 15px;font-size:16px}.answer-text{font-size:16px;line-height:1.7}.assistant-label{font-size:10px}.agent-diagram{padding:10px;margin:18px 0;overflow:auto}.agent-diagram svg{min-width:480px;max-width:none}.agent-diagram h3{font-size:24px}.source-link{margin:14px 13px 0 0;font-size:11px}.cv-tab{top:115px;padding:12px 6px;min-width:26px;font-size:15px}.cv-tab span{font-size:17px}.cv-drawer{width:min(94vw,430px)}.cv-open .site-shell{margin-right:0}.cv-open .cv-tab{right:min(94vw,430px)}.cv-open{overflow:hidden}.cv-drawer-head{padding:18px 15px;gap:10px}.cv-drawer-head h2{font-size:25px}.cv-drawer-head a{font-size:11px}.cv-scroll{padding:22px 18px}.business-card-stage{padding:32px 8px;min-height:calc(100svh - 100px)}.about-standalone{padding:14px 14px 24px}.standalone-back{padding:9px}.business-card{width:min(420px,100%);min-height:525px}.business-card-inner{min-height:525px}.card-face{min-height:525px;padding:18px}.card-front{grid-template-columns:1fr;gap:18px;align-content:start}.about-portrait{height:270px;width:100%}.about-portrait img{width:260%;left:-78%;top:-81%}.card-name{font-size:47px;line-height:.98;max-width:none;margin:0 0 12px}.card-role{font-size:17px;margin-bottom:7px}.card-location{font-size:13px}.flip-surface{padding:16px;font-size:12px}.card-back{padding:30px 22px}.postcard-contact{font-size:16px;gap:23px;margin-bottom:27px}.postcard-share{gap:10px 18px}.postcard-share button{font-size:13px}.card-back .postcard-share{margin-right:0;padding-bottom:35px}.flip-back{bottom:20px}.about-local .business-card{min-width:0}body[data-view=about]{padding-bottom:20px}body[data-view=about] .portfolio-page{padding:6px}body[data-view=about] #page-content{min-height:calc(100svh - 90px);padding:18px 8px}.evidence-page main{padding:22px 18px}.evidence-page h1{font-size:48px}.evidence-case{padding:26px 0}.evidence-case .evidence-art{position:static;float:right;width:110px;height:125px;margin:0 0 14px 12px}.evidence-case h2{font-size:33px}.evidence-case p,.evidence-case li{font-size:15px}.proof-lead{font-size:16px}.proof-jumps{gap:12px;font-size:13px}.evidence-page{padding-bottom:20px}dialog{padding:22px;max-height:calc(100svh - 32px)}dialog h2{font-size:33px}.letter-bottom{align-items:flex-start}.letter-bottom small{max-width:62%}.letter-bottom button{padding:11px 18px}dialog input,dialog textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.business-card.is-flipped .business-card-inner,.card-back{transform:none}.card-face[aria-hidden=true]{visibility:hidden}}
@media print{body{padding:0;background:white}.site-shell,.cv-tab,.cv-backdrop,dialog{display:none!important}.cv-drawer{display:block!important;position:static;width:100%;border:0;box-shadow:none}.cv-drawer-head{display:none}.cv-scroll{overflow:visible;padding:0}.resume-text{display:block!important}.cv-section{break-inside:avoid}details>*{display:block!important}.cv-section summary{display:none}}
/* Diagram primitives retain semantic graph connections at every viewport. */
.diagram-node{fill:#f8faf4;stroke:#829882;stroke-width:1.2}.diagram-node-label{fill:#17251f;font:14px Barlow,Arial,sans-serif}.diagram-edge{fill:none;stroke:#385b44;stroke-width:1.5}.diagram-arrow{fill:#385b44}.diagram-edge-label{fill:#385440;font:12px Barlow,Arial,sans-serif;paint-order:stroke;stroke:#f8faf4;stroke-width:4px}.diagram-details{margin-top:12px;font-size:14px;line-height:1.6}.diagram-details ul{padding-left:22px}.diagram-sources{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}.diagram-viewport svg{max-width:none;margin-inline:auto}.diagram-viewport:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

@media(min-width:1051px){.cv-open .hero-intro h1{font-size:50px}.cv-open .map-card h2{font-size:25px}}

/* Keep the prior pixel portrait uncropped inside the business card. */
.about-portrait.pixel-portrait{display:flex;align-items:center;justify-content:center;background:var(--paper)}.about-portrait.pixel-portrait img,.about-portrait.pixel-portrait canvas{position:static;display:block;width:100%;height:100%;max-width:100%;left:auto;top:auto;object-fit:contain;aspect-ratio:1}

.project-work-card{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding:22px 26px;border:1px solid var(--line);background:#eaf0e6;margin:0 0 8px}.work-availability{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.06em;margin:0 0 8px;color:var(--accent)}.work-availability span{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}.project-work-card h2{font:600 30px/1.08 var(--display);margin:0 0 8px}.project-work-copy{font-size:15px;line-height:1.5;margin:0;color:var(--muted);max-width:62ch}.project-work-card button{display:flex;align-items:center;justify-content:center;gap:18px;flex-shrink:0;min-height:46px;padding:13px 18px;color:var(--paper);background:var(--accent);border:1px solid var(--accent);font-size:15px;line-height:1.3}.project-work-card button:hover{background:#1f3c2c}.project-work-card button span{font-size:19px}
@media(max-width:760px){.project-work-card{flex-direction:column;align-items:stretch;gap:18px;padding:20px;margin:0}.project-work-card h2{font-size:29px}.project-work-copy{font-size:14px}.project-work-card button{width:100%;justify-content:space-between}}

.project-work-card>div{flex:1 1 320px;min-width:0}@media(max-width:760px){.project-work-card>div{flex:auto}}

/* Phone layout: shrink grid tracks to viewport, never to an unbroken label. */
.mobile-resume-open{display:none}.card-arrow svg{display:block}
@media(max-width:760px){
 body{padding:10px 10px var(--composer-space,180px);width:100%;min-width:0}
 .site-shell{width:100%;min-width:0;margin-bottom:12px}.architecture-hero{grid-template-columns:minmax(0,1fr);padding:24px 14px 20px;gap:20px}.hero-intro,.project-map,.portfolio-page,.conversation{min-width:0;max-width:100%}
 .hero-intro{display:block}.hero-intro h1,.cv-open .hero-intro h1{font-size:clamp(40px,12vw,56px);line-height:1.02;letter-spacing:-1px;max-width:100%;margin:0 0 14px;overflow-wrap:normal}.hero-intro h1 br{display:none}.hero-intro>p{font-size:15px;line-height:1.5;max-width:32ch}.hero-intro .method-note{display:none}
 .project-map{width:100%;align-items:stretch}.map-card,.map-coinbell{width:100%;max-width:100%;min-width:0;min-height:136px;padding:18px 14px;gap:10px}.map-card>div{flex:1 1 0;min-width:0}.map-card h2,.map-cloud h2,.cv-open .map-card h2{font-size:clamp(24px,7vw,29px);margin:0 0 8px;overflow-wrap:anywhere}.map-card p{font-size:14px;line-height:1.45;max-width:none}.map-card img,.map-cloud img,.cv-open .map-card img{flex:0 0 28%;width:28%;max-width:100px;height:98px;margin:0}.card-arrow{top:10px;right:10px;font-size:16px}
 .site-header{padding:10px 14px;gap:10px;flex-wrap:wrap}.wordmark{font-size:24px;letter-spacing:1.5px}.site-header nav{gap:14px;margin-left:auto}.site-meta{padding:6px 14px;gap:8px;flex-wrap:wrap}.site-meta>span{min-width:0}.mobile-resume-open{display:block;background:none;border:1px solid var(--line);padding:8px 10px;min-height:36px;color:var(--accent);font-size:12px;margin-left:auto}.cv-tab{display:none}
 .site-footer{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer>a,.site-footer>button{min-width:0;min-height:48px;padding:10px 8px;border-bottom:1px solid var(--line)}.site-footer>:nth-child(2){border-right:0}.site-footer b{font-size:17px;line-height:1.2;text-align:center}
 .composer-dock{left:10px;right:10px;width:auto;padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));bottom:0}.composer-dock form{width:100%;min-width:0}.composer-dock textarea{min-width:0;font-size:16px}.composer-notes .input-storage-note{font-size:10px;line-height:1.4;padding:0 6px}.composer-notes{flex-wrap:wrap}
 .project-card,.skills-card,.repo-info,.card-actions{min-width:0}.project-card h3,.project-card p,.repo-info{overflow-wrap:anywhere}.postcard-contact{overflow-wrap:anywhere}
}

/* Give the standalone mount a real width; its card faces are absolutely positioned. */
#about-card-mount{width:100%;max-width:730px;min-width:0}
@media(max-width:760px){#about-card-mount{max-width:420px}}

/* Scope warnings are normal replies with an explicit, high-contrast warning label. */
.scope-warning{max-width:76ch;margin-top:16px;padding:16px 18px;border:1px solid #b78936;border-left:4px solid #946317;background:#fff4d6;color:#604514;border-radius:4px}
.scope-warning-label{display:block;margin-bottom:6px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
@media(forced-colors:active){.scope-warning{border-color:CanvasText;background:Canvas;color:CanvasText}}
