:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0b1220;--band: #0e1626;--surface: #121b2c;--border: #1f2b40;--border-strong: #33425c;--text: #e6edf5;--muted: #9aa8bc;--accent: #3cc8b4;--on-accent: #04201c;--accent-soft: rgb(60 200 180 / .12);--s0: #060b22;--s1: #0e1b48;--c-s2: #1b5468;--c-glow: #3cc8b4;--glow-op: .32;--c-sun: #ffffff;--sun-op: 0;--c-far: #24436c;--c-far2: #1d3861;--c-mid: #182d58;--c-mid2: #14254c;--c-lake: #24708a;--c-lake-hi: #7fe3d6;--c-near: #101d3f;--c-ground: var(--bg);--c-pine: #070d21;--c-mist: #3f84a0;--mist-op: .28;--au1: #4fe3c1;--au2: #3b7bd9;--star-op: .9;--aurora-op: .6;--cloud-op: 0;--hero-text: #e9eff7;--hero-muted: #b4c3d6;--hero-line: rgb(255 255 255 / .22);--hero-glass: rgb(255 255 255 / .06);--hero-dot: #4fe3c1}:root[data-theme=light]{color-scheme:light;--bg: #f6f7f9;--band: #ffffff;--surface: #ffffff;--border: #dde2e9;--border-strong: #b9c2cf;--text: #0f1a2a;--muted: #526073;--accent: #0b7a6d;--on-accent: #ffffff;--accent-soft: rgb(11 122 109 / .08);--s0: #0c4a7e;--s1: #2a80bd;--c-s2: #c4e8f3;--c-glow: #ffffff;--glow-op: .4;--c-sun: #ffffff;--sun-op: .9;--c-far: #abdae7;--c-far2: #8fcadb;--c-mid: #5ba8c1;--c-mid2: #4492af;--c-lake: #3fa3d6;--c-lake-hi: #e6f7fc;--c-near: #2b7091;--c-ground: #1d566f;--c-pine: #143f52;--c-mist: #f0fafd;--mist-op: .45;--star-op: 0;--aurora-op: 0;--cloud-op: .42;--hero-text: #ffffff;--hero-muted: #ddeff9;--hero-line: rgb(255 255 255 / .4);--hero-glass: rgb(255 255 255 / .12);--hero-dot: #ffffff}:root{--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-head: "Manrope", "Inter", system-ui, sans-serif;--radius-btn: 8px;--radius-card: 14px;--radius-chip: 8px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:inherit}h1,h2,h3{font-family:var(--font-head);margin:0}p{margin:0}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.wrap{max-width:1120px;margin:0 auto;padding-inline:clamp(20px,5vw,48px)}.muted{color:var(--muted)}.skip-link{position:absolute;left:12px;top:-60px;z-index:10;background:var(--surface);color:var(--text);padding:10px 14px;border-radius:var(--radius-btn)}.skip-link:focus{top:12px}.btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:12px 22px;border-radius:var(--radius-btn);font-weight:600;text-decoration:none;border:1px solid transparent;cursor:pointer}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--ghost{border-color:var(--hero-line);background:var(--hero-glass);color:var(--hero-text);font-weight:500}.btn--outline{border-color:var(--border-strong);color:var(--text);font-weight:500}.btn svg{flex:none}.sky{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--s0) 0%,var(--s1) 70%);color:var(--hero-text);--scene-h: clamp(380px, 50svh, 1000px)}.sky--hero{min-height:100svh;display:flex;flex-direction:column}.sky--hero .sky__content{flex:1;display:flex;flex-direction:column}.sky--band{--scene-h: clamp(240px, 28svh, 560px)}.sky__stars,.sky__scene{position:absolute;left:0;right:0;width:100%;display:block;pointer-events:none}.sky__stars{top:0;height:100%}.sky__scene{bottom:0;height:var(--scene-h)}.sky__content{position:relative;z-index:1}.v-stars{opacity:var(--star-op)}.v-aurora{opacity:var(--aurora-op)}.v-au1{stroke:var(--au1)}.v-au2{stroke:var(--au2)}.v-clouds{opacity:var(--cloud-op)}.v-hz-stop{stop-color:var(--c-s2)}.v-glow-stop{stop-color:var(--c-glow)}.v-glow{opacity:var(--glow-op)}.v-sun{fill:var(--c-sun);opacity:var(--sun-op)}.v-far{fill:var(--c-far)}.v-far2{fill:var(--c-far2)}.v-mist-stop{stop-color:var(--c-mist)}.v-mist{opacity:var(--mist-op)}.v-mid{fill:var(--c-mid)}.v-mid2{fill:var(--c-mid2)}.v-lake-top{stop-color:var(--c-lake-hi)}.v-lake-bot{stop-color:var(--c-lake)}.v-reflect{stroke:var(--c-lake-hi)}.v-near{fill:var(--c-near)}.v-ground{fill:var(--c-ground)}.v-pine{fill:var(--c-pine)}.site-header{position:relative;z-index:3}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:24px;max-width:none;padding-inline:clamp(20px,3.5vw,72px)}.brand{display:flex;align-items:center;gap:10px;color:var(--hero-text);text-decoration:none;font-family:var(--font-head);font-weight:700;font-size:18px;letter-spacing:-.02em}.brand__mark{width:30px;height:30px;border-radius:var(--radius-chip);background:var(--accent);color:var(--on-accent);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}.site-header__actions{display:flex;align-items:center;gap:10px}.nav{display:flex;align-items:center;gap:22px;font-size:15px}.nav a{color:var(--hero-text);text-decoration:none;text-underline-offset:5px}.nav a.is-life{color:var(--hero-muted)}.nav a:hover{text-decoration:underline}.nav a[aria-current=page]{color:var(--hero-text);font-weight:600;text-decoration:none;border-bottom:2px solid var(--hero-dot);padding-bottom:2px}.nav__sep{width:1px;height:16px;background:var(--hero-line)}.icon-btn{width:44px;height:44px;border-radius:var(--radius-chip);border:1px solid var(--hero-line);background:var(--hero-glass);color:var(--hero-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.theme-btn .i-moon{display:none}:root[data-theme=light] .theme-btn .i-sun{display:none}:root[data-theme=light] .theme-btn .i-moon{display:block}.menu-btn{display:none}.menu-panel{display:none;position:absolute;top:84px;left:clamp(12px,4vw,48px);right:clamp(12px,4vw,48px);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px;flex-direction:column;gap:18px;box-shadow:0 18px 40px #040a1859}.menu-panel.is-open{display:flex}.menu-panel__group{display:flex;flex-direction:column}.menu-panel__label{font-size:13px;color:var(--muted);margin-bottom:4px}.menu-panel a{min-height:44px;display:flex;align-items:center;font-size:17px;font-weight:500;text-decoration:none;color:var(--text)}.menu-panel a[aria-current=page]{color:var(--accent);font-weight:600}.menu-panel__rule{height:1px;background:var(--border)}@media(max-width:760px){.nav{display:none}.menu-btn{display:inline-flex}}@media(min-width:761px){.menu-panel{display:none!important}}.hero{max-width:860px;margin:0 auto;flex:1;justify-content:center;padding:32px clamp(20px,5vw,48px) calc(var(--scene-h) * .93 + 16px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--hero-muted)}.eyebrow__dot{width:8px;height:8px;border-radius:999px;background:var(--hero-dot)}.hero h1{font-weight:800;font-size:clamp(48px,10vw,88px);line-height:1;letter-spacing:-.045em}.hero__lead{font-size:21px;line-height:1.5;max-width:36ch}.hero__sub{color:var(--hero-muted);max-width:46ch}.hero__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}.section{padding-block:88px}.section--band{background:var(--band);border-block:1px solid var(--border)}.section__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:36px}.section__head>div{display:flex;flex-direction:column;gap:10px;max-width:560px}.section h2{font-size:36px;font-weight:700;letter-spacing:-.03em;line-height:1.1}.text-link{color:var(--accent);font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.about{display:flex;flex-wrap:wrap;align-items:center;gap:56px}.about__photo{flex:0 1 340px;min-width:240px;aspect-ratio:4 / 5;border-radius:var(--radius-card);overflow:hidden;background:var(--surface);border:1px dashed var(--border-strong);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}.about__photo img{width:100%;height:100%;object-fit:cover}.about__text{flex:1 1 420px;max-width:600px;display:flex;flex-direction:column;gap:18px}.about__text .lead{font-size:18px}.link-row{display:flex;flex-wrap:wrap;gap:20px;font-size:15px}.work-list{border-top:1px solid var(--border)}.work-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 32px;padding-block:26px;border-bottom:1px solid var(--border)}.work-item h3{flex:0 1 260px;font-size:21px;font-weight:700;letter-spacing:-.02em}.work-item p{flex:1 1 340px;color:var(--muted)}.tag{flex:0 0 auto;font-size:13px;padding:4px 10px;border-radius:var(--radius-chip);border:1px solid var(--border);color:var(--muted);white-space:nowrap}.tag--accent{border-color:transparent;background:var(--accent-soft);color:var(--accent)}.tag--outline-accent{border-color:var(--accent);color:var(--accent)}.resume-grid{display:flex;flex-wrap:wrap;gap:32px 56px;margin-top:40px}.resume-grid>div{flex:1 1 320px;display:flex;flex-direction:column;gap:14px}.resume-grid h3{font-size:18px;font-weight:700}.resume-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 16px}.resume-row span:last-child{color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;min-height:180px;display:flex;flex-direction:column;gap:14px;text-decoration:none;color:var(--text)}.tile:hover{border-color:var(--border-strong)}.tile svg{color:var(--accent)}.tile h3{font-size:20px;font-weight:700}.tile p{color:var(--muted);font-size:15px}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;padding-top:32px;padding-bottom:calc(var(--scene-h) * .9)}.page-head>div{display:flex;flex-direction:column;gap:10px;max-width:620px}.page-head h1{font-size:clamp(40px,7vw,64px);font-weight:800;letter-spacing:-.04em;line-height:1}.page-head p{color:var(--hero-muted);font-size:17px}.page-body{padding-block:40px 88px}.empty-note{padding:32px 0;color:var(--muted)}.food-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--border)}.segmented{display:inline-flex;padding:4px;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.segmented button{border:0;cursor:pointer;font:inherit;font-size:14px;font-weight:600;padding:0 16px;min-height:40px;border-radius:7px;background:transparent;color:var(--text)}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.food-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{cursor:pointer;font:inherit;font-size:14px;font-weight:500;padding:0 14px;min-height:44px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text);display:inline-flex;align-items:center;gap:7px}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.select-label{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.select-label select{font:inherit;font-size:14px;min-height:44px;padding:0 12px;border-radius:var(--radius-btn);border:1px solid var(--border);background:var(--surface);color:var(--text)}.food-layout{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start;margin-top:28px}.food-list{flex:1 1 560px;min-width:0}.food-group{margin-top:18px}.food-group h2{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border-strong);font-size:16px;font-weight:700}.food-group h2 svg{color:var(--accent)}.food-group__count{margin-left:auto;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--muted)}.place{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding-block:14px;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none}.place:hover h3{text-decoration:underline;text-underline-offset:4px}.place__main{display:flex;align-items:center;gap:14px;min-width:0}.place__icon{flex:none;width:42px;height:42px;border-radius:var(--radius-chip);background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center}.place__text{display:flex;flex-direction:column;gap:2px;min-width:0}.place h3{font-size:18px;font-weight:700;letter-spacing:-.015em}.place__meta{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:14px;color:var(--muted)}.place__note{font-size:15px;margin-top:4px}.place__badges{display:flex;flex-wrap:wrap;gap:6px}.food-aside{flex:1 1 280px;max-width:380px;display:flex;flex-direction:column;gap:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:22px;display:flex;flex-direction:column;gap:10px}.card h2{font-size:18px;font-weight:700}.card .btn{align-self:flex-start;margin-top:6px;padding:11px 18px;font-size:15px}.follow-link{min-height:44px;display:flex;flex-direction:column;justify-content:center;padding-block:6px;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text)}.follow-link:last-child{border-bottom:0}.follow-link span:first-child{font-weight:600}.follow-link span:last-child{font-size:14px;color:var(--muted)}.album{margin-top:40px}.album:first-child{margin-top:0}.album h2{font-size:26px;font-weight:700;letter-spacing:-.02em;margin-bottom:18px}.masonry{columns:3 260px;column-gap:16px}.masonry figure{margin:0 0 16px;break-inside:avoid}.masonry a{display:block;border-radius:10px;overflow:hidden}.masonry figcaption{font-size:14px;color:var(--muted);margin-top:6px}.site-footer{border-top:1px solid var(--border)}.site-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding-block:48px}.site-footer__inner>div{display:flex;flex-direction:column;gap:6px}.site-footer__title{font-family:var(--font-head);font-size:22px;font-weight:700;letter-spacing:-.02em}.site-footer__small{padding-bottom:32px;font-size:13px;color:var(--muted)}@media(min-width:1800px){body{font-size:17px}.wrap{max-width:1280px}.hero{max-width:980px}.hero h1{font-size:clamp(88px,5.4vw,112px)}.hero__lead{font-size:24px}.hero__sub{font-size:18px}.section h2{font-size:42px}.work-item h3{font-size:23px}.nav{font-size:16px;gap:26px}}@media(min-width:2400px){body{font-size:18px}.wrap{max-width:1440px}.hero{max-width:1100px}.hero h1{font-size:clamp(112px,5vw,140px)}.hero__lead{font-size:27px}.hero__sub{font-size:20px}.eyebrow{font-size:16px}.section{padding-block:112px}.section h2{font-size:48px}.work-item h3{font-size:25px}.nav{font-size:17px;gap:30px}.brand{font-size:20px}}
