/* One visual system shared by the studio, journal, gallery and reading pages. */
:root,html[data-theme="night"] {
 --font-sans:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC",sans-serif; --font-display:var(--font-sans);
 --bg:#111d2a; --bg-deep:#0b1520; --surface:#1a2a3b; --surface-raised:#24394e;
 --text-primary:#eef2f5; --text-secondary:#bdcbd7; --text-muted:#95a8bb;
 --accent:#e6b98a; --accent-soft:#f1cfac; --border:#8299b333;
 --bg-rgb:17,29,42; --surface-rgb:26,42,59; --tint-rgb:230,185,138; --on-accent:#111d2a;
 --glass-bg:rgba(24,42,59,.74); --glass-edge:#d4e3ef30; --glass-highlight:#ffffff30;
 --radius:18px; --duration:.55s; --ease:cubic-bezier(.22,.68,.23,1); --measure:48rem;
}
html[data-theme="day"] {
 --bg:#f0f1ed; --bg-deep:#e4e9e7; --surface:#fafbf7; --surface-raised:#fff;
 --text-primary:#243847; --text-secondary:#506574; --text-muted:#657b88;
 --accent:#875c35; --accent-soft:#6a4527; --border:#304e6626;
 --bg-rgb:240,241,237; --surface-rgb:250,251,247; --tint-rgb:135,92,53; --on-accent:#fff;
 --glass-bg:rgba(246,249,246,.82); --glass-edge:#ffffffad; --glass-highlight:#fff;
}
body { background:var(--bg); background-image:none; font-family:var(--font-sans); transition:background .6s,color .6s; }
[hidden] { display:none!important; }
button,input,select { font:inherit; }
a,button,select,input { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.glass { background:var(--glass-bg); border:1px solid var(--glass-edge); box-shadow:inset 0 1px 0 var(--glass-highlight),0 12px 36px #0000000b; backdrop-filter:blur(22px) saturate(1.25); -webkit-backdrop-filter:blur(22px) saturate(1.25); }
.site-header { position:fixed; top:20px; left:0; right:0; z-index:40; border:0; background:none; backdrop-filter:none; pointer-events:none; }
.site-header__inner { width:min(1240px,calc(100% - 64px)); margin:auto; min-height:64px; padding:10px 22px; border-radius:40px; display:flex; justify-content:space-between; gap:24px; pointer-events:auto; transition:background .5s,box-shadow .5s; }
.brand { display:flex; gap:7px; flex:none; }
.brand__mark { font-size:18px; font-weight:600; letter-spacing:.1em; }
.brand__runtime { color:inherit; font-size:11px; font-weight:400; opacity:.65; }
.site-nav { margin-left:auto; display:flex; gap:6px; flex-wrap:nowrap; }
.site-nav a { padding:9px 12px; font-size:12px; color:var(--text-secondary); border-radius:22px; transition:color .2s,background .3s; }
.site-nav a:hover,.site-nav a[aria-current] { background:rgba(var(--tint-rgb),.11); color:var(--text-primary); }
.header-actions { display:flex; align-items:center; gap:12px; }
.theme-control { padding:0; border:0; display:flex; }
.theme-control select { color:var(--text-primary); background:none; border:0; font-size:11px; width:87px; min-height:40px; cursor:pointer; }
.theme-control select option { color:var(--text-primary); background:var(--surface); }
.motion-toggle { color:var(--text-secondary); background:none; border:0; border-left:1px solid var(--border); padding:0 0 0 12px; min-height:40px; font-size:11px; cursor:pointer; white-space:nowrap; }
.motion-toggle:disabled { opacity:.7; cursor:default; }
.page-home:not(.has-scrolled) .site-header__inner { --glass-bg:rgba(16,35,56,.35); --glass-edge:#ffffff33; color:#fff; }
.page-home:not(.has-scrolled) .site-nav a,.page-home:not(.has-scrolled) .theme-control select,.page-home:not(.has-scrolled) .motion-toggle { color:#fff; }
.page-home:not(.has-scrolled) .site-nav a:hover { background:#ffffff22; }
.site-main,.section-wrap { width:min(1240px,calc(100% - 96px)); margin-inline:auto; }
.site-main { padding:132px 0 80px; }
.site-main>.section { margin-top:0; animation:none; }
.eyebrow,.studio-eyebrow { font:500 10px/1.5 var(--font-sans); letter-spacing:.18em; margin:0 0 22px; color:var(--text-muted); }
h1,h2,h3 { font-family:var(--font-sans); letter-spacing:-.035em; }
.chapter-heading h2 { font-size:clamp(32px,4.1vw,60px); font-weight:400; line-height:1.24; margin:0 0 24px; }
.chapter-heading>p:not(.eyebrow) { font-size:14px; line-height:1.8; color:var(--text-secondary); margin:0 0 28px; }
.studio-button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:11px 23px; border:1px solid var(--border); border-radius:40px; font-size:12px; background:transparent; color:inherit; text-decoration:none; cursor:pointer; transition:transform .3s,background .3s; }
.studio-button:hover { transform:translateY(-3px); background:rgba(var(--surface-rgb),.3); color:inherit; }
.studio-link { display:inline-block; font-size:13px; text-decoration:none; border-bottom:1px solid currentColor; padding:4px 0; transition:letter-spacing .3s; }
.studio-link:hover { letter-spacing:.05em; }
.scene-day,.scene-night { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity 1s; }
.scene-day { opacity:0; } .scene-night { opacity:1; }
html[data-theme="day"] .scene-day { opacity:1; } html[data-theme="day"] .scene-night { opacity:0; }
.day-label { display:none; } html[data-theme="day"] .day-label { display:inline; } html[data-theme="day"] .night-label { display:none; }
[data-scene] { --scene-y:0px; --scene-scale:1.035; }
[data-scene-image] { transform:translate3d(0,var(--scene-y),0) scale(var(--scene-scale)); transform-origin:center; will-change:auto; }
.scene-heading { position:relative; min-height:390px; overflow:hidden; isolation:isolate; border-radius:var(--radius); margin-bottom:64px; display:flex; align-items:center; padding:56px; color:#fff; background:#24384b; }
.scene-heading__image { position:absolute; inset:-3%; z-index:-2; }
.scene-heading::after { content:''; position:absolute; inset:0; background:#091e393d; z-index:-1; }
.scene-heading__copy { max-width:690px; animation:scene-enter .85s var(--ease) both; }
.scene-heading .eyebrow { color:#e3eaf0; }
.scene-heading h1 { font-size:clamp(36px,4.5vw,64px); font-weight:400; line-height:1.2; margin:0 0 24px; }
.scene-heading__copy>p:last-child { font-size:14px; margin:0; color:#eef4fa; }
.post-list { border-top:1px solid var(--border); }
.post-item { padding:32px 20px; margin:0; border-bottom:1px solid var(--border); transition:background .3s,transform .4s var(--ease); }
.post-item:hover { background:rgba(var(--surface-rgb),.6); transform:translateX(5px); }
.post-item h2 { font-size:24px; font-weight:500; margin:12px 0; line-height:1.5; }
.post-item time,.post-item .meta { color:var(--text-muted); font-size:11px; }
.post-item>p:not(.meta) { font-size:14px; line-height:1.8; color:var(--text-secondary); max-width:850px; }
.tag { border-radius:6px; background:rgba(var(--surface-rgb),.65); border:1px solid var(--border); font-size:10px; padding:2px 8px; }
.archive-tools { display:flex; align-items:center; gap:20px; margin-bottom:28px; font-size:12px; color:var(--text-muted); }
.archive-tools label { margin-left:auto; display:flex; align-items:center; gap:12px; }
.archive-tools input { min-height:44px; width:270px; border:1px solid var(--border); border-radius:30px; background:var(--surface); color:var(--text-primary); padding:10px 18px; font-size:12px; }
.archive-tools input::placeholder { color:var(--text-muted); }
.photos-layout { gap:40px; }
.photos-rail { top:112px; }
.photos-rail__link { transition:color .3s,padding .3s; }
.photos-rail__link[aria-current] { color:var(--accent); padding-left:6px; }
.photos-month { scroll-margin-top:130px; }
.photos-month__label { font-size:18px; font-weight:400; }
.photos-grid { gap:22px; }
.photos-thumb { border-radius:var(--radius); border:0; background:var(--surface); transition:transform .5s var(--ease),box-shadow .5s; }
.photos-thumb img { transition:transform .75s var(--ease); }
.photos-thumb:hover { transform:translateY(-5px); box-shadow:0 18px 38px #0002; }
.photos-thumb:hover img { transform:scale(1.045); }
.photos-thumb__meta { background:var(--glass-bg); backdrop-filter:blur(12px); color:var(--text-primary); }
.photo-lightbox[open] { animation:lightbox-open .45s var(--ease) both; }
.photo-lightbox::backdrop { background:#081320d9; backdrop-filter:blur(12px); }
.photo-lightbox__figure img.is-changing { animation:photo-change .5s var(--ease) both; }
.photo-lightbox__shell { border-radius:var(--radius); }
.about-layout { display:grid; grid-template-columns:1fr 1.6fr; gap:80px; }
.about-intro { align-self:start; position:sticky; top:140px; }
.about-intro h2 { font-size:44px; font-weight:400; line-height:1.3; margin:0 0 24px; }
.about-intro>p:not(.eyebrow) { font-size:14px; color:var(--text-secondary); line-height:1.9; }
.about-content { font-size:15px; }
.about-content h2 { font-size:24px; font-weight:500; margin-top:36px; }
.about-content h2:first-child { margin-top:0; }
.article { max-width:1100px; margin:auto; }
.article-header { max-width:100%; padding:36px 0 44px; margin:0 0 44px; border-bottom:1px solid var(--border); }
.article-back { display:inline-block; font-size:11px; margin-bottom:26px; color:var(--text-muted); text-decoration:none; }
.article-header h1 { max-width:1000px; font-size:clamp(30px,3.7vw,52px); font-weight:450; line-height:1.4; margin:18px 0 24px; }
.article-header .meta { font-size:11px; color:var(--text-muted); }
.article-header .lede { font-size:16px; line-height:1.9; max-width:800px; color:var(--text-secondary); }
.article-reading-bar { position:fixed; top:0; left:0; right:0; height:3px; z-index:60; pointer-events:none; }
.article-reading-bar span { display:block; height:100%; width:100%; background:var(--accent); transform:scaleX(var(--reading-progress,0)); transform-origin:left; }
.prose { font-size:16px; line-height:1.95; }
.prose :is(h2,h3,h4) { font-weight:500; }
.prose img,.code-block { border-radius:12px; }
.toc { border-radius:var(--radius); background:var(--glass-bg); backdrop-filter:blur(20px); top:112px; transition:transform .4s var(--ease),opacity .4s; }
.toc__item { transition:color .25s,background .25s,padding .25s; }
.toc__item.is-active { background:rgba(var(--tint-rgb),.12); border-radius:6px; }
.article-footer { padding-top:36px; border-top:1px solid var(--border); }
.article-footer h2 { font-size:24px; font-weight:450; }
.site-footer { background:var(--bg-deep); border-top:1px solid var(--border); padding:36px 0; }
.site-footer__inner { width:min(1240px,calc(100% - 96px)); }
.motion-ready [data-reveal].reveal-pending { opacity:0; translate:0 26px; }
.motion-ready [data-reveal] { transition:opacity .7s var(--ease),translate .7s var(--ease); }
.motion-ready [data-reveal].is-visible { opacity:1; translate:0 0; }
@keyframes scene-enter { from { opacity:0; translate:0 22px; filter:blur(5px); } to { opacity:1; translate:0 0; filter:none; } }
@keyframes lightbox-open { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:none; } }
@keyframes photo-change { from { opacity:.2; transform:scale(.98); } to { opacity:1; transform:none; } }
@media (max-width:900px) { .site-header__inner { gap:12px; } .brand__runtime { display:none; } .about-layout { gap:36px; grid-template-columns:1fr 1.5fr; } .photos-grid { gap:14px; } }
@media (max-width:700px) {
 .site-header { top:10px; } .site-header__inner { width:calc(100% - 24px); padding:7px 16px; border-radius:24px; flex-wrap:wrap; gap:0; min-height:94px; }
 .brand__mark { font-size:16px; } .header-actions { margin-left:auto; gap:8px; } .motion-toggle { font-size:10px; padding-left:8px; } .theme-control select { font-size:10px; width:80px; }
 .site-nav { order:3; width:100%; justify-content:space-between; margin:0; gap:0; } .site-nav a { text-align:center; min-width:52px; padding:5px 12px; font-size:12px; }
 .site-main,.section-wrap { width:calc(100% - 40px); } .site-main { padding-top:128px; padding-bottom:55px; }
 .scene-heading { min-height:340px; padding:30px 25px; margin-bottom:36px; border-radius:16px; }
 .scene-heading h1 { font-size:36px; line-height:1.3; } .scene-heading__copy>p:last-child { font-size:12px; }
 .chapter-heading h2 { font-size:36px; } .chapter-heading>p:not(.eyebrow) { font-size:13px; }
 .archive-tools { flex-wrap:wrap; gap:12px; } .archive-tools label { order:3; width:100%; margin:0; font-size:0; } .archive-tools input { width:100%; } [data-post-count] { margin-left:auto; }
 .post-item { padding:25px 0; } .post-item h2 { font-size:21px; } .post-item>p:not(.meta) { font-size:13px; }
 .photos-layout { gap:22px; } .photos-month { scroll-margin-top:150px; } .photos-grid { gap:12px; } .photos-thumb { border-radius:12px; }
 .about-layout { grid-template-columns:1fr; gap:38px; } .about-intro { position:static; } .about-intro h2 { font-size:36px; }
 .article-header { padding:12px 0 30px; margin-bottom:30px; } .article-header .lede { font-size:14px; } .article-header h1 { font-size:30px; }
 .prose { font-size:15px; } .site-footer__inner { width:calc(100% - 40px); }
}
html.motion-paused *,html.motion-paused *::before,html.motion-paused *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
html.motion-paused [data-reveal] { opacity:1!important; translate:none!important; transition:none!important; }
html.motion-paused [data-scene-image],html.motion-paused .studio-cabin { transform:none!important; }
html.motion-paused .scene-day,html.motion-paused .scene-night { transition:none!important; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } [data-reveal] { opacity:1!important; translate:none!important; } [data-scene-image],.studio-cabin { transform:none!important; } }
@media (prefers-reduced-transparency:reduce),(prefers-contrast:more) { .glass,.site-header__inner,.project-panel { background:var(--surface)!important; color:var(--text-primary)!important; backdrop-filter:none!important; } .site-header .site-nav a,.site-header .theme-control select,.site-header .motion-toggle { color:var(--text-primary)!important; } }
@supports not (backdrop-filter:blur(1px)) { .glass { background:var(--surface); color:var(--text-primary); } }

@media (prefers-reduced-transparency:reduce),(prefers-contrast:more) { .project-panel :is(h3,p,a) { color:var(--text-primary)!important; } }
