:root{--bg: #0f1c17;--bg-2: #173027;--ink: #f3efe6;--muted: #b7c4bc;--accent: #e2a35a;--accent-ink: #1b1208;--line: rgba(243, 239, 230, .14);--panel: rgba(20, 36, 30, .88);--danger: #ff8f7a;--ok: #8fd6a8;--font-display: "Bricolage Grotesque", Georgia, serif;--font-body: "Source Sans 3", "Segoe UI", sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);color:var(--ink);font-family:var(--font-body);background:radial-gradient(circle at 12% 18%,rgba(226,163,90,.22),transparent 34%),radial-gradient(circle at 88% 8%,rgba(89,154,125,.28),transparent 30%),linear-gradient(160deg,var(--bg),#12241d 48%,#0c1612);min-height:100%}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{margin:0;min-height:100%}body{min-height:100vh;min-height:100dvh;overflow-x:clip;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,.primary-btn,.ghost-btn,.vlog-card,.events-timeline-card,.shoot-calendar-day,.nav a{touch-action:manipulation}.app-shell{min-height:100vh;min-height:100dvh;padding-bottom:var(--safe-bottom)}.topbar{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand user" "nav nav";align-items:center;column-gap:.75rem;row-gap:.65rem;padding:calc(.85rem + var(--safe-top)) calc(1.25rem + var(--safe-right)) .85rem calc(1.25rem + var(--safe-left));border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10;background:#0c1612b8}.brand{grid-area:brand;font-family:var(--font-display);font-size:clamp(1.05rem,3.5vw,1.35rem);font-weight:700;letter-spacing:-.02em;white-space:nowrap;min-width:0}.nav{grid-area:nav;display:flex;gap:.35rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.15rem;min-width:0}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--muted);flex:0 0 auto;padding:.45rem .7rem;border-radius:999px;border-bottom:0;white-space:nowrap}.nav a.active{color:var(--accent-ink);background:var(--accent)}.user-chip{grid-area:user;display:flex;align-items:center;gap:.55rem;color:var(--muted);min-width:0;flex-shrink:0;justify-self:end}.user-chip img{border-radius:50%;flex:0 0 auto}.user-chip-name{max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip .ghost-btn{padding:.45rem .8rem;white-space:nowrap}.page{padding:1.25rem calc(1.25rem + var(--safe-right)) 1.75rem calc(1.25rem + var(--safe-left));max-width:1200px;margin:0 auto;width:100%}.page-intro h1,.calendar-toolbar h2,.login-copy h1,.detail-drawer h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 .4rem;overflow-wrap:anywhere}.page-intro p,.lede,.meta{color:var(--muted)}.primary-btn,.ghost-btn{border:0;cursor:pointer;border-radius:999px;padding:.7rem 1.15rem;min-height:2.5rem}.primary-btn{background:var(--accent);color:var(--accent-ink);font-weight:600;display:inline-flex;align-items:center;justify-content:center}.ghost-btn{background:transparent;color:var(--ink);border:1px solid var(--line)}.login-scene{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1.05fr .95fr}.login-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.5rem,6vw,5rem);padding-left:max(clamp(1.5rem,6vw,5rem),var(--safe-left));padding-right:max(clamp(1.5rem,6vw,5rem),var(--safe-right));max-width:36rem}.brand-hero{font-size:clamp(2.6rem,10vw,5.5rem);line-height:.95;margin:.2rem 0 1rem}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;color:var(--accent);margin:0}.login-visual{background:linear-gradient(180deg,#0f1c1726,#0f1c178c),url(https://images.unsplash.com/photo-1611162616475-46b635cb6868?auto=format&fit=crop&w=1600&q=80) center/cover;min-height:40vh}.login-copy .primary-btn{width:fit-content;max-width:100%}.month-board{display:grid;gap:1.25rem}.month-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 0 .25rem}.month-header-split{flex-direction:column;align-items:stretch;gap:.35rem}.period-switcher{display:flex;align-items:center;justify-content:space-between;gap:.65rem}.period-switcher-year{justify-content:center;gap:.25rem;opacity:.55}.period-switcher-year:hover,.period-switcher-year:focus-within{opacity:.85}.month-title{font-family:var(--font-display);font-size:clamp(1.55rem,7vw,3.25rem);letter-spacing:-.03em;margin:0;text-align:center;min-width:0;flex:1}.year-title{font-size:.8rem;font-weight:500;letter-spacing:.04em;margin:0;color:var(--muted);min-width:2.75rem;text-align:center;font-variant-numeric:tabular-nums}.year-switch-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:.35rem .55rem;font-size:1.1rem;line-height:1;border-radius:.35rem;min-width:2.25rem;min-height:2.25rem}.year-switch-btn:hover,.year-switch-btn:focus-visible{color:var(--ink)}.year-switch-btn:focus-visible{outline:1px solid var(--line)}.period-nav-short{display:none;font-size:1.35rem;line-height:1}.period-nav-btn{flex:0 0 auto}.month-hint{color:var(--muted);margin:0}.events-board{display:grid;gap:1.25rem}.events-timeline{list-style:none;margin:0;padding:.25rem 0 1rem;display:grid;gap:0}.events-timeline-item{position:relative;display:grid;padding:0 0 1.25rem 1.35rem}.events-timeline-item:last-child{padding-bottom:0}.events-timeline-rail{position:absolute;left:.35rem;top:.35rem;bottom:0;width:2px;background:var(--line)}.events-timeline-item:last-child .events-timeline-rail{bottom:auto;height:.85rem}.events-timeline-item:before{content:"";position:absolute;left:0;top:.55rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--accent);border:2px solid var(--bg);z-index:1}.events-timeline-card{display:grid;gap:.35rem;width:100%;text-align:left;padding:.85rem 1rem;border:1px solid var(--line);border-radius:1rem;background:#00000038;color:var(--ink);cursor:pointer}.events-timeline-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.events-timeline-date{font-family:var(--font-display);font-size:.95rem;color:var(--accent);letter-spacing:-.01em}.events-timeline-note{font-family:var(--font-display);font-size:clamp(1.1rem,3.5vw,1.45rem);letter-spacing:-.02em;line-height:1.3;white-space:pre-wrap;overflow-wrap:anywhere}.events-timeline-meta{color:var(--muted);font-size:.88rem;overflow-wrap:anywhere}.events-timeline-thumb{width:100%;max-width:280px;aspect-ratio:16 / 9;object-fit:cover;border-radius:.65rem;margin-top:.35rem}.day-sections{display:grid;gap:1.75rem}.day-section{display:grid;gap:.85rem}.day-heading{font-family:var(--font-display);font-size:clamp(1.1rem,3.5vw,1.25rem);margin:0;letter-spacing:-.02em;border-bottom:1px solid var(--line);padding-bottom:.45rem}.vlog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:.9rem}.vlog-card{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:1rem;background:transparent;color:var(--ink);cursor:pointer;overflow:hidden}.vlog-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.vlog-card-media{width:100%;aspect-ratio:16 / 9;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;padding:1rem;text-align:center}.vlog-card-date-hero{font-family:var(--font-display);font-size:clamp(1.45rem,5vw,2.2rem);font-weight:700;letter-spacing:-.03em;color:#fff}.vlog-card-note{color:#ffffffd1;font-size:.9rem;line-height:1.35;max-width:18rem;white-space:pre-wrap;overflow-wrap:anywhere}.toast{position:fixed;left:50%;bottom:calc(1.15rem + var(--safe-bottom));transform:translate(-50%);z-index:100;padding:.75rem 1.15rem;border-radius:999px;background:#101810;border:1px solid var(--line);color:var(--ink);box-shadow:0 12px 30px #00000059;font-size:.95rem;font-weight:600;max-width:min(92vw,28rem);width:max-content;text-align:center;overflow-wrap:anywhere}.pagination-row{display:flex;justify-content:center;padding:.5rem 0 1.5rem}.drawer-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#060c0a8c;display:flex;justify-content:flex-end;align-items:stretch;padding:0}.detail-drawer{position:relative;right:auto;top:auto;width:min(400px,100%);max-height:none;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;background:var(--bg-2);border:0;border-left:1px solid var(--line);border-radius:0;padding:1rem;padding-bottom:calc(1rem + var(--safe-bottom));display:grid;gap:.75rem;align-content:start;box-shadow:-16px 0 40px #00000059}.detail-drawer-head{display:flex;justify-content:flex-end;position:sticky;top:0;z-index:1;background:linear-gradient(var(--bg-2) 70%,transparent);padding-bottom:.25rem}.detail-thumb,.detail-video,.detail-date-hero{width:100%;border-radius:.75rem;aspect-ratio:16 / 9;background:#000}.detail-video iframe{width:100%;height:100%;border:0;border-radius:.75rem;display:block}.detail-date-hero{display:grid;place-items:center;font-family:var(--font-display);font-size:clamp(1.5rem,6vw,2rem);font-weight:700;color:#fff}.detail-thumb{object-fit:cover}.detail-edit{display:grid;gap:.75rem}.detail-edit-field{display:grid;gap:.45rem}.detail-edit-label,.detail-edit label{display:grid;gap:.35rem;color:var(--muted);font-size:.9rem}.detail-edit input,.detail-edit textarea{background:#00000040;border:1px solid var(--line);border-radius:.65rem;color:var(--ink);padding:.65rem .75rem;resize:vertical;width:100%;max-width:100%}.shoot-calendar{background:#00000047;border:1px solid var(--line);border-radius:.85rem;padding:.65rem;display:grid;gap:.45rem}.shoot-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.shoot-calendar-toolbar .ghost-btn{min-width:2.5rem;min-height:2.5rem;padding:.35rem .55rem}.shoot-calendar-label{font-family:var(--font-display);font-size:.98rem;color:var(--ink)}.shoot-calendar-weekdays,.shoot-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem}.shoot-calendar-weekdays{color:var(--muted);font-size:.72rem;text-align:center}.shoot-calendar-day{aspect-ratio:1;border:0;border-radius:.45rem;background:transparent;color:var(--ink);cursor:pointer;font-size:.82rem;min-height:2.1rem}.shoot-calendar-day:hover:not(.empty){background:#e2a35a2e}.shoot-calendar-day.selected{background:var(--accent);color:var(--accent-ink);font-weight:700}.shoot-calendar-day.empty{cursor:default;visibility:hidden}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0}.tag-list li{border:1px solid var(--line);border-radius:999px;padding:.2rem .6rem;font-size:.8rem}.state-card{background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:1.25rem}.state-card.error,.err{color:var(--danger)}.ok{color:var(--ok)}.action-row{margin:1rem 0;display:flex;flex-wrap:wrap;gap:.65rem}.action-row .primary-btn,.action-row .ghost-btn{width:100%;max-width:22rem}.admin-year-stacks{display:grid;gap:1.75rem}.admin-year-section{display:grid;gap:.65rem}.admin-year-heading{font-family:var(--font-display);font-size:1.35rem;letter-spacing:-.02em;margin:0;color:var(--muted)}.admin-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:1rem;background:var(--panel);-webkit-overflow-scrolling:touch}.admin-table{width:100%;border-collapse:collapse;min-width:720px}.admin-table th,.admin-table td{padding:.65rem .75rem;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left}.admin-table th{color:var(--muted);font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;position:sticky;top:0;background:#14241e;z-index:1}.admin-table tr:last-child td{border-bottom:0}.admin-table th:nth-child(1),.admin-table td:nth-child(1){width:42%}.admin-table th:nth-child(2),.admin-table td:nth-child(2){width:18%}.admin-table th:nth-child(3),.admin-table td:nth-child(3){width:40%}.admin-cell-input{width:100%;background:#00000040;border:1px solid var(--line);border-radius:.55rem;color:var(--ink);padding:.55rem .65rem;min-height:2.5rem}.admin-cell-date{min-width:0}.admin-date-cell{display:grid;gap:.45rem}.admin-date-input-row{display:flex;align-items:center;gap:.45rem}.admin-date-alert-dot{flex:0 0 auto;width:.85rem;height:.85rem;border:0;border-radius:50%;padding:0;background:#ff4d4d;box-shadow:0 0 #ff4d4d8c;cursor:pointer;animation:admin-dot-pulse 1.6s ease-out infinite}.admin-date-alert-dot:disabled{opacity:.55;cursor:default;animation:none}@keyframes admin-dot-pulse{0%{box-shadow:0 0 #ff4d4d8c}70%{box-shadow:0 0 0 .45rem #ff4d4d00}to{box-shadow:0 0 #ff4d4d00}}.admin-row-warn td{background:#ff4d4d0a}.admin-detect-toast{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.45rem .55rem;border-radius:.65rem;background:#ff4d4d1f;border:1px solid rgba(255,77,77,.35);color:var(--ink);font-size:.8rem}.admin-detect-toast-btn{padding:.35rem .7rem;font-size:.78rem;min-height:2rem}.admin-list{display:grid;gap:1rem}.admin-row{display:grid;grid-template-columns:180px 1fr;gap:1rem;background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:1rem}.admin-row img{width:100%;border-radius:.75rem;aspect-ratio:16 / 9;object-fit:cover}.admin-fields{display:grid;gap:.75rem}.admin-fields label{display:grid;gap:.35rem;color:var(--muted);font-size:.9rem}.admin-fields input,.admin-fields textarea{background:#00000040;border:1px solid var(--line);border-radius:.65rem;color:var(--ink);padding:.65rem .75rem;resize:vertical;width:100%}@media(min-width:901px){.topbar{grid-template-columns:auto 1fr auto;grid-template-areas:"brand nav user";gap:1.25rem;padding:1rem 1.5rem}.nav{overflow:visible;justify-self:start}.period-switcher .month-title{flex:1 1 auto}}@media(max-width:900px){.login-scene{grid-template-columns:1fr}.login-visual{order:-1;min-height:28vh;min-height:28dvh}.login-copy .primary-btn{width:100%}.admin-row{grid-template-columns:1fr}.month-header{flex-wrap:nowrap;justify-content:space-between}.period-switcher{flex-wrap:nowrap}.period-nav-full{display:none}.period-nav-short{display:inline}.period-nav-btn{min-width:2.75rem;padding-left:.7rem;padding-right:.7rem}.user-chip-name{display:none}.drawer-layer{align-items:flex-end;background:#060c0a9e}.detail-drawer{width:100%;max-height:min(92dvh,100%);height:auto;border-left:0;border-top:1px solid var(--line);border-radius:1.15rem 1.15rem 0 0;box-shadow:0 -18px 40px #0006;padding:.85rem 1rem calc(1rem + var(--safe-bottom))}}@media(max-width:720px){.page{padding:1rem calc(.9rem + var(--safe-right)) 1.5rem calc(.9rem + var(--safe-left))}.topbar{padding:calc(.7rem + var(--safe-top)) calc(.9rem + var(--safe-right)) .7rem calc(.9rem + var(--safe-left));gap:.55rem}.vlog-grid{grid-template-columns:1fr}.events-timeline-thumb{max-width:none}.admin-table-wrap{border:0;background:transparent;overflow:visible}.admin-table{min-width:0;border-collapse:separate;border-spacing:0 .85rem}.admin-table thead{display:none}.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table tr{border:1px solid var(--line);border-radius:1rem;background:var(--panel);padding:.85rem}.admin-table td{border-bottom:0;padding:.45rem 0}.admin-table td+td{padding-top:.7rem}.admin-table td:before{content:attr(data-label);display:block;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.35rem}.admin-table th:nth-child(1),.admin-table td:nth-child(1),.admin-table th:nth-child(2),.admin-table td:nth-child(2),.admin-table th:nth-child(3),.admin-table td:nth-child(3){width:100%}.admin-row-warn td{background:transparent}.admin-row-warn{box-shadow:inset 0 0 0 1px #ff4d4d47}.admin-cell-date{flex:1}.action-row .primary-btn,.action-row .ghost-btn{max-width:none}}@media(max-width:420px){.brand{font-size:1rem}.user-chip .ghost-btn{padding:.4rem .65rem;font-size:.9rem}.month-hint,.page-intro p{font-size:.95rem}.shoot-calendar-day{font-size:.78rem;min-height:2rem}}
