*,
*::before,
*::after{box-sizing:border-box;margin:0;padding:0}
html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;hanging-punctuation:first last;scroll-padding-top:var(--space-16)}
body{min-height:100dvh;line-height:1.6;font-family:var(--font-body,sans-serif);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);word-break:keep-all;overflow-wrap:break-word}
img,
picture,
video,
canvas,
svg{display:block;max-width:100%;height:auto}
ul[role='list'],
ol[role='list']{list-style:none}
input,
button,
textarea,
select{font:inherit;color:inherit}
h1,
h2,
h3,
h4,
h5,
h6{text-wrap:balance;line-height:1.2;font-family:var(--font-display,var(--font-body));letter-spacing:-0.01em}
p,
li,
figcaption{text-wrap:pretty;max-width:72ch}
::selection{background:color-mix(in oklab,var(--color-accent) 28%,transparent);color:var(--color-text)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}
@media (prefers-reduced-motion:reduce){*,
*::before,
*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}
button{cursor:pointer;background:none;border:none}
table{border-collapse:collapse;width:100%}
a,
button,
[role='button'],
[role='link'],
input,
textarea,
select{transition:
color var(--transition-interactive),
background var(--transition-interactive),
border-color var(--transition-interactive),
box-shadow var(--transition-interactive),
transform var(--transition-interactive)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
:root{color-scheme:light}
[data-theme='dark']{color-scheme:dark}
main:focus{outline:none}
:root,
[data-theme='light']{--color-bg:#fbf6ec;--color-surface:#fffdf7;--color-surface-2:#f6eee0;--color-surface-offset:#f1e7d6;--color-divider:#e6d9c2;--color-border:#ddccb0;--color-text:#3b2a1d;--color-text-muted:#7c6650;--color-text-faint:#b6a487;--color-text-inverse:#fffdf7;--color-accent:#c0592f;--color-accent-hover:#a8471f;--color-accent-soft:#f3ddcf;--color-accent-contrast:#fffdf7;--color-sage:#6f7f5e;--color-sage-soft:#e4e6d6;--color-gold:#b8893a;--color-gold-soft:#f0e4cd;--radius-sm:0.5rem;--radius-md:0.85rem;--radius-lg:1.25rem;--radius-xl:1.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(59,42,29,0.06);--shadow-md:0 6px 20px rgba(59,42,29,0.08);--shadow-lg:0 18px 44px rgba(59,42,29,0.14);--transition-interactive:220ms cubic-bezier(0.16,1,0.3,1);--text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);--text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);--text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem);--text-lg:clamp(1.15rem,1rem + 0.75vw,1.5rem);--text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);--text-2xl:clamp(2rem,1.4rem + 2vw,3.25rem);--text-hero:clamp(2.6rem,1rem + 5.5vw,5rem);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--content-narrow:680px;--content-default:1080px;--content-wide:1240px;--font-display:'Noto Serif KR','Nanum Myeongjo',Georgia,serif;--font-body:'Pretendard Variable',Pretendard,'Apple SD Gothic Neo',
'Malgun Gothic',sans-serif}
[data-theme='dark']{--color-bg:#15110e;--color-surface:#30261e;--color-surface-2:#241c16;--color-surface-offset:#3a2a20;--color-divider:#49382b;--color-border:#49382b;--color-text:#f3e7d2;--color-text-muted:#b8a38c;--color-text-faint:#8a7660;--color-text-inverse:#15110e;--color-accent:#e9825f;--color-accent-hover:#f2977a;--color-accent-soft:#3a241b;--color-accent-contrast:#15110e;--color-sage:#a3b47f;--color-sage-soft:#36412a;--color-gold:#d9ad63;--color-gold-soft:#3a2e18;--shadow-sm:0 1px 2px rgba(0,0,0,0.45);--shadow-md:0 6px 20px rgba(0,0,0,0.5);--shadow-lg:0 18px 44px rgba(0,0,0,0.6)}
@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:#1a130d;--color-surface:#221a12;--color-surface-2:#2a2016;--color-surface-offset:#2f2418;--color-divider:#38291c;--color-border:#463525;--color-text:#efe4d2;--color-text-muted:#b3a088;--color-text-faint:#7a6957;--color-text-inverse:#1a130d;--color-accent:#e8845a;--color-accent-hover:#f49d72;--color-accent-soft:#3a2518;--color-accent-contrast:#1a130d;--color-sage:#9aab86;--color-sage-soft:#2a2f1f;--color-gold:#d9ad63;--color-gold-soft:#2f2517;--shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow-md:0 6px 20px rgba(0,0,0,0.4);--shadow-lg:0 18px 44px rgba(0,0,0,0.5)}}
.container{width:100%;max-width:var(--content-default);margin-inline:auto;padding-inline:var(--space-6)}
.section{padding-block:clamp(var(--space-12),6vw,var(--space-24))}
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--color-bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color var(--transition-interactive),
box-shadow var(--transition-interactive)}
.site-header[data-scrolled='true']{border-bottom-color:var(--color-border);box-shadow:var(--shadow-sm)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-4)}
.logo{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--color-text);text-decoration:none;letter-spacing:-0.02em}
.logo__mark{width:32px;height:32px;flex:none;color:var(--color-accent)}
.main-nav{display:none}
.main-nav__list{display:flex;align-items:center;gap:var(--space-6)}
.main-nav__link{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);text-decoration:none;padding-block:var(--space-2)}
.main-nav__link:hover{color:var(--color-accent)}
.header__actions{display:flex;align-items:center;gap:var(--space-2)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);color:var(--color-text-muted)}
.icon-btn:hover{background:var(--color-surface-2);color:var(--color-text)}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);color:var(--color-text)}
.menu-btn:hover{background:var(--color-surface-2)}
@media (min-width:880px){.main-nav{display:block}
.menu-btn{display:none}}
.hero{position:relative;overflow:hidden;padding-block:clamp(var(--space-16),8vw,var(--space-24))}
.hero__inner{display:grid;gap:var(--space-12);align-items:center}
.hero__media{position:relative;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:16 / 11;order:-1}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero__eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-4)}
.hero__eyebrow::before{content:'';width:28px;height:2px;background:var(--color-accent)}
.hero__title{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-5);line-height:1.15}
.hero__title em{font-style:italic;color:var(--color-accent)}
.hero__lede{font-size:var(--text-lg);color:var(--color-text-muted);max-width:46ch;line-height:1.6}
.hero__meta{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border)}
.hero__stat dt{font-size:var(--text-xs);color:var(--color-text-faint);font-weight:500}
.hero__stat dd{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-text);margin-top:var(--space-1)}
@media (min-width:880px){.hero__inner{grid-template-columns:1.05fr 0.95fr;gap:var(--space-16)}
.hero__media{order:1;aspect-ratio:5 / 4}}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-10);flex-wrap:wrap}
.section-head__label{font-size:var(--text-xs);font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--color-accent)}
.section-head__title{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-top:var(--space-2)}
.section-head__link{font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:var(--space-2)}
.section-head__link:hover{color:var(--color-accent)}
.section-head__link svg{transition:transform var(--transition-interactive)}
.section-head__link:hover svg{transform:translateX(3px)}
.feature{display:grid;gap:var(--space-6)}
.feature__card{display:grid;gap:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}
.feature__body{padding:var(--space-6) var(--space-6) var(--space-8);display:flex;flex-direction:column;gap:var(--space-3)}
.tag{align-self:flex-start;font-size:var(--text-xs);font-weight:600;color:var(--color-accent);background:var(--color-accent-soft);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);line-height:1.4}
.tag--sage{color:var(--color-sage);background:var(--color-sage-soft)}
.tag--gold{color:var(--color-gold);background:var(--color-gold-soft)}
.feature__title{font-size:var(--text-xl);font-weight:700;color:var(--color-text)}
.feature__excerpt{color:var(--color-text-muted);line-height:1.7}
.feature__meta{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-faint)}
.feature__meta span + span::before{content:'·';margin-right:var(--space-3)}
@media (min-width:880px){.feature{grid-template-columns:1.4fr 1fr}
.feature__card{grid-template-columns:1fr}}
.cta{background:var(--color-accent);color:var(--color-accent-contrast);border-radius:var(--radius-xl);padding:clamp(var(--space-10),5vw,var(--space-16)) var(--space-8);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}
.cta__title{font-size:var(--text-xl);font-weight:700}
.cta__text{font-size:var(--text-base);opacity:0.92;max-width:42ch}
.site-footer{border-top:1px solid var(--color-border);padding-block:var(--space-12) var(--space-8)}
.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-8);align-items:flex-start}
.site-footer__brand{max-width:36ch}
.site-footer__tag{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-text)}
.site-footer__desc{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-2);line-height:1.65}
.site-footer__cols{display:flex;gap:clamp(var(--space-8),6vw,var(--space-16));flex-wrap:wrap}
.footer-col h3{font-size:var(--text-xs);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:var(--space-4);font-family:var(--font-body)}
.footer-col ul{display:flex;flex-direction:column;gap:var(--space-3)}
.footer-col a{font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none}
.footer-col a:hover{color:var(--color-accent)}
.site-footer__bottom{margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--color-divider);font-size:var(--text-xs);color:var(--color-text-faint);display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
.reveal{opacity:0;transform:translateY(16px);transition:opacity 600ms cubic-bezier(0.16,1,0.3,1),
transform 600ms cubic-bezier(0.16,1,0.3,1)}
.reveal[data-in='true']{opacity:1;transform:none}
.upcoming{display:grid;gap:var(--space-3);list-style:none}
.upcoming__item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;color:inherit}
.upcoming__item:hover{border-color:var(--color-accent);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.upcoming__date{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);color:var(--color-accent);white-space:nowrap;flex:none}
.upcoming__title{font-weight:600;font-size:var(--text-base);flex:1;max-width:none}
.upcoming__badge{font-size:var(--text-xs);font-weight:600;color:var(--color-sage);background:var(--color-sage-soft);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);flex:none}
.upcoming__empty{color:var(--color-text-faint);font-size:var(--text-sm);padding:var(--space-4) var(--space-2)}
.feature__card--plain{position:relative;overflow:hidden}
.feature__card--plain::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:var(--color-accent)}
.feature__link{text-decoration:none;color:inherit;display:block}
.feature__link:hover .feature__title{color:var(--color-accent)}
.feature__quote{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;font-style:italic;line-height:1.5;color:var(--color-text);padding-left:var(--space-4);border-left:2px solid var(--color-accent-soft);margin-block:var(--space-2)}
.article-hero{padding-block:clamp(var(--space-12),7vw,var(--space-20)) var(--space-10)}
.article-hero__eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-5)}
.article-hero__eyebrow::before{content:'';width:28px;height:2px;background:var(--color-accent)}
.article-quote{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;line-height:1.28;color:var(--color-text);margin-bottom:var(--space-6)}
.article-quote em{font-style:italic;color:var(--color-accent)}
.article-hero__attr{font-size:var(--text-sm);color:var(--color-text-muted)}
.article-hero__attr strong{color:var(--color-text)}
.article-hero__note{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:var(--space-2)}
.article-body p{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.85;margin-bottom:var(--space-5)}
.article-body p:last-child{margin-bottom:0}
.article-body strong{color:var(--color-text);font-weight:700}
.back-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);text-decoration:none;margin-top:var(--space-10)}
.back-link:hover{color:var(--color-accent)}
.back-link svg{transition:transform var(--transition-interactive)}
.back-link:hover svg{transform:translateX(-3px)}
.calendar-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:clamp(var(--space-4),3vw,var(--space-6));box-shadow:var(--shadow-sm)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5)}
.calendar-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-text)}
.cal-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted);font-size:1.25rem;line-height:1}
.cal-nav-btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-soft)}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-weekday{text-align:center;font-size:var(--text-xs);font-weight:700;color:var(--color-text-faint);padding-bottom:var(--space-3)}
.cal-weekday:first-child{color:var(--color-accent)}
.cal-day{position:relative;aspect-ratio:1;min-height:40px;display:flex;align-items:center;justify-content:center;border:1.5px solid transparent;border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);font-weight:500}
.cal-day:hover{background:var(--color-surface-2)}
.cal-day--empty{visibility:hidden;cursor:default}
.cal-day--today{border-color:var(--color-gold);color:var(--color-gold);font-weight:700}
.cal-day--holiday{color:var(--color-accent)}
.cal-day--selected,
.cal-day--selected:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast);font-weight:700}
.cal-day__dot{position:absolute;bottom:5px;width:5px;height:5px;border-radius:var(--radius-full);background:var(--color-sage)}
.cal-day__dot--holiday{background:var(--color-accent)}
.cal-day--selected .cal-day__dot{background:var(--color-accent-contrast)}
.day-panel{margin-top:var(--space-8)}
.day-panel__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;margin-bottom:var(--space-4)}
.day-list{display:grid;gap:var(--space-3);list-style:none;margin-bottom:var(--space-6)}
.day-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}
.day-item--holiday{background:var(--color-accent-soft);border-color:transparent}
.day-item__title{font-size:var(--text-base);font-weight:700;color:var(--color-text);margin-bottom:var(--space-1)}
.day-item__memo{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.65;margin-bottom:var(--space-3)}
.day-item__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.day-item__author{font-size:var(--text-xs);color:var(--color-text-faint)}
.day-empty{color:var(--color-text-faint);font-size:var(--text-sm);padding:var(--space-3) 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;text-decoration:none;border:1px solid transparent}
.btn--primary{background:var(--color-accent);color:var(--color-accent-contrast)}
.btn--primary:hover{background:var(--color-accent-hover);transform:translateY(-1px)}
.btn--ghost{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-muted)}
.btn--ghost:hover{color:var(--color-accent);border-color:var(--color-accent)}
.btn--block{width:100%}
.btn--sm{min-height:36px;padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}
.modal-overlay{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;padding:var(--space-4);background:color-mix(in oklab,var(--color-text) 45%,transparent);backdrop-filter:blur(4px)}
.modal-overlay[data-open='true']{display:flex}
.modal{width:100%;max-width:440px;max-height:88dvh;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);box-shadow:var(--shadow-lg)}
.modal__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700}
.field{display:flex;flex-direction:column;gap:var(--space-2)}
.field > span{font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted)}
.field input,
.field textarea{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);font-size:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text)}
.field textarea{resize:vertical;min-height:120px;line-height:1.7}
.field input:focus-visible,
.field textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}
.form-hint{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:calc(var(--space-2) * -1)}
.form-error{font-size:var(--text-sm);font-weight:600;color:var(--color-accent);min-height:1.4em}
.modal__actions{display:flex;gap:var(--space-3)}
.modal__actions .btn{flex:1}
.lock-gate{max-width:420px;margin-inline:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-6);text-align:center;box-shadow:var(--shadow-sm)}
.lock-gate__icon{width:56px;height:56px;margin:0 auto var(--space-5);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--color-accent-soft);color:var(--color-accent)}
.lock-gate__icon svg{width:26px;height:26px}
.lock-gate__title{font-size:var(--text-lg);font-weight:700;margin-bottom:var(--space-2)}
.lock-gate__desc{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-6);margin-inline:auto}
.lock-gate__form{display:grid;gap:var(--space-3)}
.lock-gate__form input{min-height:52px;padding:var(--space-3) var(--space-4);font-size:1rem;text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg);color:var(--color-text)}
.board-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-6)}
.board-toolbar .btn{flex:none}
.post-list{display:grid;gap:var(--space-4);list-style:none}
.post{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6)}
.post__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-3)}
.post__title{font-size:var(--text-lg);font-weight:700;color:var(--color-text)}
.post__date{font-size:var(--text-xs);color:var(--color-text-faint);white-space:nowrap}
.post__content{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.8;white-space:pre-wrap;margin-bottom:var(--space-4);max-width:none}
.post__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-divider)}
.post__author{font-size:var(--text-xs);font-weight:700;color:var(--color-sage)}
.post-empty{text-align:center;color:var(--color-text-faint);font-size:var(--text-sm);padding:var(--space-16) var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-lg);max-width:none}
.cta__btn-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);background:var(--color-accent-contrast);color:var(--color-accent);font-weight:700;font-size:var(--text-sm);text-decoration:none}
.cta__btn-link:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.main-nav{display:none !important}
.menu-btn{display:inline-flex !important}
.nav-backdrop{position:fixed;inset:0;z-index:55;background:color-mix(in oklab,var(--color-text) 40%,transparent);opacity:0;pointer-events:none;transition:opacity var(--transition-interactive)}
.nav-backdrop[data-open='true']{opacity:1;pointer-events:auto}
.nav-drawer{position:fixed;inset:0 auto 0 0;z-index:60;width:min(300px,84vw);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5) var(--space-5) var(--space-8);background:var(--color-surface);border-right:1px solid var(--color-border);box-shadow:var(--shadow-lg);transform:translateX(-102%);transition:transform var(--transition-interactive);overflow-y:auto}
.nav-drawer[data-open='true']{transform:translateX(0)}
.nav-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}
.nav-drawer__brand{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--color-text);text-decoration:none;letter-spacing:-0.02em}
.nav-drawer__brand svg{width:26px;height:26px;color:var(--color-accent)}
.nav-drawer__close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:var(--radius-full);color:var(--color-text-muted)}
.nav-drawer__close:hover{background:var(--color-surface-2);color:var(--color-text)}
.nav-drawer__nav{display:flex;flex-direction:column}
.nav-drawer__cat{font-family:var(--font-body);font-size:var(--text-xs);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--color-text-faint);padding:0 var(--space-3);margin:var(--space-5) 0 var(--space-2)}
.nav-drawer__cat:first-child{margin-top:0}
.nav-drawer__link{display:flex;align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;color:var(--color-text-muted);text-decoration:none}
.nav-drawer__link svg{width:20px;height:20px;flex:none;opacity:0.8}
.nav-drawer__link:hover{background:var(--color-surface-2);color:var(--color-text)}
.nav-drawer__link[aria-current='page']{background:var(--color-accent-soft);color:var(--color-accent)}
.nav-drawer__link[aria-current='page'] svg{opacity:1}
.nav-drawer__foot{margin-top:auto;padding-top:var(--space-8);font-size:var(--text-xs);color:var(--color-text-faint)}
.header__lead{display:flex;align-items:center;gap:var(--space-2);min-width:0}
.header__lead .logo span{white-space:nowrap}
.hero__plate{position:relative;display:grid;place-items:center;border:1px solid var(--color-border);background:
radial-gradient(ellipse 70% 60% at 24% 18%,color-mix(in oklab,var(--color-gold) 34%,transparent),transparent 66%),
radial-gradient(ellipse 70% 60% at 82% 86%,color-mix(in oklab,var(--color-accent) 28%,transparent),transparent 66%),
linear-gradient(160deg,var(--color-surface-2),var(--color-surface-offset))}
.hero__plate-mark{font-family:var(--font-display);font-weight:900;font-size:clamp(5rem,19vw,9rem);line-height:1;color:color-mix(in oklab,var(--color-accent) 76%,var(--color-text))}
.hero__plate-cap{position:absolute;left:0;right:0;bottom:var(--space-5);text-align:center;font-size:var(--text-xs);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--color-text-muted);max-width:none}
.cta__links{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}
.board-tabs{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-divider)}
.board-tab{font-size:var(--text-sm);font-weight:600;padding:0.5rem 1rem;min-height:40px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted)}
.board-tab:hover{ color:var(--color-text); border-color:var(--color-text-faint); }
.board-tab.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}
.board-tab--add{background:transparent;border-style:dashed;color:var(--color-text-faint)}
.board-tab--add:hover{ color:var(--color-accent); border-color:var(--color-accent); }
.modal__where{margin-top:calc(var(--space-2) * -1);font-size:var(--text-xs);color:var(--color-text-faint)}
.modal__where b{ color:var(--color-text-muted); font-weight:700; }
.cat-bar{display:flex;flex-wrap:wrap;gap:0.4rem;margin:calc(var(--space-5) * -1) 0 var(--space-5)}
.cat-bar:empty{ display:none; margin:0; }
.post__cat{display:inline-block;margin-right:var(--space-2);padding:0.1rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-sage-soft);color:var(--color-sage);font-family:var(--font-body);font-size:var(--text-xs);font-weight:700;vertical-align:middle}
.cat-list{display:grid;gap:var(--space-2);list-style:none;max-height:40dvh;overflow-y:auto}
.cat-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:none}
.cat-row__name{ flex:1; font-weight:600; font-size:var(--text-sm); }
.cat-row__count{ font-size:var(--text-xs); color:var(--color-text-faint); }
.cat-empty{padding:var(--space-5) var(--space-3);text-align:center;font-size:var(--text-sm);color:var(--color-text-faint);border:1px dashed var(--color-border);border-radius:var(--radius-md);max-width:none}
.cat-add{ display:flex; gap:var(--space-2); }
.cat-add input{flex:1;min-height:44px;padding:var(--space-2) var(--space-4);font-size:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text)}
.cat-add .btn{ flex:none; }
.field select{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);font-size:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text)}
.post__media{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-bottom:var(--space-4)}
@media (max-width:520px){ .post__media{ grid-template-columns:repeat(2,1fr); } }
.post__media--one{ grid-template-columns:1fr; max-width:460px; }
.post__m{position:relative;display:block;width:100%;padding:0;border:none;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-2);aspect-ratio:1;cursor:pointer}
.post__media--one .post__m{ aspect-ratio:4 / 3; }
.post__m img,.post__m video{width:100%;height:100%;object-fit:cover;display:block}
.post__m:hover img{ opacity:0.92; }
.post__play{position:absolute;inset:0;display:grid;place-items:center;font-size:1.5rem;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,0.6);background:rgba(0,0,0,0.18);pointer-events:none}
.att-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface-2);display:grid;place-items:center;font-size:1.1rem;color:var(--color-text-muted)}
.att-thumb img{ width:100%; height:100%; object-fit:cover; }
.att-thumb--v{ border:1px solid var(--color-border); }
#mediaLb .lightbox__stage{ padding:var(--space-12) var(--space-4); }
#mediaLb video.lightbox__img{ max-height:82dvh; background:#000; }
:root[data-theme='dark'] .hero__plate{border-color:var(--color-border);background:
radial-gradient(circle at 35% 20%,rgba(190,145,75,0.28),transparent 42%),
linear-gradient(135deg,#30261e,#3a2a20);box-shadow:var(--shadow-lg)}
:root[data-theme='dark'] .hero__plate-mark{color:color-mix(in oklab,var(--color-accent) 62%,var(--color-text))}
.post__m--embed{display:grid;place-items:center;background:
radial-gradient(circle at 40% 30%,rgba(233,130,95,0.16),transparent 60%),
var(--color-surface-2);border:1px solid var(--color-border)}
.post__src{position:absolute;left:var(--space-2);bottom:var(--space-2);padding:0.15rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted)}
.post__m--embed .post__play{position:static;background:none;color:var(--color-accent);font-size:1.6rem;text-shadow:none}
.lightbox__frame{width:min(94vw,1100px);aspect-ratio:16 / 9;max-height:80dvh;border:none;border-radius:var(--radius-md);background:#000}
.modal--wide{ max-width:620px; }
.vpick-row{ display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; }
.vpick-note{ font-size:var(--text-xs); color:var(--color-text-muted); }
.vpick-bar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-divider)}
.vpick-bar .vpick-note{ margin-left:auto; font-weight:700; color:var(--color-text); }
.vpick-list{display:grid;gap:var(--space-1);list-style:none;max-height:52dvh;overflow-y:auto;margin:0 calc(var(--space-2) * -1);padding:var(--space-2)}
.vpick-label{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer}
.vpick-label:hover{ background:var(--color-surface-2); }
.vpick-label input{ flex:none; width:18px; height:18px; accent-color:var(--color-accent); }
.vpick-thumb{width:48px;height:48px;flex:none;object-fit:cover;border-radius:var(--radius-sm);background:var(--color-surface-2)}
.vpick-meta{ display:grid; gap:0.1rem; min-width:0; }
.vpick-date{ font-size:var(--text-xs); font-weight:700; color:var(--color-text); font-variant-numeric:tabular-nums; }
.vpick-text{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fault{max-width:420px;margin:var(--space-5) auto 0;padding:var(--space-5);border:1px solid #d03b3b;border-left-width:3px;border-radius:var(--radius-md);background:var(--color-surface);text-align:left}
.fault__title{ font-size:var(--text-sm); font-weight:700; color:#d03b3b; margin-bottom:var(--space-2); }
.fault__msg{font-size:var(--text-xs);line-height:1.7;color:var(--color-text-muted);margin-bottom:var(--space-4);word-break:break-all;max-width:none}
.post__acts{display:flex;align-items:center;gap:var(--space-2)}
.post__fav{font-size:var(--text-lg);line-height:1;padding:var(--space-1) var(--space-2);color:var(--color-text-faint);background:none;border:none;cursor:pointer;transition:color 0.15s ease,transform 0.15s ease}
.post__fav:hover{ color:var(--color-accent); transform:scale(1.15); }
.post__fav.is-on{ color:var(--color-accent); }
.cmts{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-divider)}
.cmts__list{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
.cmts__none{font-size:var(--text-xs);color:var(--color-text-faint)}
.cmt{background:var(--color-surface-sunken,rgba(0,0,0,0.03));border-radius:var(--radius-md);padding:var(--space-3)}
.cmt__meta{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1)}
.cmt__who{font-size:var(--text-xs);font-weight:700;color:var(--color-sage)}
.cmt__when{font-size:var(--text-xs);color:var(--color-text-faint)}
.cmt__del{margin-left:auto;font-size:var(--text-xs);color:var(--color-text-faint);background:none;border:none;cursor:pointer;padding:0 var(--space-1)}
.cmt__del:hover{ color:var(--color-accent); }
.cmt__text{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;white-space:pre-wrap;margin:0;max-width:none}
.cmts__form{display:grid;grid-template-columns:minmax(0,8rem) 1fr auto;gap:var(--space-2);align-items:start}
.cmts__name,
.cmts__text{width:100%;font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}
.cmts__text{ resize:vertical; line-height:1.6; }
.cmts__name:focus,
.cmts__text:focus{outline:none;border-color:var(--color-accent)}
@media (max-width:560px){.cmts__form{ grid-template-columns:1fr; }}
.att-thumb--doc{border:1px solid var(--color-border);font-size:var(--text-lg)}
.doc{display:flex;flex-direction:column;margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface)}
.doc__bar{flex:none;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-divider)}
.doc__name{font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc__acts{margin-left:auto;display:flex;gap:var(--space-1);flex:none}
.doc__btn{font:inherit;font-size:var(--text-xs);color:var(--color-text-faint);text-decoration:none;background:none;border:1px solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);cursor:pointer;white-space:nowrap}
.doc__btn:hover{color:var(--color-accent);border-color:var(--color-accent)}
.doc__frame{display:block;width:100%;height:26rem;border:0;background:#fff}
.doc.is-full{position:fixed;inset:0;z-index:70;margin:0;border:0;border-radius:0}
.doc.is-full .doc__bar{padding:var(--space-3) var(--space-4)}
.doc.is-full .doc__frame{flex:1;height:auto;min-height:0}
body[data-page='album']{--color-bg:#F6F4EF;--color-surface:#FBFAF6;--color-surface-2:#ECE8DF;--color-surface-offset:#E4DFD4;--color-divider:#DAD5C8;--color-border:#D5D0C3;--color-text:#1A1A1A;--color-text-soft:#4A4A4A;--color-text-muted:#6B6B6B;--color-text-faint:#9A9A9A;--color-accent:#9A6B3D;--color-accent-hover:#7F572F;--color-accent-soft:#EDE4D6;--color-accent-contrast:#F6F4EF;--rule:#1A1A1A;--mood-color:#F3E9D7;background:transparent}
[data-theme='dark'] body[data-page='album']{--color-bg:#14140F;--color-surface:#1C1C16;--color-surface-2:#1C1C16;--color-surface-offset:#232319;--color-divider:#3A3A32;--color-border:#3A3A32;--color-text:#ECE7DF;--color-text-soft:#C8C2B6;--color-text-muted:#9A948A;--color-text-faint:#6A645A;--color-accent:#C9A86A;--color-accent-hover:#DBBB7E;--color-accent-soft:#2A2620;--color-accent-contrast:#14140F;--rule:#3A3A32;--mood-color:#241F16}
.mood-bg{position:fixed;inset:0;z-index:0;background-color:var(--mood-color);transition:background-color 1.4s cubic-bezier(0.4,0,0.2,1)}
.mood-bg__veil{position:absolute;inset:0;pointer-events:none;background:
radial-gradient(120% 90% at 15% 0%,rgba(255,255,255,0.3),transparent 60%),
radial-gradient(100% 80% at 85% 100%,rgba(0,0,0,0.06),transparent 65%)}
body[data-page='album'] .site-header,
body[data-page='album'] main,
body[data-page='album'] .site-footer{ position:relative; z-index:1; }
body[data-page='album'][data-mood-active='warm']{ --mood-color:#F3E9D7; }
body[data-page='album'][data-mood-active='excitement']{ --mood-color:#F1E1DE; }
body[data-page='album'][data-mood-active='calm']{ --mood-color:#E7ECE3; }
body[data-page='album'][data-mood-active='energy']{ --mood-color:#F4ECD2; }
body[data-page='album'][data-mood-active='cozy']{ --mood-color:#F0E2D4; }
body[data-page='album'][data-mood-active='nostalgia']{ --mood-color:#E8E0E4; }
[data-theme='dark'] body[data-page='album'][data-mood-active='warm']{ --mood-color:#241F16; }
[data-theme='dark'] body[data-page='album'][data-mood-active='excitement']{ --mood-color:#2A201E; }
[data-theme='dark'] body[data-page='album'][data-mood-active='calm']{ --mood-color:#1E2420; }
[data-theme='dark'] body[data-page='album'][data-mood-active='energy']{ --mood-color:#241F12; }
[data-theme='dark'] body[data-page='album'][data-mood-active='cozy']{ --mood-color:#241A14; }
[data-theme='dark'] body[data-page='album'][data-mood-active='nostalgia']{ --mood-color:#211E24; }
.mood-badge{position:fixed;top:0.9rem;right:1rem;z-index:61;display:none;align-items:center;gap:0.5rem;padding:6px 12px;border-radius:999px;background:var(--color-surface-2);border:1px solid var(--color-border);font-size:0.74rem;letter-spacing:0.1em;color:var(--color-text-muted);opacity:0;transform:translateY(-6px);transition:opacity 0.5s ease,transform 0.5s ease}
.mood-badge.is-visible{ opacity:1; transform:translateY(0); }
@media (min-width:880px){ .mood-badge{ display:inline-flex; } }
.mood-badge__dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--mood-color);border:1px solid var(--color-border);transition:background-color 1.4s ease}
.mood-badge__value{ color:var(--color-text); font-weight:500; }
.ed-strip{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding-bottom:var(--space-3);border-bottom:1px solid var(--rule);margin-bottom:clamp(var(--space-10),7vw,var(--space-20))}
.ed-strip__logo{font-size:0.92rem;font-weight:500;letter-spacing:0.15em;color:var(--color-text)}
.ed-strip__meta{font-size:0.74rem;letter-spacing:0.1em;color:var(--color-text-muted)}
.ed-hero{ display:grid; gap:var(--space-8); align-items:end; }
@media (min-width:760px){.ed-hero{grid-template-columns:1.4fr 1fr;gap:clamp(var(--space-8),5vw,var(--space-16))}}
.ed-hero__media{aspect-ratio:4 / 3;overflow:hidden;border-radius:2px;background:var(--color-surface-offset)}
.ed-hero__media img{ width:100%; height:100%; object-fit:cover; }
.ed-hero__body{ display:flex; flex-direction:column; justify-content:flex-end; }
.ed-eyebrow{font-size:0.72rem;font-weight:500;letter-spacing:0.3em;line-height:1.4;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-4)}
.ed-hero__title{font-family:var(--font-display);font-weight:500;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-0.02em;line-height:1.18;color:var(--color-text);margin-bottom:var(--space-5)}
.ed-lead{font-size:0.95rem;line-height:1.8;color:var(--color-text-soft);max-width:42ch}
.ed-hero__file{display:flex;align-items:center;gap:0.55rem;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-divider);font-size:0.74rem;color:var(--color-text-muted)}
.ed-hero__swatch{width:10px;height:10px;flex:none;border-radius:50%;background:var(--mood-color);border:1px solid var(--color-border)}
.ed-section{ margin-top:clamp(var(--space-16),9vw,var(--space-24)); }
.ed-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding-bottom:var(--space-3);border-bottom:1px solid var(--rule);margin-bottom:var(--space-8)}
.ed-section__title{font-family:var(--font-display);font-weight:500;font-size:clamp(1.4rem,2.5vw,2rem);letter-spacing:-0.02em;line-height:1.2;color:var(--color-text)}
.ed-featured{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);list-style:none}
@media (max-width:600px){.ed-featured{ grid-template-columns:repeat(2,1fr); gap:var(--space-4); }}
.ed-cell{display:block;width:100%;padding:0;border:none;background:none;cursor:pointer;text-align:left}
.ed-cell__frame{aspect-ratio:1;overflow:hidden;border-radius:2px;background:var(--color-surface-offset)}
.ed-cell img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s cubic-bezier(0.4,0,0.2,1)}
.ed-cell:hover img{ transform:scale(1.03); }
.ed-cell__cap{margin-top:var(--space-3);font-size:0.72rem;line-height:1.5;color:var(--color-text-faint)}
.ed-cell:hover .ed-cell__cap{ color:var(--color-text-soft); }
.filters{ display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:var(--space-8); }
.chip{font-size:0.78rem;font-weight:500;letter-spacing:0.1em;line-height:1.4;padding:0.45rem 0.95rem;border-radius:999px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);cursor:pointer}
.chip:hover{ color:var(--color-text); border-color:var(--color-text-muted); }
.chip.is-active{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);list-style:none}
@media (max-width:600px){.photo-grid{ grid-template-columns:repeat(2,1fr); gap:var(--space-4); }}
.photo{ margin:0; }
.photo__btn{display:block;width:100%;padding:0;border:none;background:none;cursor:pointer;text-align:left}
.photo__frame{aspect-ratio:4 / 5;overflow:hidden;border-radius:2px;background:var(--color-surface-offset)}
.photo__frame img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s cubic-bezier(0.4,0,0.2,1)}
.photo__btn:hover img{ transform:scale(1.03); }
.photo__caption{margin-top:var(--space-3);font-size:0.74rem;letter-spacing:0.02em;line-height:1.5;color:var(--color-text-muted);max-width:none}
.photo__meta{ margin-top:0.25rem; font-size:0.72rem; color:var(--color-text-faint); }
.album-actions{ display:flex; gap:var(--space-3); flex-wrap:wrap; margin-bottom:var(--space-8); }
.album-actions .btn{ flex:none; }
.album-empty{text-align:center;color:var(--color-text-faint);font-size:0.85rem;letter-spacing:0.02em;padding:var(--space-20) var(--space-4);border:1px solid var(--color-divider);border-radius:2px;max-width:none}
.lightbox{ background:color-mix(in oklab,#1A1A1A 88%,transparent); padding:0; }
.lightbox__inner{ position:relative; width:100%; height:100dvh; display:flex; flex-direction:column; }
.lightbox__stage{flex:1;min-height:0;display:grid;place-items:center;padding:var(--space-12) var(--space-4) var(--space-3)}
.lightbox__img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:2px}
.lightbox__bar{flex:none;background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-5) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom,0px))}
.lightbox__caption{font-family:var(--font-display);font-weight:500;font-size:1.05rem;letter-spacing:-0.01em;line-height:1.55;color:var(--color-text);white-space:pre-wrap;margin-bottom:var(--space-3);max-width:none}
.lightbox__foot{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); }
.lightbox__who{ font-size:0.74rem; letter-spacing:0.02em; color:var(--color-text-faint); }
.lightbox__who b{ color:var(--color-text-muted); font-weight:500; }
.lightbox__close,
.lightbox__nav{position:absolute;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;background:color-mix(in oklab,var(--color-surface) 80%,transparent);backdrop-filter:blur(8px);color:var(--color-text);border:1px solid var(--color-border)}
.lightbox__close{ top:var(--space-4); right:var(--space-4); }
.lightbox__nav--prev{ top:50%; left:var(--space-3); transform:translateY(-50%); }
.lightbox__nav--next{ top:50%; right:var(--space-3); transform:translateY(-50%); }
.lightbox__nav[disabled]{ opacity:0.3; pointer-events:none; }
.upload-drop{display:block;padding:var(--space-8) var(--space-4);text-align:center;border:1px dashed var(--color-border);border-radius:2px;color:var(--color-text-muted);font-size:0.85rem;letter-spacing:0.02em;cursor:pointer}
.upload-drop:hover{ border-color:var(--color-accent); color:var(--color-accent); }
.upload-drop input{ display:none; }
.upload-preview{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-2); }
.upload-preview img{ aspect-ratio:1; width:100%; object-fit:cover; border-radius:2px; }
.upload-status{ font-size:0.74rem; color:var(--color-text-muted); min-height:1.2em; }
.mood-picker{ display:flex; flex-wrap:wrap; gap:0.4rem; }
.mood-picker label{display:inline-flex;align-items:center;padding:0.4rem 0.8rem;border:1px solid var(--color-border);border-radius:999px;font-size:0.76rem;font-weight:400;color:var(--color-text-muted);cursor:pointer}
.mood-picker input{ position:absolute; opacity:0; width:0; height:0; }
.mood-picker label:has(input:checked){background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}
@media (prefers-reduced-motion:reduce){.mood-bg{ transition:none; }
.ed-cell img,.photo__frame img{ transition:none; }}
.searchbar{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-5)}
.searchbar__field{position:relative;flex:1 1 240px;display:flex;align-items:center}
.searchbar__icon{position:absolute;left:0.9rem;width:17px;height:17px;color:var(--color-text-faint);pointer-events:none}
.searchbar__field input{width:100%;min-height:46px;padding:0.6rem 2.4rem;font-size:1rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:2px;-webkit-appearance:none;appearance:none}
.searchbar__field input::-webkit-search-cancel-button{ display:none; }
.searchbar__field input:focus-visible{outline:none;border-color:var(--color-text-muted)}
.searchbar__clear{position:absolute;right:0.5rem;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;color:var(--color-text-faint)}
.searchbar__clear svg{ width:15px; height:15px; }
.searchbar__clear:hover{ color:var(--color-text); background:var(--color-surface-2); }
.searchbar select{min-height:46px;padding:0.5rem 0.9rem;font-size:0.86rem;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:2px}
.filters:empty{ display:none; margin:0; }
.filters{ margin-bottom:var(--space-4); }
.result-count{font-size:0.74rem;letter-spacing:0.06em;color:var(--color-text-faint);margin-bottom:var(--space-5)}
.grid-header{grid-column:1 / -1;margin-top:var(--space-6);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-divider);font-family:var(--font-display);font-weight:500;font-size:1rem;letter-spacing:-0.01em;color:var(--color-text-muted);max-width:none}
.grid-header:first-child{ margin-top:0; }
.grid-sentinel{ height:1px; }
.import-help{font-size:0.82rem;line-height:1.7;color:var(--color-text-muted);max-width:none}
.import-summary{padding:var(--space-4);border:1px solid var(--color-divider);border-radius:2px;font-size:0.82rem;line-height:1.8;color:var(--color-text-muted)}
.import-summary b{ color:var(--color-text); font-weight:700; }
.import-note{ color:var(--color-text-faint); font-size:0.74rem; }
.import-progress{ display:grid; gap:var(--space-2); }
.import-progress__bar{height:4px;background:var(--color-surface-2);border-radius:999px;overflow:hidden}
.import-progress__bar span{display:block;width:0;height:100%;background:var(--color-accent);transition:width 0.3s ease}
body[data-page='review']{--content-read:760px}
.rv-strip{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-text);margin-bottom:var(--space-10)}
.rv-strip__kind{font-size:0.92rem;font-weight:500;letter-spacing:0.15em;color:var(--color-text)}
.rv-strip__meta{font-size:0.74rem;letter-spacing:0.1em;color:var(--color-text-muted)}
.rv-title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.9rem,4.4vw,3rem);line-height:1.24;letter-spacing:-0.02em;color:var(--color-text);margin-bottom:var(--space-5)}
.rv-lede{font-size:var(--text-lg);line-height:1.7;color:var(--color-text-muted);margin-bottom:var(--space-8)}
.rv-verdict{border-left:3px solid var(--color-accent);padding:var(--space-4) 0 var(--space-4) var(--space-5);margin-bottom:var(--space-12);font-size:var(--text-lg);line-height:1.7;color:var(--color-text);max-width:none}
.rv-verdict b{ color:var(--color-accent); }
.rv-tiles{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-bottom:var(--space-16)}
@media (min-width:640px){ .rv-tiles{ grid-template-columns:repeat(3,1fr); } }
.rv-tile{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.rv-tile__label{font-size:var(--text-xs);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:var(--space-2)}
.rv-tile__value{font-size:1.6rem;font-weight:700;line-height:1.2;color:var(--color-text);margin-bottom:var(--space-2)}
.rv-tile__note{ font-size:var(--text-sm); line-height:1.6; color:var(--color-text-muted); }
.rv-body{ max-width:var(--content-read); }
.rv-h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,2.6vw,1.9rem);letter-spacing:-0.02em;color:var(--color-text);margin:var(--space-16) 0 var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-divider)}
.rv-h3{font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--color-text);margin:var(--space-10) 0 var(--space-3)}
.rv-body p{font-size:var(--text-base);line-height:1.85;color:var(--color-text-muted);margin-bottom:var(--space-4)}
.rv-body strong{ color:var(--color-text); font-weight:700; }
.rv-body ul,.rv-body ol{ margin:0 0 var(--space-4) var(--space-5); }
.rv-body li{font-size:var(--text-base);line-height:1.8;color:var(--color-text-muted);margin-bottom:var(--space-2)}
.rv-body a{ color:var(--color-accent); }
.rv-quote{margin:var(--space-5) 0;padding:var(--space-4) var(--space-5);border-left:3px solid var(--color-divider);background:var(--color-surface-2);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:var(--text-sm);line-height:1.75;color:var(--color-text-muted);max-width:none}
.rv-quote em{ color:var(--color-text); font-style:italic; }
.rv-callout{margin:var(--space-6) 0;padding:var(--space-5);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--color-surface);max-width:none}
.rv-callout--warn{ border-left-color:#d03b3b; }
.rv-callout__title{font-size:var(--text-sm);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}
.rv-callout p{ margin-bottom:var(--space-2); font-size:var(--text-sm); }
.rv-callout p:last-child{ margin-bottom:0; }
.rv-pre{margin:var(--space-5) 0;padding:var(--space-4) var(--space-5);background:var(--color-surface-2);border:1px solid var(--color-divider);border-radius:var(--radius-md);overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:0.82rem;line-height:1.75;color:var(--color-text-muted);white-space:pre;max-width:none}
.rv-tablewrap{ overflow-x:auto; margin:var(--space-5) 0; }
.rv-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);min-width:380px}
.rv-table th,.rv-table td{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--color-divider);vertical-align:top;color:var(--color-text-muted)}
.rv-table th{font-weight:700;color:var(--color-text);border-bottom-color:var(--color-text-faint);white-space:nowrap}
.rv-table td strong{ color:var(--color-text); }
.rv-table tbody tr:last-child td{ border-bottom:none; }
.rv-num{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.viz{--surface-1:#fffdf7;--grid:#e6ddc9;--axis:#cdbfa4;--ink-1:#3b2a1d;--ink-2:#7c6650;--ink-3:#a8977f;--series-1:#2a78d6;--series-2:#eb6834;--ok:#0ca30c;--no:#d03b3b;--warn:#fab219;margin:var(--space-8) 0;padding:var(--space-5);background:var(--surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:none}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme='light'])) .viz{--surface-1:#221a12;--grid:#3a2c1e;--axis:#4d3c29;--ink-1:#efe4d2;--ink-2:#b3a088;--ink-3:#8a7a64;--series-1:#3987e5;--series-2:#d95926}}
:root[data-theme='dark'] .viz{--surface-1:#221a12;--grid:#3a2c1e;--axis:#4d3c29;--ink-1:#efe4d2;--ink-2:#b3a088;--ink-3:#8a7a64;--series-1:#3987e5;--series-2:#d95926}
.viz__title{font-size:var(--text-sm);font-weight:700;color:var(--color-text);margin-bottom:var(--space-1)}
.viz__sub{font-size:var(--text-xs);line-height:1.6;color:var(--color-text-faint);margin-bottom:var(--space-4);max-width:none}
.viz svg{ width:100%; height:auto; display:block; overflow:visible; }
.viz__note{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-divider);font-size:var(--text-xs);line-height:1.7;color:var(--color-text-muted);max-width:none}
.viz-lab{ font-size:11px; fill:var(--ink-2); font-variant-numeric:tabular-nums; }
.viz-lab--row{ font-size:12px; fill:var(--ink-1); font-weight:600; }
.viz-lab--val{ font-size:12px; fill:var(--ink-1); font-weight:700; font-variant-numeric:tabular-nums; }
.viz-lab--mut{ font-size:10px; fill:var(--ink-3); }
.viz-grid{ stroke:var(--grid); stroke-width:1; }
.viz-axis{ stroke:var(--axis); stroke-width:1; }
.viz-ref{ stroke:var(--series-2); stroke-width:2; stroke-dasharray:5 4; }
.viz__legend{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4)}
.viz__key{display:inline-flex;align-items:center;gap:0.4rem;font-size:var(--text-xs);color:var(--color-text-muted)}
.viz__swatch{width:12px;height:12px;flex:none;border-radius:3px;background:var(--series-1)}
.viz__swatch--2{ background:var(--series-2); }
.viz__swatch--ok{ background:var(--ok); }
.viz__swatch--no{ background:var(--no); }
.mx{ width:100%; border-collapse:separate; border-spacing:2px; font-size:var(--text-xs); }
.mx th{padding:var(--space-2);font-weight:700;color:var(--color-text);text-align:center;font-size:var(--text-xs)}
.mx th:first-child{ text-align:left; width:40%; }
.mx td:first-child{text-align:left;color:var(--color-text-muted);padding:var(--space-2);line-height:1.5}
.mx td:first-child b{ color:var(--color-text); }
.mx-cell{text-align:center;padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);font-weight:700;line-height:1.3;white-space:nowrap}
.mx-cell--ok{ background:rgba(12,163,12,0.14); color:#0a7d0a; }
.mx-cell--no{ background:rgba(208,59,59,0.14); color:#b02f2f; }
.mx-cell--part{ background:rgba(250,178,25,0.18); color:#8a6100; }
:root[data-theme='dark'] .mx-cell--ok{ background:rgba(12,163,12,0.2); color:#57c957; }
:root[data-theme='dark'] .mx-cell--no{ background:rgba(208,59,59,0.22); color:#f08b8b; }
:root[data-theme='dark'] .mx-cell--part{ background:rgba(250,178,25,0.22); color:#f5c65e; }
.mx-cell small{ display:block; font-weight:400; font-size:9px; opacity:0.85; }
.ladder{ display:grid; gap:var(--space-3); margin:var(--space-6) 0; }
.ladder__row{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.ladder__rank{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--color-accent);color:var(--color-accent-contrast);font-size:var(--text-xs);font-weight:700}
.ladder__row--hold .ladder__rank{ background:var(--color-text-faint); }
.ladder__what{ font-weight:700; color:var(--color-text); font-size:var(--text-sm); margin-bottom:0.2rem; }
.ladder__why{ font-size:var(--text-xs); line-height:1.6; color:var(--color-text-muted); max-width:none; }
.rv-list{ display:grid; gap:var(--space-4); list-style:none; }
.rv-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}
.rv-card a{ display:block; padding:var(--space-6); text-decoration:none; color:inherit; }
.rv-card:hover{ border-color:var(--color-accent); }
.rv-card__date{font-size:var(--text-xs);font-weight:700;letter-spacing:0.1em;color:var(--color-accent);margin-bottom:var(--space-2)}
.rv-card__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2);line-height:1.35}
.rv-card__sum{ font-size:var(--text-sm); line-height:1.7; color:var(--color-text-muted); max-width:none; }
