:root{--bg:#f5f5f2;--surface:#fbfbf8;--surface-2:#ecece7;--text:#1e201e;--muted:#686b67;--line:#d7d8d2;--line-strong:#b9bbb4;--accent:#5d695f;--accent-soft:#dfe4df;--link-color:#356b52;--shadow:0 18px 50px rgba(25,28,25,.07);--radius:22px;--maxw:1180px;--header:74px}
:root[data-theme="dark"]{--bg:#171917;--surface:#1d201d;--surface-2:#252925;--text:#eff0ea;--muted:#a6aaa2;--line:#383c37;--line-strong:#585d55;--accent:#bdc8bc;--accent-soft:#303730;--link-color:#9fcdb3;--shadow:0 18px 50px rgba(0,0,0,.24)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{zoom: .8; margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}body.no-scroll{overflow:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--bg)}
#aboutFull a{color:var(--link-color);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s ease,opacity .2s ease}#aboutFull a:hover{opacity:.65}

.container{width:min(calc(100% - 40px),var(--maxw));margin-inline:auto}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-inner{min-height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:22px;position:relative}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-avatar,.footer-cz{width:38px;height:38px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;background:var(--surface);overflow:hidden;flex:0 0 auto}.brand-avatar img{width:100%;height:100%;object-fit:cover}.brand-fallback{font-size:11px;font-weight:800;letter-spacing:.12em}
@font-face{font-family:'CaptainZ';src:url('../fonts/CaptainZ.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
.brand-copy{display:grid;line-height:1.08}
.brand-copy strong{font-family:'CaptainZ',sans-serif;font-size:20px;letter-spacing:.04em}
.brand-copy small{font-size:9px;color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin-top:4px}
.brand-copy-footer {font-family:'CaptainZ',sans-serif}
.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.icon-button{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);display:grid;place-items:center;transition:transform .2s ease,border-color .2s ease,background .2s ease}.icon-button:hover{transform:translateY(-1px);border-color:var(--line-strong)}.icon-button:focus-visible,.button:focus-visible,.site-nav a:focus-visible,.contact-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.icon-sun,.icon-moon{font-size:18px;line-height:1}.icon-moon{display:none}.menu-toggle{font-size:18px}.site-nav{display:flex;align-items:center;gap:5px}.site-nav a{padding:9px 12px;border-radius:999px;color:var(--muted);font-size:13px;transition:background .2s ease,color .2s ease}.site-nav a:hover,.site-nav a.active{background:var(--surface-2);color:var(--text)}
.section{padding:112px 0}
.hero{position:relative;min-height:calc(100vh - var(--header));display:flex;align-items:center;background:url("../image/bg.jpg") center center / cover no-repeat;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.38) 45%,rgba(0,0,0,.12) 100%)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);align-items:center;gap:78px;position:relative;z-index:1}.hero-copy h1{color:#fff;text-shadow:0 2px 3px rgba(0,0,0,.9),0 4px 14px rgba(0,0,0,.65)}.hero-copy h1 em{color:rgba(255,255,255,.86);text-shadow:0 2px 3px rgba(0,0,0,.95),0 4px 14px rgba(0,0,0,.7)}.hero-lead{color:rgba(255,255,255,.92);text-shadow:0 1px 3px rgba(0,0,0,.95),0 3px 10px rgba(0,0,0,.65)}.route-label{color:rgba(255,255,255,.92);text-shadow:0 1px 3px rgba(0,0,0,.9)}.route-rule{background:rgba(255,255,255,.65)}.hero-meta{color:rgba(255,255,255,.86);text-shadow:0 1px 3px rgba(0,0,0,.9)}.hero-meta b{color:rgba(255,255,255,.92);text-shadow:0 1px 3px rgba(0,0,0,.9)}:root:not([data-theme="dark"]) .hero-copy h1,:root:not([data-theme="dark"]) .hero-copy h1 em,:root:not([data-theme="dark"]) .hero-lead,:root:not([data-theme="dark"]) .route-label,:root:not([data-theme="dark"]) .hero-meta{color:#fff}:root[data-theme="dark"] .hero-copy h1{color:#fff}:root[data-theme="dark"] .hero-copy h1 em{color:rgba(255,255,255,.86)}:root[data-theme="dark"] .hero-meta{color:rgba(255,255,255,.86)}:root[data-theme="dark"] .hero-lead{color:rgba(255,255,255,.9)}
.eyebrow{font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin:0 0 14px}.route-label{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-bottom:28px}.route-dot{width:7px;height:7px;border:1px solid var(--accent);border-radius:50%;background:transparent;box-shadow:0 0 0 4px var(--accent-soft)}.route-rule{height:1px;width:72px;background:var(--line)}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.04em;margin:0}h1{font-size:clamp(48px,6vw,78px);line-height:.98}.hero-copy h1 em,.page-hero h1 em,.error-page h1 em{color:var(--muted);font-style:normal}.hero-lead,.page-lead{max-width:620px;font-size:17px;color:var(--muted);margin:28px 0 0}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 17px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:700;transition:transform .2s ease,background .2s ease,border-color .2s ease}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.button-quiet,.button-ghost{background:var(--surface);color:var(--text)}.button-quiet:hover,.button-ghost:hover{border-color:var(--line-strong);background:var(--surface-2)}.hero-meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:52px;color:var(--muted);font-size:9px;letter-spacing:.15em;text-transform:uppercase}.hero-meta b{color:var(--text);margin-right:7px}.profile-stage{position:relative;min-height:480px;display:grid;place-items:center}.flight-line{position:absolute;inset:8% 5% auto 6%;height:310px;pointer-events:none}.flight-line:before{content:"";position:absolute;left:8%;top:48%;width:84%;height:150px;border-top:1px dashed var(--line-strong);border-radius:50% 50% 0 0;transform:rotate(-7deg)}.flight-line span{position:absolute;width:6px;height:6px;border:1px solid var(--line-strong);border-radius:50%;background:var(--bg)}.flight-line span:nth-child(1){left:5%;top:50%}.flight-line span:nth-child(2){left:48%;top:40%}.flight-line span:nth-child(3){right:5%;top:22%}.profile-card{width:min(100%,560px);padding:24px;border:1px solid var(--line-strong);border-radius:var(--radius);background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 76%,var(--surface-2)));box-shadow:var(--shadow);position:relative;overflow:hidden}.profile-card:after{content:"";position:absolute;width:210px;height:210px;border:1px solid var(--line);border-radius:50%;right:-105px;bottom:-105px;opacity:.5}.card-topline,.card-route,.status-row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}.card-topline{padding-bottom:17px;border-bottom:1px solid var(--line)}.profile-main{display:grid;grid-template-columns:210px 1fr;gap:26px;padding:24px 0}.profile-photo-shell{aspect-ratio:3/4;border-radius:18px;background:var(--surface-2);overflow:hidden;position:relative;border:1px solid var(--line)}.profile-photo-shell img{width:100%;height:100%;object-fit:cover;}.photo-fallback{position:absolute;inset:0;display:grid;place-items:center;align-content:center;background:linear-gradient(150deg,var(--surface-2),var(--surface));color:var(--text)}.photo-fallback span{font-family:Georgia,serif;font-size:74px}.photo-fallback small{font-size:9px;letter-spacing:.18em;color:var(--muted)}.photo-label{display:block;margin-top:8px;text-align:center;font-size:8px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase}.profile-data{padding-top:6px}.profile-data h2{font-size:36px;line-height:1.02;margin-bottom:26px}.data-row{display:flex;flex-direction:column;gap:3px;padding:12px 0;border-bottom:1px solid var(--line)}.data-row span,.data-row strong{font-size:10px}.data-row span{color:var(--muted);letter-spacing:.15em}.data-row strong{font-weight:650}.status-row{padding-top:18px}.status-row span{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:800}.status-row i{width:7px;height:7px;background:var(--accent);border-radius:50%;display:block}.card-route{padding-top:16px;border-top:1px solid var(--line)}.mini-route{flex:1;max-width:160px;height:1px;background:var(--line-strong);position:relative}.mini-route i{position:absolute;top:-3px;width:7px;height:7px;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface)}.mini-route i:first-child{left:0}.mini-route i:last-child{right:0}.mini-route b{position:absolute;left:50%;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.intro-strip{padding-top:88px;padding-bottom:88px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.strip-grid{display:grid;grid-template-columns:120px minmax(280px,1fr) minmax(300px,.75fr);gap:32px;align-items:start}
.section-index{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  margin-bottom:3px;
}
.error-page{position:relative;min-height:100vh}
    .error-footer{position:absolute;bottom:24px;left:50%;width:min(520px,84%);transform:translateX(-50%);padding-top:18px;border-top:1px solid var(--border);text-align:center;font-size:11px;letter-spacing:.08em;color:var(--muted);opacity:.7}

.section-index span{width:42px;height:1px;background:var(--line-strong)}.strip-grid h2,.section-heading h2{font-size:clamp(34px,4vw,52px);line-height:1.03}.about-preview p{margin:0;color:var(--muted);font-size:15px}.about-preview p a{color:var(--link-color);text-decoration:none;border:0}.route-section{padding-bottom:130px}

.split-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:70px;align-items:end}.section-note{max-width:520px;margin:0 0 4px;font-size:13px;line-height:1.8;color:var(--muted)}

.route-map{display:grid;width:100%;margin-top:42px}.route-node{display:grid;grid-template-columns:42px 1fr auto;grid-template-rows:auto auto;column-gap:18px;align-items:center;padding:20px 0;border-top:1px solid var(--line);color:var(--text);text-decoration:none;transition:padding-left .25s ease}.route-node:last-child{border-bottom:1px solid var(--line)}.route-node span{grid-row:1/3;font-size:10px;letter-spacing:.16em;color:var(--muted)}.route-node strong{font-size:13px;letter-spacing:.14em}.route-node small{margin-top:5px;font-size:11px;color:var(--muted)}.route-node b{grid-column:3;grid-row:1/3;font-size:18px;font-weight:400;color:var(--muted);transition:transform .25s ease,color .25s ease}.route-node:hover{padding-left:8px}.route-node:hover b{transform:translateX(6px);color:var(--text)}.route-node:focus-visible{outline:2px solid var(--text);outline-offset:5px}.route-connector{display:none}

@media(max-width:600px){.route-map{margin-top:30px}.route-node{grid-template-columns:32px 1fr auto;column-gap:14px;padding:17px 0}.route-node strong{font-size:12px}.route-node small{font-size:10px}.route-node b{font-size:17px}.route-node:hover{padding-left:4px}}

.page-main{min-height:calc(100vh - var(--header))}.page-hero{padding-bottom:20px}.content-section{padding-top:15px}.page-hero h1{font-size:clamp(54px,7vw,86px)}.content-section{padding-top:40px}.content-narrow{max-width:790px}.content-narrow p{font-size:19px;line-height:1.8;color:var(--muted);margin:0 0 26px}.loading-copy{padding:22px;border:1px dashed var(--line-strong);border-radius:16px;color:var(--muted)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;color:var(--text)}
.projects-section{padding-top:22px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-card{min-height:300px;padding:25px;border:1px solid var(--line);border-radius:20px;background:var(--surface);display:flex;flex-direction:column;justify-content:space-between;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.project-card:hover{transform:translateY(-4px);border-color:var(--line-strong);box-shadow:var(--shadow)}.project-card-top{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:.17em}.project-card h2{font-size:36px;line-height:1.04;margin:54px 0 12px}.project-card p{color:var(--muted);font-size:14px;margin:0;max-width:480px}.project-card-footer{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-top:28px}.project-link{font-size:12px;font-weight:800;border-bottom:1px solid var(--line-strong);padding-bottom:4px}.project-index{font-size:10px;color:var(--muted);letter-spacing:.15em}
.contact-section{padding-top:22px}.contact-layout{display:grid;grid-template-columns:1fr .88fr;gap:90px;align-items:start}.contact-copy h2{font-size:48px;margin:8px 0 20px}.contact-copy>p{max-width:560px;color:var(--muted);font-size:16px}.contact-list{display:grid;gap:12px}.contact-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:16px;padding:17px 18px;border:1px solid var(--line);border-radius:17px;background:var(--surface);transition:transform .2s ease,border-color .2s ease}.contact-card:hover{transform:translateX(4px);border-color:var(--line-strong)}

.contact-icon{width:40px;height:40px;display:grid;place-items:center;font-size:9px;letter-spacing:.08em;font-weight:800}

.contact-card small{display:block;color:var(--muted);font-size:9px;letter-spacing:.15em}.contact-card strong{display:block;font-size:14px;margin-top:3px}.share-box{position:relative;margin-top:40px;padding:17px;border:1px solid var(--line);border-radius:17px;background:var(--surface);display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}.share-box>div{min-width:0}.share-box span:first-child{display:block;color:var(--muted);font-size:9px;letter-spacing:.15em}.share-box strong{display:block;margin-top:6px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.copy-status{position:absolute;bottom:-27px;left:3px;font-size:11px;color:var(--muted)}
.site-footer{border-top:1px solid var(--line);padding:50px 0 32px}.footer-inner{display:grid;gap:22px;justify-items:center;text-align:center}.footer-brand{display:flex;align-items:center;gap:11px}.footer-brand>div{display:grid;text-align:left}.footer-brand strong{font-size:12px;letter-spacing:.08em}.footer-brand small{font-size:9px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-top:3px}.footer-cz{width:42px;height:42px}.footer-inner>p{margin:0;color:var(--muted);font-family:Georgia,serif;font-size:17px}.footer-inner nav{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}.footer-inner nav a{font-size:11px;color:var(--muted)}.footer-inner nav a:hover{color:var(--text)}.footer-end{padding-top:19px;border-top:1px solid var(--line);width:100%;display:flex;justify-content:center;flex-wrap:wrap;gap:9px 16px;color:var(--muted);font-size:10px;letter-spacing:.04em}.footer-end span+span:before{content:"•";margin-right:16px;color:var(--line-strong)}
.loader{position:fixed;inset:0;background:var(--bg);z-index:100;display:grid;place-items:center;padding:30px;transition:opacity .35s ease,visibility .35s ease}.loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-inner{width:min(100%,500px)}.loader-mark{width:54px;height:54px;border:1px solid var(--line-strong);border-radius:16px;display:grid;place-items:center;font-weight:900;letter-spacing:.06em;margin-bottom:28px;background:var(--surface)}.loader-inner h1{font-size:42px}.loader-track{height:2px;background:var(--line);margin-top:28px;overflow:hidden}.loader-track span{display:block;width:0;height:100%;background:var(--text);transition:width .25s ease}.loader-status{color:var(--muted);font-size:12px;margin:12px 0}.loader-items{display:grid;gap:7px;margin-top:18px}.loader-item{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.loader-item strong{font-size:10px;color:var(--text)}.loader-retry{margin-top:20px}
.error-page{min-height:100vh;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;position:relative;overflow:hidden}.error-code{font-size:clamp(120px,22vw,260px);font-weight:900;letter-spacing:-.08em;line-height:.8;color:var(--surface-2)}.error-page h1{font-size:clamp(46px,7vw,78px);margin-top:-5px}.error-page p:not(.eyebrow){color:var(--muted);max-width:560px;margin:22px auto 30px}.error-route{position:absolute;left:12%;right:12%;bottom:12%;height:1px;background:var(--line)}.error-route span{position:absolute;top:-3px;width:7px;height:7px;border:1px solid var(--line-strong);background:var(--bg);border-radius:50%}.error-route span:nth-child(1){left:0}.error-route span:nth-child(2){left:52%}.error-route span:nth-child(3){right:0}
.datetime{color:var(--muted);font-size:11px;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.project-preview{width:100%;overflow:hidden;border-radius:12px;margin-bottom:22px;border:1px solid var(--border);background:var(--surface)}
.project-preview img{display:block;width:100%;height:auto;max-width:100%}
