:root{--bg:#080a08;--panel:#0e110d;--text:#eef0e9;--muted:#9ca396;--line:#2c3328;--accent:#c4f58a;--mono:'Cascadia Mono','Consolas',monospace;--sans:'Segoe UI',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.shell{max-width:1440px;margin-inline:auto;padding-inline:64px}.skip{position:fixed;top:12px;left:12px;z-index:20;padding:14px;background:var(--accent);color:var(--bg);transform:translateY(-160%)}.skip:focus{transform:none}header{height:108px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-weight:800;font-size:19px;letter-spacing:-.7px}.brand-mark{color:var(--accent);font-size:27px;vertical-align:-2px;margin-right:8px}.brand-dot{color:var(--muted);font-weight:500}nav{display:flex;align-items:center;gap:34px;font:11px var(--mono)}nav a{padding-block:12px}nav span{font-size:9px;color:var(--accent);margin-left:5px}nav a:hover{color:var(--accent)}.hero{display:grid;grid-template-columns:1fr 1.05fr;min-height:660px;align-items:center;position:relative}.hero-copy{position:relative;z-index:1;padding-block:50px}.eyebrow{font:10px var(--mono);letter-spacing:1.5px;color:var(--accent);line-height:1.7;margin:0 0 25px;display:flex;gap:10px;align-items:center}.status-dot{height:6px;width:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 13px #c4f58a55}h1{font-size:clamp(55px,5.6vw,80px);line-height:1.08;letter-spacing:-4.7px;font-weight:500;margin:0 0 28px}h1 em{font-style:normal;color:var(--accent)}.intro{font-size:14px;line-height:1.95;color:var(--muted);margin:0}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:32px}.button{display:inline-flex;gap:30px;justify-content:space-between;align-items:center;padding:17px 20px;font:11px var(--mono)}.primary{background:var(--accent);color:#17220e}.primary:hover{background:#d7ffac}.button span{font-size:19px}.motion-toggle{border:0;background:none;color:var(--muted);font:9px var(--mono);padding:12px 0;cursor:pointer;border-bottom:1px solid var(--line)}.motion-toggle:hover{color:var(--accent)}figure{margin:0}.hero-art{margin-left:-60px;min-width:0}.planet-frame{position:relative;min-height:360px;display:grid;place-items:center}.planet-frame ascii-art{width:100%;display:block;position:relative;z-index:1}figcaption{font:8px var(--mono);letter-spacing:1px;line-height:1.6;color:#929c84}.hero-art figcaption{display:flex;justify-content:space-between;gap:20px;padding-inline:12%}.art-fallback{color:#a5bf87;font:clamp(9px,1.3vw,15px)/1.6 var(--mono);white-space:pre;text-align:left;margin:0}.planet-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:30px;opacity:.7}.planet-fallback pre{font:inherit;line-height:1.3}.art-loaded .art-fallback{display:none}.hero-rule{border-block:1px solid var(--line);padding-block:19px;display:flex;justify-content:space-between;gap:20px;font:8px var(--mono);letter-spacing:.7px;color:var(--muted)}.hero-rule span:first-child{color:var(--accent)}.section-heading{margin:98px 0 46px;display:flex;justify-content:space-between;align-items:flex-end;gap:32px}h2{font-size:clamp(30px,3.5vw,46px);line-height:1.23;font-weight:500;letter-spacing:-1.8px;margin:0}h2 span{color:var(--muted)}.section-heading p:last-child{color:var(--muted);font-size:12px;line-height:1.95;margin:0}.project{padding:34px;border:1px solid var(--line);background:linear-gradient(145deg,#0e120c77,transparent 65%);min-width:0;scroll-margin-top:25px}.project-featured{display:grid;grid-template-columns:1.05fr 1fr;column-gap:60px;margin-bottom:24px;padding:40px}.project-top{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;min-height:25px}.project-index{font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.badge{font:8px var(--mono);border:1px solid var(--line);padding:6px 8px;color:#b5bdae}.badge.commercial{color:var(--accent);border-color:#50653d}.badge.open{color:#c3d3bc}h3{font-size:29px;line-height:1.3;letter-spacing:-1px;font-weight:600;margin:25px 0 16px}.project-featured h3{font-size:35px}.project-arrow{float:right;font-size:28px;color:#657358;font-weight:400}.project-lead{font-size:23px;letter-spacing:-.6px;line-height:1.35;margin:0 0 18px}.description{font-size:13px;line-height:1.85;color:var(--muted);max-width:490px;margin:0;min-height:74px}.project-art{align-self:center;margin:27px 0 24px;min-width:0}.art-surface{min-height:220px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--panel);border:1px solid #222a1e;padding:20px;position:relative}.art-surface ascii-art{display:block;max-width:100%;font-size:8px;color:#a4b88d}.art-surface .art-fallback{position:absolute;font-size:11px}.project-art figcaption{text-align:center;margin-top:12px;font-size:7px}.project-featured .art-surface{min-height:290px}.project-featured .art-surface ascii-art{font-size:9px}.stack{display:flex;gap:10px 18px;align-items:center;flex-wrap:wrap;border-top:2px dotted #4e5e40;padding-top:13px;margin-top:24px;min-height:43px;font:10px var(--mono);color:#c5ccbd}.stack>span{display:inline-flex;align-items:center;gap:7px;min-height:28px}.tech ascii-art{width:25px;flex:0 0 25px;display:block}.project-access{display:flex;align-items:center;gap:7px;font:9px var(--mono);color:var(--muted);margin-top:17px;min-height:18px}.lock-dot{width:5px;height:5px;border:1px solid #8b947f}.case-details{border-top:1px solid var(--line);margin-top:24px;grid-column:1/-1}summary{cursor:pointer;list-style:none;padding:20px 0 0;display:flex;align-items:center;gap:20px;font:10px var(--mono);line-height:1.7}summary::-webkit-details-marker{display:none}summary:after{content:'+';color:var(--accent);font-size:18px;margin-left:auto}details[open] summary:after{content:'−'}.details-hint{font:7px var(--mono);letter-spacing:1px;color:#8d9982;margin-left:auto}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding-top:20px}.case-grid h4{font:10px var(--mono);color:var(--accent);margin:0 0 10px}.case-grid p{font-size:12px;line-height:1.85;color:var(--muted);margin:0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.project-grid .case-grid{grid-template-columns:1fr;gap:20px}.project-grid .project{height:100%}.source-link{display:flex;justify-content:space-between;gap:20px;font:10px var(--mono);color:var(--accent);padding-top:17px;min-height:35px}.source-link:hover{text-decoration:underline;text-underline-offset:4px}.code-art{min-height:220px;margin:27px 0 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #222a1e;background:repeating-linear-gradient(0deg,transparent,transparent 22px,#7d986b08 23px),var(--panel);color:#acbba0;font:11px var(--mono);text-align:center}.code-art div{display:grid;gap:10px;justify-items:center}.code-art b{font-weight:400;color:#657358}.code-art i{font-style:normal;color:#728764;margin-inline:12px}.accent{color:var(--accent)}.code-art small{margin-top:23px;font:7px var(--mono);letter-spacing:1px;color:#929c84}.section-note{font:9px/1.9 var(--mono);color:var(--muted);margin:23px 0 0;max-width:800px}.approach{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:110px 0;border-bottom:1px solid var(--line)}.about-lead{font-size:23px;line-height:1.6;letter-spacing:-.4px;margin:0 0 22px}.about-body{font-size:13px;line-height:1.9;color:var(--muted);margin:0}.principles{list-style:none;padding:0;margin:30px 0 0}.principles li{display:flex;gap:20px;border-top:1px solid var(--line);padding-block:19px}.principles li>span{font:9px var(--mono);color:var(--accent);padding-top:5px}.principles h3{font-size:13px;letter-spacing:0;margin:0 0 6px}.principles p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.contact{padding-block:70px 80px;display:flex;justify-content:space-between;align-items:center;gap:50px}.contact p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.9;margin:22px 0 0}.contact-link{border-bottom:1px solid var(--accent);padding:20px 0;min-width:300px}.contact-link>span{font:9px var(--mono);color:var(--muted);letter-spacing:1px}.contact-link strong{display:block;font-size:30px;letter-spacing:-1px;font-weight:500;margin-top:12px}.contact-link b{color:var(--accent);font-weight:400;float:right;margin-left:22px}.contact-link:hover strong{color:var(--accent)}footer{border-top:1px solid var(--line);padding-block:28px;display:flex;justify-content:space-between;gap:20px;font:8px/1.8 var(--mono);color:var(--muted)}footer a:hover{color:var(--accent)}
@media(min-width:1550px){.hero{min-height:740px}.planet-frame{min-height:420px}}
@media(max-width:1050px){.shell{padding-inline:36px}h1{font-size:63px;letter-spacing:-3.5px}.hero{min-height:600px}.hero-art{margin-left:-45px}.project-featured{gap:30px;padding:30px}.project{padding:27px}.project-lead{font-size:21px}.approach{gap:40px}.details-hint{display:none}.hero-art figcaption{font-size:7px;padding-inline:5%}.art-surface{padding:12px}.project-featured .art-surface ascii-art{font-size:7px}}
@media(max-width:760px){.shell{padding-inline:24px}header{height:85px}nav{gap:19px;font-size:10px}.brand{font-size:17px}.brand-dot{display:none}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:55px 0 20px}h1{font-size:clamp(48px,9vw,68px)}.hero-art{margin:0 auto 30px;width:min(100%,570px)}.planet-frame{min-height:280px}.planet-fallback{font-size:24px}.hero-art figcaption{padding-inline:8%}.scroll-label{display:none}.hero-rule{font-size:7px}.section-heading{margin:65px 0 30px;display:block}.section-heading p:last-child{margin-top:23px;font-size:12px}.project-featured{grid-template-columns:1fr;padding:26px}.project-featured .project-art{margin:24px 0 0}.project-featured .art-surface{min-height:230px}.project-featured .art-surface ascii-art{font-size:8px}.case-grid{grid-template-columns:1fr;gap:22px}.project-grid{grid-template-columns:1fr;gap:20px}.project{padding:26px}.project-top{gap:8px}.description{min-height:0}.art-surface ascii-art{font-size:8px}.approach{grid-template-columns:1fr;gap:30px;padding-block:70px}.about-lead{font-size:21px}.contact{align-items:flex-start;flex-direction:column;gap:15px;padding-block:55px}.contact-link{min-width:min(100%,310px)}footer{flex-wrap:wrap;font-size:7px}footer span{width:100%}.art-fallback{font-size:11px}.project-lead{font-size:23px}}
@media(max-width:390px){.shell{padding-inline:18px}nav{gap:13px;font-size:9px}.project{padding:21px}h1{font-size:46px;letter-spacing:-2.5px}.hero-actions{gap:13px}.button{gap:19px;padding:15px}.hero-rule{gap:20px;font-size:6px}.art-surface ascii-art{font-size:6.5px}.project-featured .art-surface ascii-art{font-size:6.5px}.project-index{font-size:8px}.badge{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
/* Readable stack markers: accents identify technologies, not measured code shares. */
.stack{border-top:0;position:relative;padding-top:22px;margin-top:27px;gap:12px 18px;font-size:12px;color:#e8efdf;min-height:90px}
.stack:before{content:"";position:absolute;inset:0 0 auto;height:8px;background:linear-gradient(90deg,#78afe8 0 34%,#c4f58a 34% 67%,#d6ba78 67%);border-radius:2px}
.stack>span{gap:12px;min-height:58px}
.tech ascii-art{width:60px;flex:0 0 60px;min-height:58px;filter:brightness(1.35) saturate(1.12)}
.tech ascii-art canvas{width:60px!important;height:auto!important;display:block}
.project .description{font-size:14px;line-height:1.85}
.case-grid p{font-size:13px}
.resume-soon{font:11px var(--mono);color:var(--muted);display:inline-block;margin-top:26px;padding:12px 0;border-bottom:1px solid var(--line)}
@media(max-width:560px){.stack{font-size:11px;gap:10px 15px}.tech ascii-art,.tech ascii-art canvas{width:54px!important}.tech ascii-art{flex-basis:54px}.project .description{font-size:13px}}
@media(min-width:761px) and (max-width:1000px){.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding-block:55px 20px}.hero-art{width:min(100%,600px);margin:0 auto 35px}.planet-frame{min-height:290px}.project-grid{grid-template-columns:1fr}.project-featured{grid-template-columns:1fr}.project-featured .project-art{margin-top:25px}.case-grid{grid-template-columns:1fr}.approach{gap:35px}.contact-link{min-width:230px}}
#agent-first-mac .art-surface ascii-art{width:150px;max-width:65%;flex:0 0 auto}
#agent-first-mac .art-surface{min-height:245px}
/* Repository byte composition, independent of tech names and authorship. */
.stack{display:block;padding-top:0}.stack:before{display:none}.language-bar{display:flex;width:100%;height:10px;gap:2px;overflow:hidden;border-radius:2px}.language-bar i{display:block;min-width:1px}.stack-items{display:flex;gap:15px 23px;align-items:center;flex-wrap:wrap;padding-block:16px 10px}.stack-items .tech{display:flex;align-items:center;gap:10px;min-height:60px}.stack-items b{display:block;font-size:11px;color:var(--muted);margin-top:5px;font-weight:400}.stack-source{font:9px var(--mono);color:var(--muted)}
.hero{isolation:isolate;min-height:640px}.hero-art{position:absolute;inset:-1px calc(-1 * clamp(24px,4.5vw,64px));margin:0!important;width:auto!important;z-index:-2;overflow:hidden}.planet-frame{width:100%;height:100%;min-height:0!important}.planet-frame ascii-art{position:absolute;inset:0;width:100%;height:100%}.planet-frame canvas{width:100%!important;height:100%!important;object-fit:cover}.hero:after{content:"";position:absolute;inset:0 -64px;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#080a08f5 0%,#080a08d9 24%,#080a0870 49%,#080a0810 78%)}.hero-copy{max-width:650px;padding-block:90px}.hero h1{font-size:clamp(48px,5.6vw,80px)}
@media(max-width:760px){.hero{min-height:650px;display:flex;align-items:center}.hero-copy{padding-block:65px;max-width:100%}.hero-art{inset:0 -24px}.planet-frame ascii-art{width:150%;left:-8%}.hero:after{inset:0 -24px;background:linear-gradient(90deg,#080a08e8,#080a0870),linear-gradient(0deg,#080a08 0%,transparent 35%)}.stack-items{gap:12px 18px}.stack-items .tech{min-height:54px}}
#jobconveyor .art-surface ascii-art,#teleastra .art-surface ascii-art,#vibewine .art-surface ascii-art{font-size:9px;line-height:1.15;color:#c4d9ac}
@media(max-width:560px){#jobconveyor .art-surface ascii-art,#teleastra .art-surface ascii-art,#vibewine .art-surface ascii-art{font-size:7px}}
.hero-art,.hero:after{left:-64px;right:-64px}
@media(max-width:1050px){.hero-art,.hero:after{left:-36px;right:-36px}}
@media(max-width:760px){.hero-art,.hero:after{left:-24px;right:-24px}}
@media(max-width:390px){.hero-art,.hero:after{left:-18px;right:-18px}}

#vibewine .art-surface ascii-art{font-size:14px;line-height:1.15;color:#d4e9bd}
@media(max-width:560px){#vibewine .art-surface ascii-art{font-size:12px}}
.ascii-divider{display:flex;justify-content:center;align-items:center;gap:22px;overflow:hidden;margin:65px auto 0;color:#6f845c;font:14px/1.4 var(--mono);white-space:nowrap}.ascii-divider b{color:var(--accent);font-size:22px;font-weight:400}.approach{padding-top:70px}.approach-art{margin-top:40px;max-width:100%;overflow:hidden;color:#badc94}.approach-art ascii-art{display:block;font:11px/1.35 var(--mono)}@media(max-width:1050px){.approach-art ascii-art{font-size:8px}}@media(max-width:760px){.approach-art{margin-top:26px}.approach-art ascii-art{font-size:8px}.ascii-divider{gap:12px;font-size:10px;margin-top:45px}}
