:root{color-scheme:dark;--ink:#eee9dd;--muted:#a3abae;--dim:#74808a;--paper:#10171e;--panel:#171f27;--line:#35414a;--ochre:#d0b36d;--cold:#8a9da8;--header:78px;font-family:Tahoma,"Leelawadee UI",Arial,sans-serif;background:#090f14;color:var(--ink);font-size:15px;line-height:1.8}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:155px}body{margin:0;background:radial-gradient(ellipse at 75% 20%,#202b3440,transparent 60%),#090f14;min-height:100vh}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--ochre);outline-offset:5px}a:hover{color:var(--ochre)}p,h1,h2,h3,figure{margin:0}img{display:block;max-width:100%}button:disabled{cursor:default;opacity:.45}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:-70px;background:var(--ink);color:#10171e;padding:12px;z-index:50}.skip-link:focus{top:10px}
.site-header{height:var(--header);display:flex;align-items:center;gap:34px;padding:0 clamp(20px,4vw,72px);border-bottom:1px solid var(--line);background:#0d141beF;position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}.wordmark{display:flex;align-items:center;gap:11px;font-family:Georgia,serif;font-size:25px;letter-spacing:-1px;font-weight:bold;white-space:nowrap}.mark{border:1px solid #b0b3aa;border-radius:50%;font-size:18px;width:30px;height:30px;display:grid;place-items:center;line-height:1;transform:rotate(-12deg)}.wordmark-small{font:9px/1.4 Tahoma,sans-serif;letter-spacing:1.6px;max-width:95px;white-space:normal;margin-left:7px;color:var(--muted)}.site-header nav{display:flex;gap:32px;margin-left:auto;height:100%;align-items:center}.site-header nav a{display:flex;align-items:center;min-height:44px;font-size:13px;position:relative}.site-header nav a[aria-current=page]{color:var(--ochre)}.site-header nav a[aria-current=page]::after{position:absolute;content:"";height:1px;bottom:0;left:0;right:0;background:var(--ochre)}.site-header nav span{margin-left:6px;color:var(--dim)}.motion-toggle{display:flex;gap:8px;align-items:center;background:transparent;border:1px solid var(--line);color:var(--muted);padding:8px 11px;min-width:44px;min-height:40px;border-radius:2px;font-size:11px}.motion-icon{font-size:17px;line-height:1}.route-rail{display:flex;align-items:center;gap:18px;max-width:1512px;margin:22px auto 0;padding:0 36px;font:9px/1.4 Tahoma,sans-serif;letter-spacing:2px;color:var(--dim)}.route-rail>span:first-child{display:flex;gap:7px;align-items:center;color:var(--muted)}.route-rail i{width:5px;height:5px;border-radius:50%;background:var(--ochre);margin-right:3px}.rail-line{flex:1;height:1px;background:var(--line)}
.layout{max-width:1512px;margin:0 auto;padding:26px 36px 58px;display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);grid-template-areas:"stage content";gap:48px;align-items:start}#content{grid-area:content;min-width:0;transition:opacity .15s ease,filter .15s ease;outline:none}.stage-dock{grid-area:stage;min-width:0;position:sticky;top:104px}.is-changing #content{opacity:.15;filter:blur(2px)}.train-stage{position:relative;isolation:isolate;height:min(730px,calc(100svh - 180px));min-height:450px;overflow:hidden;background:#060a0d;outline:1px solid #3b474d;box-shadow:0 25px 65px #0007;border-radius:2px}.train-world{position:absolute;overflow:visible;width:var(--world-w,100%);height:var(--world-h,100%);left:var(--world-left,0);top:var(--world-top,0)}.motion-layer{position:absolute;will-change:transform}.idle-layer{width:100%;height:100%;will-change:transform;transform-origin:50% 70%}.idle-layer img{width:100%;height:100%;object-fit:contain;max-width:none;user-select:none}.layer-scene,.layer-strap{inset:0}.layer-scene{z-index:0}.layer-scene .idle-layer img{object-fit:fill;filter:brightness(.84) saturate(.74)}.layer-strap{z-index:7;pointer-events:none}.layer-mascot{z-index:4}.layer-crab{z-index:3}.layer-bot{z-index:5}.layer-mascot img,.layer-crab img,.layer-bot img{filter:brightness(.88) saturate(.76)}.stage-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#060b0f32,transparent 35%,transparent 68%,#060b0f75);box-shadow:inset 0 0 70px #02060a55;z-index:8}.stage-corner{position:absolute;inset:auto 18px 16px;display:flex;justify-content:space-between;align-items:end;z-index:9;color:#d9e1dda0;pointer-events:none;font:8px/1.4 Tahoma,sans-serif;letter-spacing:2px}.stage-corner span:first-child{font:14px Georgia,serif;letter-spacing:0}.stage-caption{display:flex;justify-content:space-between;margin-top:12px;color:var(--dim);font-size:9px;letter-spacing:.8px}.stage-caption span:last-child{font-size:14px;line-height:1}
body[data-page=home] .layout{grid-template-columns:1fr;grid-template-areas:"content" "stage";gap:30px;padding-top:33px}body[data-page=home] .stage-dock{position:relative;top:0}body[data-page=home] .train-stage{height:auto;min-height:0;aspect-ratio:16/9;max-height:810px}.hero{display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:50px}.eyebrow{font-size:10px;letter-spacing:2.6px;color:var(--ochre);text-transform:uppercase;margin-bottom:16px}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(48px,6.6vw,96px);line-height:.99;letter-spacing:-4.5px;font-weight:400}.hero h1 em{font-style:italic;color:#a7b8be}.hero-description{padding-bottom:6px}.hero-name{font:italic 20px Georgia,serif;margin-bottom:12px;color:var(--ink)}.hero .bio{font-size:13px;line-height:2;color:var(--muted);max-width:415px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:46px;border:1px solid #7b898d;padding:9px 20px;background:transparent;color:var(--ink);font-size:12px;border-radius:1px}.button-primary{background:var(--ochre);border-color:var(--ochre);color:#11191e}.button-primary:hover{background:#e5c783;color:#11191e}.button-quiet{border-color:var(--line)}.button>span{font-size:18px}.mini-links{display:flex;flex-wrap:wrap;gap:7px 20px;margin-top:22px;font-size:10px;color:var(--dim)}
.page-heading{font:400 clamp(36px,4vw,57px)/1.08 Georgia,"Times New Roman",serif;letter-spacing:-1.8px;margin-bottom:20px}.page-intro{padding:8px 0 25px}.bio{color:var(--muted);line-height:2;font-size:14px}.section-nav{display:flex;gap:20px;overflow:auto;scrollbar-width:thin;position:sticky;top:var(--header);z-index:10;background:#10171ef8;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 16px;margin:0 -16px;backdrop-filter:blur(14px)}.section-nav a{white-space:nowrap;font-size:10px;min-height:49px;display:flex;align-items:center;color:var(--muted)}.section-nav a:hover{color:var(--ochre)}.resume-section{padding:30px 0 34px;border-bottom:1px solid var(--line);scroll-margin-top:148px}.section-heading{display:flex;align-items:center;gap:13px;margin-bottom:21px}.section-heading h2{font:400 28px/1.2 Georgia,serif;letter-spacing:-.3px}.section-number{color:var(--ochre);font-size:9px;letter-spacing:1px;border:1px solid #6c634d;border-radius:50%;display:grid;place-items:center;width:23px;height:23px}.expertise-list{list-style:none;display:flex;gap:7px;padding:0;margin:0;flex-wrap:wrap}.expertise-list li{font-size:11px;line-height:1.8;border:1px solid #3b474e;padding:6px 10px;background:#19232b99;color:#c2c9c7;border-radius:2px}.education h3{font-size:15px;line-height:1.6;font-weight:500}.education p,.education li{font-size:12px;line-height:1.9;color:var(--muted)}.education ul{padding-left:19px}.contribution{border-bottom:1px solid #2d3942;padding:16px 0;display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px}.contribution:first-child{padding-top:0}.contribution:last-child{border:0;padding-bottom:0}.entry-index{color:var(--dim);font-size:9px;line-height:2.4}.contribution h3,.achievement h3{font-size:13px;line-height:1.8;font-weight:500;overflow-wrap:anywhere}.external-arrow{color:var(--ochre);padding-left:6px}.contribution p,.achievement p{font-size:11px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}.achievements{display:grid;gap:13px}.achievement{padding:17px;border:1px solid #635d49;border-left:3px solid var(--ochre);background:#6f654517}.achievement p{margin-top:9px}.timeline{margin:0 0 0 7px;padding-left:23px;border-left:1px solid #716545}.job{position:relative;padding-bottom:30px}.job:last-child{padding-bottom:0}.job::before{position:absolute;content:"";width:10px;height:10px;border-radius:50%;background:var(--ochre);top:7px;left:-29px;box-shadow:0 0 0 4px #10171e}.job h3{font:400 23px/1.35 Georgia,serif;overflow-wrap:anywhere}.job .company{font-size:12px;margin:3px 0;color:#c5cbc8}.job .date-location{font-size:10px;color:#c0ab7b;margin:4px 0 12px}.job-copy{font-size:11px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}.job-copy ul{padding-left:18px;margin:10px 0}.job-copy p+p{margin-top:9px}.source-caption{margin-top:22px;font-size:10px;line-height:1.8;color:var(--dim)}
.social-header{padding:20px 0 38px}.social-list{display:grid;gap:0;border-top:1px solid var(--line)}.social-link{display:grid;grid-template-columns:42px 1fr 24px;align-items:center;gap:17px;padding:24px 0;border-bottom:1px solid var(--line)}.social-monogram{font-size:10px;border:1px solid #6b7679;width:38px;height:38px;display:grid;place-items:center;color:var(--muted);border-radius:50%}.social-link strong{font:400 29px Georgia,serif}.social-link small{display:block;font-size:10px;line-height:1.8;color:var(--dim);overflow-wrap:anywhere}.social-link .external-arrow{font-size:25px}.social-note{color:var(--dim);font-size:11px;margin-top:25px}
.chat-shell{background:#141d25;border:1px solid var(--line);min-height:620px;height:calc(100svh - 180px);max-height:850px;display:flex;flex-direction:column}.chat-header{display:flex;align-items:center;gap:13px;padding:18px 23px;border-bottom:1px solid var(--line)}.chat-header h1{font:400 26px Georgia,serif}.chat-header small{font-size:10px;color:var(--muted)}.avatar{position:relative;overflow:hidden;border-radius:50%;background:#36424c;border:1px solid #6a777d;flex:0 0 42px;width:42px;height:42px}.avatar img{position:absolute;max-width:none}.avatar-human img{width:270%;height:auto;left:50%;top:-10%;transform:translateX(-50%)}.avatar-bot img{width:152%;height:auto;left:50%;top:-6%;transform:translateX(-50%)}.chat-body{padding:25px 23px;overflow:auto;flex:1;scrollbar-width:thin}.chat-empty-label{font:italic 28px/1.3 Georgia,serif;color:#7d8e98;padding:15px 0 30px}.message{display:flex;gap:10px;margin-bottom:20px;align-items:flex-end}.message .avatar{flex-basis:33px;width:33px;height:33px}.message-text{background:#28333c;padding:13px 16px;max-width:82%;border-radius:1px 10px 10px 10px;font-size:12px;line-height:1.9;white-space:pre-line;overflow-wrap:anywhere}.message.user{flex-direction:row-reverse}.message.user .message-text{background:#bba465;color:#151c22;border-radius:10px 1px 10px 10px}.chat-form{border-top:1px solid var(--line);padding:17px 20px;display:flex;gap:11px}.chat-form input{width:100%;min-width:0;background:#0d151d;color:var(--ink);border:1px solid #43525d;border-radius:2px;padding:12px;font-size:12px}.chat-form button{flex:0 0 47px;border:1px solid var(--ochre);background:var(--ochre);color:#131b22;font-size:23px}.chat-disclosure{font-size:9px;line-height:1.5;padding:0 20px 13px;color:var(--dim)}
.qr-wrap{max-width:430px;margin:10px auto}.qr-wrap .page-heading{font-size:44px}.qr-card{background:#ddd8cc;border:1px solid #8f958e;color:#18222a;padding:25px;border-radius:2px}.qr-card h2{font:400 24px Georgia,serif;margin-bottom:8px}.qr-card p{font-size:11px;color:#566068;line-height:1.8}.qr-space{background:white;aspect-ratio:1;display:grid;place-items:center;margin:23px 0;border:1px solid #9aa2a5;color:#7f888c;text-align:center;font-size:12px;overflow:hidden}.qr-space img{max-width:100%;max-height:100%;object-fit:contain}.qr-space span{padding:24px}.qr-select{display:block;background:#25333e;color:#eee9dd;text-align:center;padding:12px;font-size:11px;cursor:pointer}.qr-select input{width:1px;height:1px;position:absolute;opacity:0}.qr-disclosure{font-size:10px;color:var(--dim);line-height:1.9;margin-top:18px}.back-link{display:inline-block;margin-bottom:20px;font-size:11px;color:var(--muted)}
.site-footer{border-top:1px solid var(--line);max-width:1440px;margin:0 auto;display:flex;justify-content:space-between;padding:23px 0;font-size:10px;color:var(--dim)}.footer-slash{padding:0 9px;color:var(--ochre)}.review-notes{max-width:1440px;margin:0 auto 30px;font-size:10px;color:var(--dim)}.review-notes summary{cursor:pointer;min-height:35px}.review-notes>div{border:1px solid var(--line);padding:15px 19px;max-width:720px;line-height:2}.review-notes p{margin:8px 0}.review-notes a{margin-right:20px;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1100px){.wordmark-small{display:none}.layout{gap:30px;padding-left:25px;padding-right:25px;grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr)}.hero{gap:35px}.hero h1{font-size:70px}.site-footer,.review-notes{margin-left:25px;margin-right:25px}.route-rail{padding:0 25px}.train-stage{min-height:420px}.site-header{gap:24px}.site-header nav{gap:22px}.section-nav{gap:16px}.section-nav a{font-size:9px}}
@media(max-width:760px){:root{--header:64px}.site-header{padding:0 18px;gap:15px}.wordmark{font-size:21px;gap:7px}.mark{width:25px;height:25px;font-size:15px}.site-header nav{gap:16px}.site-header nav a{font-size:11px}.motion-label{display:none}.motion-toggle{padding:8px;min-width:35px;min-height:35px}.route-rail{margin-top:16px;padding:0 19px;gap:11px;font-size:8px;letter-spacing:1px}.route-rail>span:last-child{font-size:7px;letter-spacing:.5px}.layout,body[data-page=chat] .layout{display:flex;flex-direction:column;padding:22px 19px 35px;gap:24px}.stage-dock{position:relative;top:0;width:100%;order:0}#content{order:1;width:100%}.train-stage{height:330px;min-height:0}.stage-caption{font-size:8px}.stage-corner{inset:auto 12px 12px;font-size:7px}.stage-shade{box-shadow:inset 0 0 35px #02060a33}.hero{display:block}.hero h1{font-size:62px;letter-spacing:-2.7px}.hero-description{margin-top:23px;padding-bottom:0}.hero-name{font-size:18px;margin-bottom:9px}.hero .bio{font-size:12px;line-height:1.9}.hero-actions{margin-top:18px}.button{font-size:11px;padding:8px 16px;min-height:44px;gap:22px}.mini-links{margin-top:18px;font-size:9px;gap:15px}.eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:12px}body[data-page=home] .layout{gap:26px;padding-top:27px}body[data-page=home] #content{order:0}body[data-page=home] .stage-dock{order:1}body[data-page=home] .train-stage{aspect-ratio:auto;height:485px;min-height:0}.page-heading{font-size:43px;letter-spacing:-1.2px}.page-intro{padding-top:0}.bio{font-size:13px}.section-nav{top:var(--header);margin:0 -19px;padding:0 19px;gap:21px}.section-nav a{font-size:10px;min-height:47px}.resume-section{padding:26px 0;scroll-margin-top:132px}.section-heading h2{font-size:27px}.expertise-list li{font-size:10px}.contribution h3,.achievement h3{font-size:12px}.contribution p,.achievement p{font-size:11px}.job h3{font-size:22px}.social-header{padding:0 0 25px}.social-link{padding:21px 0;gap:13px}.social-link strong{font-size:28px}.social-link small{font-size:9px}body[data-page=chat] .stage-dock{display:none}.chat-shell{min-height:520px;height:calc(100svh - 138px);max-height:850px}.chat-header{padding:15px 17px}.chat-header h1{font-size:23px}.chat-body{padding:18px 14px}.chat-empty-label{font-size:25px}.message-text{font-size:11px;padding:12px;max-width:83%}.chat-form{padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));gap:9px}.chat-disclosure{font-size:8px;padding:0 12px 10px}.qr-wrap{width:100%;margin:0}.qr-card{padding:20px}.qr-wrap .page-heading{font-size:39px}.site-footer{margin:0 19px;padding:20px 0;gap:15px;font-size:8px}.review-notes{margin:0 19px 25px;font-size:9px}.footer-slash{padding:0 5px}}
@media(max-width:370px){.site-header{padding:0 12px;gap:10px}.site-header nav{gap:11px}.site-header nav a{font-size:10px}.wordmark{font-size:18px}.mark{display:none}.hero h1{font-size:54px}.hero-actions{gap:9px}.button{padding:8px 13px}.route-rail>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#content{transition:none}.is-changing #content{opacity:1;filter:none}.site-header{backdrop-filter:none}}
.bot-concept{clip-path:var(--bot-clip)}
