@charset "UTF-8";
:root{color-scheme:dark;--bg:#121412;--panel:#1a1e19;--text:#edf0e8;--muted:#a8ada3;--line:#353b32;--accent:#c8fa74;--radius:3px;--max:1360px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{border-radius:0}::selection{background:var(--accent);color:var(--bg)}p{line-height:1.65}h1,h2,h3,p{margin-top:0}h2{font-size:clamp(40px,4.8vw,67px);font-weight:500;line-height:1.03;letter-spacing:-.055em;margin-bottom:30px}h3{letter-spacing:-.035em}svg{display:block}.accent{color:var(--accent)}.section-shell{max-width:var(--max);margin:auto;padding-left:56px;padding-right:56px}.eyebrow,.small-label,.mono,.system-head,.system-footer,.hero-bottom,.visual-label,.project-meta,.diagram-bottom,.illustration-note,.skill-groups>div>span,.timeline-dates,.lab-badge,.canvas-label,.footer,.dialog-bottom{font-family:"Courier New",monospace;font-size:11px;letter-spacing:.07em;line-height:1.5}.eyebrow{color:var(--muted)}.header{height:91px;padding:0 56px;max-width:var(--max);margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.wordmark{font-size:28px;letter-spacing:-1.5px;font-weight:700}.header nav{display:flex;gap:32px;font-size:13px}.header nav a{color:#b5bbaf;transition:color .2s}.header nav a:hover{color:var(--accent)}.header-contact{font-size:13px;border-bottom:1px solid var(--muted);padding-bottom:5px}.header-contact span{margin-left:18px}.hero{padding-top:76px;display:grid;grid-template-columns:1.35fr 1fr;column-gap:45px;position:relative}.hero h1{font-size:clamp(72px,8.4vw,118px);letter-spacing:-.075em;font-weight:500;line-height:.94;margin:29px 0 30px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:10px;box-shadow:0 0 14px #c8fa7430}.hero-description{font-size:16px;color:var(--muted);max-width:450px;margin-bottom:30px}.hero-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;gap:30px;align-items:center;justify-content:space-between;padding:17px 23px;font-size:13px;border:1px solid var(--line);transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button.primary{color:#15220d;background:var(--accent);border-color:var(--accent);font-weight:600}.button.primary:hover{background:#dcffa2}.button.secondary{background:transparent}.button.secondary:hover{background:#ffffff0b}.text-button{border:0;background:none;padding:4px 0;font-size:13px;text-align:left}.text-button:hover{color:var(--accent)}.hero-actions .text-button span{margin-left:8px}.system{align-self:center;border:1px solid var(--line);background:radial-gradient(ellipse at center,#28332366,transparent 65%);margin-top:50px;transform:rotate(2deg)}.system-head{padding:17px 20px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--muted)}.system-live{color:var(--accent)}.system-map{position:relative;aspect-ratio:420 / 330;margin:0 12px}.connections{position:absolute;width:100%;height:100%}.connections path{stroke:#c8fa7460;fill:none;stroke-dasharray:4 5}.connections circle{stroke:#c8fa741c;fill:none;stroke-width:1}.core{position:absolute;top:50%;left:50%;width:31%;aspect-ratio:1;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;flex-direction:column;background:#c8fa74;color:#17200f;border-radius:50%;box-shadow:0 0 55px #c8fa7414}.core>span{font-size:44px;font-weight:700;letter-spacing:-4px}.core small{font-family:monospace;font-size:6px;letter-spacing:.025em;margin-top:7px}.node{position:absolute;width:24%;height:27%;background:#1b2019;border:1px solid #485440;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;transition:transform .2s,background .2s,border-color .2s}.node:hover{transform:translateY(-3px);border-color:var(--accent)}.node.is-active{background:#2e3c22;border-color:var(--accent);color:var(--accent)}.node>span:last-child{font-family:monospace;font-size:8px;letter-spacing:.05em}.node-symbol{font-size:25px}.node-ui{left:7%;top:8%}.node-api{right:7%;top:8%}.node-data{left:7%;bottom:8%}.node-team{right:7%;bottom:8%}.system-detail{padding:0 24px 14px;min-height:105px}.system-detail p{font-size:13px;color:var(--muted);margin:10px 0 0;line-height:1.6}.system-footer{border-top:1px solid var(--line);padding:12px 20px;display:flex;justify-content:space-between;color:#858f7c;font-size:9px}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;margin-top:72px;padding:20px 0;border-top:1px solid var(--line);font-size:9px;color:#8e9787}.hero-bottom>a{font-size:24px;color:var(--text)}.work{padding-top:90px;padding-bottom:100px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:34px}.small-label{color:#788271;font-size:9px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:38px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:330px;margin-bottom:4px;color:var(--muted);font-size:14px}.project{border:1px solid var(--line);background:#191d17;overflow:hidden}.project-daye{display:grid;grid-template-columns:1.1fr 1fr;min-height:387px;margin-bottom:24px}.project-visual{position:relative;min-height:300px;overflow:hidden}.migration-visual{background:#253124;background-image:linear-gradient(#c8fa7406 1px,transparent 1px),linear-gradient(90deg,#c8fa7406 1px,transparent 1px);background-size:28px 28px;border-right:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-direction:column}.visual-label{position:absolute;top:24px;left:26px;right:26px;display:flex;justify-content:space-between;font-size:9px;color:#b5c9a3}.visual-label>span:first-child{color:var(--text)}.migration-diagram{display:flex;align-items:center;justify-content:center;gap:22px;width:100%;padding:55px 22px 18px}.platform{display:flex;flex-direction:column;align-items:center;width:110px;padding:18px 7px;border:1px solid #789065;background:#1b241c;box-shadow:6px 6px 0 #12181255}.platform-icon{font-size:47px;letter-spacing:-5px;font-weight:600;width:62px;height:62px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid #566b48;margin-bottom:12px}.platform-old .platform-icon{color:#c6aedf;border-color:#857397}.platform strong{font-size:14px;font-weight:500;margin-bottom:6px}.platform small{font-size:8px;color:#aab3a3}.platform-new{border-color:#c8fa74;transform:translateY(-10px)}.migration-arrow{display:flex;flex-direction:column;align-items:center;gap:8px}.migration-arrow>span{color:var(--accent);font-size:40px}.migration-arrow small{max-width:68px;font-size:7px;line-height:1.7;text-align:center;letter-spacing:.05em;color:#a8bb99}.diagram-bottom{font-size:7px;color:#9cae8e;margin-top:20px}.mini-dot{display:inline-block;background:var(--accent);width:5px;height:5px;border-radius:50%;margin-right:7px}.illustration-note{position:absolute;bottom:13px;right:18px;font-size:8px;color:#90a17e;letter-spacing:0}.project-copy{padding:34px 36px}.project-meta{display:flex;justify-content:space-between;color:var(--accent);font-size:9px;margin-bottom:23px;gap:10px}.project-meta>span{color:#818c78}.project h3{font-size:32px;font-weight:500;line-height:1.07;margin-bottom:20px}.project-copy>p{font-size:14px;color:var(--muted);margin-bottom:25px;max-width:420px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{font-size:10px;border:1px solid #3e4738;border-radius:3px;color:#b7c0af;padding:6px 8px;line-height:1.25}.project-link{background:transparent;border:0;border-top:1px solid #36412f;display:flex;justify-content:space-between;width:100%;padding:20px 0 0;margin-top:30px;font-size:12px;text-align:left}.project-link span{font-size:20px;color:var(--accent);line-height:.7;transition:transform .2s}.project-link:hover span{transform:translate(3px,-3px)}.project-link:hover{color:var(--accent)}.project-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}.workspace-visual{background:#302c3d;min-height:294px;display:flex;align-items:center;justify-content:center}.workspace-visual .visual-label{color:#bbb0d2}.workspace-drawing{width:72%;height:147px;display:flex;background:#201e2a;border:1px solid #736a84;transform:rotate(-5deg);box-shadow:11px 11px 0 #1f1a2b55;margin-top:35px}.workspace-sidebar{width:36px;padding:17px 12px;border-right:1px solid #655b74;display:flex;flex-direction:column;gap:13px}.workspace-sidebar i{width:11px;height:7px;border-radius:2px;background:#625672}.workspace-sidebar i:first-child{background:#cab5ff}.workspace-content{flex:1;padding:18px 18px 12px}.workspace-top{display:flex;justify-content:space-between;margin-bottom:18px}.workspace-top b{font-size:15px;letter-spacing:-.04em;font-weight:500;color:#e6dafb}.workspace-top span{color:#b19bd5}.workspace-modules{display:flex;gap:10px}.workspace-modules>div{flex:1;border:1px solid #554a64;padding:11px 8px;font-size:7px;letter-spacing:.1em;color:#bba6d7}.workspace-modules span{display:block;font-size:8px;color:#b0a4bf;margin-top:6px;letter-spacing:0}.workspace-bottom{font-size:7px;margin-top:12px;display:flex;justify-content:space-between;color:#ac9aba}.workspace-visual .illustration-note{color:#b2a3c7}.tools-visual{background:#333127;min-height:294px;display:flex;justify-content:center;align-items:center;flex-direction:column}.tools-visual .visual-label{color:#c3bc9c}.tool-diagram{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:38px}.tool-node{width:93px;height:93px;border:1px solid #b5a977;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-8deg);font-size:28px;font-weight:500;letter-spacing:-.05em;box-shadow:6px 6px 0 #17160f44;background:#2a281e}.tool-node>span{font-size:10px;margin-top:8px;letter-spacing:0;color:#ada37e}.tool-qa{transform:rotate(8deg);color:#e9d98c}.tool-connector{font-size:30px;text-align:center;color:#c6b979}.tool-connector small{display:block;font-size:7px;letter-spacing:.1em}.tool-caption{font-size:11px;color:#bbb18d;margin-top:28px}.tools-visual .illustration-note{color:#b7ac85}.project-pair .project-copy{padding:28px 30px}.project-pair .project h3{font-size:32px}.about{padding-top:70px;padding-bottom:90px;background:#dce4d4;color:#182015}.about .eyebrow,.about .small-label{color:#5c6954}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:48px}.big-number{font-size:128px;line-height:1;letter-spacing:-.08em;margin-top:57px;font-weight:500}.big-number>span{font-size:72px;font-weight:400;color:#728362;vertical-align:top;line-height:1.2}.big-number>small{display:block;font-family:monospace;font-size:10px;letter-spacing:.09em;margin-top:14px;color:#56644b}.about-copy>p{font-size:14px;color:#4e5b46}.about-copy .large-copy{font-size:23px;line-height:1.4;letter-spacing:-.02em;color:#273220;margin-bottom:25px}.skill-groups{margin-top:32px;border-top:1px solid #aab59f;padding-top:20px}.skill-groups>div>span{font-size:9px;color:#65735a}.skill-groups p{font-size:13px;color:#2f3c26;margin-top:5px;margin-bottom:15px}.experience{padding-top:100px;padding-bottom:100px}.timeline{margin-top:45px}.timeline details{border-top:1px solid var(--line)}.timeline details:last-child{border-bottom:1px solid var(--line)}.timeline summary{list-style:none;cursor:pointer;padding:27px 0;display:grid;grid-template-columns:28% 1fr auto;gap:20px;align-items:center}.timeline summary::-webkit-details-marker{display:none}.timeline-dates{font-size:9px;color:var(--muted)}.timeline-company{font-size:25px;letter-spacing:-.04em}.timeline-company>small{display:block;font-size:12px;color:var(--muted);letter-spacing:0;margin-top:8px}.timeline-toggle{font-size:28px;color:var(--accent);font-weight:300}.timeline details[open] .timeline-toggle{transform:rotate(45deg)}.timeline details>p{margin:0 48px 27px 29.7%;max-width:690px;font-size:14px;color:var(--muted)}.lab{padding-top:48px;padding-bottom:55px;background:#1c2419;border-top:1px solid #3a492e;border-bottom:1px solid #3a492e}.lab-badge{border:1px solid #536448;color:#b4cba1;padding:5px 8px;font-size:8px}.lab-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center}.lab h2{font-size:clamp(40px,4.4vw,60px)}.lab p{font-size:14px;color:#a8b59c;max-width:370px}.lab .lab-future{font-size:12px;color:#92a484;margin-top:23px}.lab-controls{display:flex;align-items:center;gap:20px;margin-top:27px}.lab-canvas-wrap{position:relative;border:1px solid #3c4c31;background:#151b11;min-width:0}.lab-canvas-wrap canvas{display:block;width:100%;aspect-ratio:660 / 450;height:auto;touch-action:pan-y}.canvas-label{position:absolute;bottom:16px;left:17px;right:17px;color:#7f936f;font-size:8px;pointer-events:none}.contact{padding-top:95px;padding-bottom:70px}.contact h2{font-size:clamp(48px,7.5vw,102px);line-height:1;letter-spacing:-.065em;margin-top:30px;margin-bottom:45px}.contact-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:25px;gap:30px}.email-link{font-size:20px;letter-spacing:-.025em}.email-link>span{display:inline-block;margin-left:14px;color:var(--accent)}.contact-links{display:flex;gap:22px;align-items:center;font-size:12px}.contact-links .text-button{font-size:12px}.contact-links a:hover,.email-link:hover{color:var(--accent)}.copy-status{display:block;min-height:20px;color:var(--accent);font-size:12px;padding-top:10px}.footer{border-top:1px solid var(--line);padding-top:28px;padding-bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#818d78;font-size:9px}.footer .wordmark{font-family:Arial,Helvetica,sans-serif;color:var(--text)}.footer>a:last-child:hover{color:var(--accent)}dialog{border:1px solid #4a5840;background:#1a2017;color:var(--text);width:min(760px,calc(100% - 32px));max-height:90dvh;padding:0;overscroll-behavior:contain;box-shadow:0 32px 130px #0009}dialog::backdrop{background:#090e08d9;backdrop-filter:blur(8px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:20px 32px;border-bottom:1px solid #38472c;position:sticky;top:0;background:#1a2017;z-index:1}.close-dialog{background:none;border:1px solid #526347;font-size:27px;width:38px;height:38px;line-height:1;color:var(--accent)}.dialog-body{padding:32px}.dialog-body h2{font-size:43px;margin-bottom:20px}.dialog-role{font-size:12px;color:var(--accent)}.dialog-intro{font-size:17px;line-height:1.6;color:#bec8b6}.dialog-body h3{font-size:15px;letter-spacing:0;margin-top:28px;margin-bottom:12px}.dialog-body ul{padding-left:20px;color:#b3c0aa;font-size:14px;line-height:1.75}.dialog-body li+li{margin-top:12px}.dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 32px;border-top:1px solid #38472c;font-size:9px;color:#8da27d}.dialog-bottom a{color:var(--accent);font-size:11px}.resume-body>p{font-size:14px;color:#b3c0aa}.resume-entry{border-top:1px solid #38472c;margin-top:25px;padding-top:22px}.resume-entry h3{margin-top:0;margin-bottom:5px}.resume-entry>p{font-size:11px;color:var(--accent)}.resume-entry ul{font-size:13px}.skip-link{position:absolute;top:-70px;left:16px;z-index:20;background:var(--accent);color:#121412;padding:14px}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.noscript{padding:20px;text-align:center;color:#cad8bf;font-size:13px}
@media(min-width:1500px){.hero h1{font-size:127px}.system{margin-top:38px}.hero-description{font-size:17px}}
@media(max-width:1000px){.section-shell{padding-left:32px;padding-right:32px}.header{padding:0 32px}.hero{column-gap:25px;padding-top:60px}.hero h1{font-size:clamp(70px,9.5vw,94px)}.hero-description{font-size:14px}.system{margin-top:45px}.core>span{font-size:35px}.core small{font-size:4px}.system-detail{padding:0 16px 16px;min-height:125px}.system-detail p{font-size:12px}.system-detail .mono{font-size:9px}.node>span:last-child{font-size:6px}.hero-actions{gap:16px}.hero-actions .text-button{font-size:12px}.hero-bottom{margin-top:55px}.project-copy{padding:27px}.project h3{font-size:29px}.project-copy>p{font-size:13px}.migration-diagram{gap:12px}.platform{width:85px}.migration-arrow small{font-size:6px}.diagram-bottom{font-size:6px}.project-pair{gap:18px}.project-pair .project-copy{padding:25px}.workspace-drawing{width:83%}.workspace-content{padding:17px 12px}.tool-diagram{gap:18px}.about-grid{gap:45px}.lab-grid{gap:35px}.contact-bottom{align-items:flex-start;flex-direction:column;gap:22px}.contact-links{gap:28px}}
@media(max-width:720px){.header{height:auto;min-height:86px;padding:19px 23px;flex-wrap:wrap;gap:18px}.wordmark{font-size:25px}.header-contact{margin-left:auto;font-size:12px}.header nav{order:3;width:100%;justify-content:space-between;font-size:12px;gap:14px}.section-shell{padding-left:23px;padding-right:23px}.hero{display:block;padding-top:48px}.hero .eyebrow{font-size:9px;letter-spacing:.045em}.hero h1{font-size:clamp(65px,13.9vw,100px);margin-top:23px;margin-bottom:25px}.hero-description{font-size:15px;max-width:470px}.hero-actions{gap:24px}.hero-actions .text-button{font-size:12px}.button{padding:16px 18px;gap:25px}.system{max-width:460px;transform:rotate(1deg);margin:48px auto 0}.system-map{margin:0 18px}.system-detail{min-height:95px;padding:0 23px 20px}.system-detail .mono{font-size:11px}.system-detail p{font-size:13px}.core>span{font-size:47px}.core small{font-size:6px}.node>span:last-child{font-size:8px}.hero-bottom{display:flex;gap:20px;margin-top:42px;font-size:8px}.hero-bottom>span:nth-child(2){display:none}.work{padding-top:62px;padding-bottom:62px}.section-top{margin-bottom:28px}.small-label{display:none}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:23px;max-width:430px;font-size:14px}h2{font-size:43px}.project-daye{display:flex;flex-direction:column}.project-daye .project-visual{min-height:300px;border-right:0;border-bottom:1px solid var(--line)}.migration-diagram{gap:25px}.platform{width:105px}.diagram-bottom{font-size:7px}.project-copy{padding:28px}.project h3{font-size:32px}.project-copy>p{font-size:14px}.project-pair{grid-template-columns:1fr;gap:24px}.project-pair .project-copy{padding:28px}.workspace-drawing{width:76%;max-width:350px}.workspace-modules>div{font-size:8px}.workspace-modules span{font-size:9px}.tools-visual,.workspace-visual{min-height:285px}.tool-diagram{gap:30px}.about{padding-top:46px;padding-bottom:44px}.about-grid{grid-template-columns:1fr;gap:38px;margin-top:32px}.about h2{margin-bottom:0}.big-number{font-size:93px;margin-top:32px}.big-number>span{font-size:54px}.about-copy .large-copy{font-size:22px}.experience{padding-top:65px;padding-bottom:65px}.experience .section-top .text-button{font-size:11px}.timeline{margin-top:33px}.timeline summary{grid-template-columns:1fr auto;row-gap:10px;padding:24px 0}.timeline-dates{grid-column:1;font-size:8px}.timeline-company{grid-column:1;grid-row:2;font-size:25px}.timeline-toggle{grid-column:2;grid-row:1/3}.timeline-company>small{font-size:11px;max-width:260px;line-height:1.45}.timeline details>p{margin:0 24px 24px 0;font-size:13px}.lab{padding-top:35px;padding-bottom:30px}.lab-badge{font-size:7px;padding:4px 6px}.lab-grid{grid-template-columns:1fr;gap:30px}.lab h2{font-size:44px}.lab p{max-width:440px}.lab-canvas-wrap{margin-bottom:5px}.contact{padding-top:65px;padding-bottom:40px}.contact h2{font-size:clamp(41px,9.8vw,66px);margin-top:26px;margin-bottom:35px}.email-link{font-size:clamp(14px,4.4vw,20px)}.email-link>span{margin-left:7px}.contact-links{gap:24px}.footer{flex-wrap:wrap;padding-top:24px;padding-bottom:24px;gap:22px;font-size:8px}.footer>span{margin-left:auto}.footer>a:last-child{width:100%;text-align:right}.dialog-top{padding:16px 20px}.dialog-body{padding:25px 22px}.dialog-body h2{font-size:34px}.dialog-bottom{padding:18px 22px}.dialog-bottom>span{font-size:8px}.dialog-bottom .text-button{font-size:10px}.dialog-body ul{font-size:13px}.resume-body>p{overflow-wrap:anywhere}.lab-controls{gap:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{body{background:white!important;color:black!important}body>header,body>main,body>footer,body>.skip-link,#project-dialog,.dialog-top,.dialog-bottom,.noscript{display:none!important}#resume-dialog{display:block!important;position:static!important;width:100%!important;max-height:none!important;overflow:visible!important;border:0!important;background:white!important;color:black!important;box-shadow:none!important;margin:0!important;padding:0!important}#resume-dialog .dialog-body{padding:0}#resume-dialog p,#resume-dialog ul,#resume-dialog a{color:#222!important}#resume-dialog h2{font-size:28pt}#resume-dialog h3{font-size:12pt}#resume-dialog ul{font-size:9pt}#resume-dialog p{font-size:10pt}.resume-entry{break-inside:avoid}dialog::backdrop{display:none!important}}
