:root{--canvas:#e7edf0;--surface:#f7f9fa;--surface-soft:rgba(247,249,250,.72);--ink:#263741;--muted:#647682;--line:#c9d5dc;--line-strong:#a9bbc5;--moss:#668476;--terracotta:#c87857;--shadow:0 12px 28px rgba(62,82,93,.09),0 2px 5px rgba(62,82,93,.05);--focus:#315b73}html[data-theme=dark]{--canvas:#17242c;--surface:#21323c;--surface-soft:rgba(33,50,60,.78);--ink:#eef4f6;--muted:#b9c8d0;--line:#3a505d;--line-strong:#506775;--moss:#a5c1ae;--terracotta:#e49a7a;--shadow:0 16px 35px rgba(0,0,0,.23),0 2px 6px rgba(0,0,0,.18);--focus:#9ec9e2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--ink);background:var(--canvas);font:16px/1.7 Nunito Sans,Noto Sans SC,PingFang SC,sans-serif;letter-spacing:.01em}body:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background-image:linear-gradient(to right,transparent 0,transparent calc(8.333% - 1px),color-mix(in srgb,var(--line) 36%,transparent) calc(8.333% - 1px),color-mix(in srgb,var(--line) 36%,transparent) 8.333%);background-size:calc(min(1200px,100vw - 48px)/12) 100%;mask-image:linear-gradient(to right,transparent,black 7%,black 93%,transparent);opacity:.5}a{color:inherit;text-decoration:none}.shell{width:min(1200px,calc(100% - 48px));margin-inline:auto}.skip-link{position:absolute;z-index:10;left:-999px}.skip-link:focus{left:20px;top:18px;background:var(--surface);padding:8px 14px;border-radius:8px;outline:3px solid var(--focus)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.site-header{min-height:84px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}.mark{width:28px;height:28px;display:grid;place-items:center}.mark span,.mark:before,.mark:after{content:"";grid-area:1/1;width:9px;height:9px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 4px var(--canvas)}.mark:before{transform:translate(-7px,-7px);background:var(--moss)}.mark:after{transform:translate(7px,7px);background:var(--terracotta)}nav{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);backdrop-filter:blur(10px)}nav a{padding:5px 12px;border-radius:7px;color:var(--muted);font-size:14px;font-weight:700}nav a:hover,nav a.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #3246501f}.theme-button{justify-self:end;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--ink);cursor:pointer}.home,.page{padding:clamp(48px,8vw,104px) 0}.home-intro,.page-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;padding-bottom:30px;border-bottom:1px solid var(--line)}.eyebrow{margin:0 0 8px;color:var(--moss);font:500 12px/1.2 DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.home-intro h1,.page-heading h1{margin:0;font-size:clamp(36px,5vw,64px);line-height:1.05;letter-spacing:-.045em}.home-intro>p,.page-heading>p{max-width:370px;margin:0;color:var(--muted)}.filter-bar{display:flex;gap:9px;margin:26px 0}.filter-bar button{padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font:600 14px/1 Nunito Sans,Noto Sans SC,sans-serif;cursor:pointer}.filter-bar button:hover,.filter-bar button.active{border-color:var(--ink);background:var(--ink);color:var(--surface)}.flight-panel{margin:36px 0 54px;padding:28px 30px;border:1px solid var(--line);border-radius:18px;background:var(--surface-soft);box-shadow:var(--shadow);backdrop-filter:blur(10px)}.flight-panel.compact{margin-top:20px}.flight-panel-header{display:flex;align-items:start;justify-content:space-between;gap:20px}.flight-panel h2{margin:0;font-size:24px;letter-spacing:-.025em}.live-indicator,.status,.category{display:inline-flex;align-items:center;gap:6px;border-radius:999px;font-size:12px;font-weight:700}.live-indicator{padding:4px 9px;color:var(--moss);background:color-mix(in srgb,var(--moss) 14%,transparent)}.live-indicator:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.flight-empty{padding-top:22px;color:var(--muted)}.flight-empty strong{display:block;color:var(--ink)}.flight-empty p{margin:5px 0 0}.flight-data{padding-top:25px}.lowest-price{display:flex;align-items:baseline;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}.lowest-price span{color:var(--muted)}.lowest-price strong{font:700 clamp(34px,5vw,56px)/1 "DM Mono",monospace;letter-spacing:-.08em}.flight-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0 0}.flight-overview div{margin:0}.flight-overview dt{color:var(--muted);font-size:13px}.flight-overview dd{margin:2px 0 0;font-weight:700}.flight-list{margin-top:24px;border-top:1px solid var(--line)}.flight-list article{display:grid;grid-template-columns:1.2fr 1fr auto;gap:16px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.flight-list span{color:var(--muted);font-size:14px}.flight-list b{font-family:DM Mono,monospace}.text-link{display:inline-block;margin-top:22px;color:var(--ink);font-weight:700}.text-link span{color:var(--terracotta)}.timeline{position:relative}.entry{display:grid;grid-template-columns:160px 30px minmax(0,1fr);padding-bottom:44px}.entry-date{padding-top:5px;color:var(--muted);font:400 12px/1.4 DM Mono,monospace}.entry-marker{position:relative;width:11px;height:11px;margin-top:7px;border:2px solid var(--canvas);border-radius:50%;background:var(--moss);box-shadow:0 0 0 1px var(--moss)}.entry:not(:last-child) .entry-marker:after{content:"";position:absolute;top:9px;left:3px;width:1px;height:calc(100% + 44px);background:var(--line-strong)}.entry-body{max-width:670px;padding-left:3px}.entry-meta{display:flex;gap:8px;margin-bottom:9px}.category,.status{padding:3px 8px}.category-life{background:color-mix(in srgb,var(--line) 52%,transparent);color:var(--ink)}.category-travel{background:color-mix(in srgb,var(--moss) 17%,transparent);color:var(--moss)}.category-create,.status{background:color-mix(in srgb,var(--terracotta) 15%,transparent);color:var(--terracotta)}.entry h2,.project-note h2{margin:0;font-size:22px;line-height:1.35;letter-spacing:-.025em}.entry h2 a:hover{color:var(--moss)}.entry p,.project-note p{margin:8px 0 0;color:var(--muted)}.project-note{max-width:720px;padding:30px;border-top:3px solid var(--moss);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.site-footer{display:flex;justify-content:space-between;gap:24px;padding:30px 0 38px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.site-footer p{margin:0}.legacy-links{display:flex;flex-wrap:wrap;justify-content:end;gap:12px}.legacy-links a{text-decoration:underline;text-underline-offset:3px}.back-top{display:none;position:fixed;right:18px;bottom:18px;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--surface);box-shadow:var(--shadow);color:var(--ink);font-size:20px;cursor:pointer}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}@media(max-width:768px){.shell{width:min(100% - 32px,1200px)}.site-header{grid-template-columns:1fr auto;gap:12px;padding:14px 0}.site-header nav{grid-column:1/-1;grid-row:2;justify-content:space-between;overflow:auto}.theme-button{grid-column:2;grid-row:1}.home-intro,.page-heading{align-items:start;flex-direction:column;gap:14px}.home-intro>p,.page-heading>p{max-width:520px}.flight-panel{padding:24px;margin-bottom:42px}.entry{grid-template-columns:100px 25px minmax(0,1fr)}.flight-list article{grid-template-columns:1fr auto}.flight-list span{grid-column:1/-1;grid-row:2}.site-footer{align-items:start;flex-direction:column}.legacy-links{justify-content:start}.back-top{display:grid;place-items:center}}@media(max-width:375px){.shell{width:calc(100% - 24px)}.site-header{min-height:unset}.site-header nav{gap:0}.site-header nav a{padding:5px 8px;font-size:13px}.home,.page{padding:36px 0 58px}.home-intro h1,.page-heading h1{font-size:38px}.filter-bar{overflow:auto;padding-bottom:3px}.filter-bar button{flex:0 0 auto}.flight-panel{padding:20px}.flight-panel-header{gap:10px;flex-direction:column}.flight-overview{grid-template-columns:1fr;gap:10px}.entry{grid-template-columns:1fr}.entry-date{padding:0 0 8px}.entry-marker{position:absolute;margin-left:-18px}.entry-body{padding-left:0}.entry:not(:last-child) .entry-marker:after{display:none}.entry{padding:0 0 34px 18px;border-left:1px solid var(--line-strong)}.entry:last-child{border-left-color:transparent}.site-footer{padding-bottom:82px}.back-top{right:12px;bottom:14px}}@media(min-width:1440px){.shell{width:min(1280px,calc(100% - 96px))}.site-header{min-height:96px}.home,.page{padding-top:116px}.entry{grid-template-columns:190px 34px minmax(0,1fr)}.entry h2,.project-note h2{font-size:25px}}.access-note{font-size:13px}.project-card footer span{color:var(--moss);font-size:20px}.header-label{margin:0;color:var(--muted);font:500 12px/1 DM Mono,monospace;letter-spacing:.12em}.hub{padding:clamp(58px,10vw,132px) 0}.hub-intro{max-width:720px;padding-bottom:52px;border-bottom:1px solid var(--line)}.hub-intro h1{margin:0;font-size:clamp(42px,6vw,76px);line-height:1.06;letter-spacing:-.055em}.hub-intro>p:last-child{max-width:520px;margin:20px 0 0;color:var(--muted);font-size:17px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:26px}.project-card{display:flex;min-height:245px;flex-direction:column;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);box-shadow:0 1px 1px #3e525d0a;transition:border-color .18s,transform .18s,box-shadow .18s}.project-card:hover{border-color:var(--line-strong);transform:translateY(-3px);box-shadow:var(--shadow)}.project-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font:500 12px/1 DM Mono,monospace}.project-meta b{color:var(--terracotta);font:inherit}.project-card h2{margin:28px 0 8px;font-size:24px;line-height:1.25;letter-spacing:-.03em}.project-card h2 a:hover{color:var(--moss)}.project-card p{margin:0;color:var(--muted)}.module-link{display:inline-flex;align-items:center;gap:6px;margin-top:18px;color:var(--moss);font-size:14px;font-weight:700}.project-card footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:24px;color:var(--muted)}.project-card footer a{color:var(--moss);font-size:20px}@media(max-width:768px){.project-grid{grid-template-columns:1fr}.hub-intro{padding-bottom:36px}.project-card{min-height:215px}}@media(max-width:375px){.header-label{font-size:11px}.hub{padding:42px 0 64px}.hub-intro h1{font-size:42px}.project-card{padding:20px}}
