:root {
  --ink:#201b18; --ink-soft:#463b34; --paper:#f6f0e6; --paper-deep:#ede3d2;
  --cedar:#76513b; --cedar-dark:#4d3022; --brass:#b48a50; --line:#d9cbb8;
  --muted:#786d63; --success:#38634b; --danger:#a43d32; --shadow:0 10px 30px rgba(42,28,17,.10);
  font-family: Georgia, 'Times New Roman', serif; color:var(--ink); background:var(--paper);
}
* { box-sizing:border-box; }
body { margin:0; min-width:320px; background:linear-gradient(135deg,#f8f3ea,var(--paper)); }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid #b48a50; outline-offset:3px; }
.skip-link { position:absolute; left:1rem; top:-4rem; background:var(--ink); color:#fff; padding:.7rem 1rem; z-index:20; }
.skip-link:focus { top:1rem; }
.app-shell { min-height:100vh; display:flex; flex-direction:column; }
.site-header { min-height:74px; display:flex; align-items:center; justify-content:space-between; padding:1rem max(1.25rem,calc((100% - 1120px)/2)); border-bottom:1px solid var(--line); }
.brand { display:flex; gap:.65rem; align-items:center; color:var(--ink); text-decoration:none; letter-spacing:.02em; }
.brand-mark { font:700 .65rem/1 Arial,sans-serif; color:var(--paper); background:var(--cedar-dark); border-radius:50%; display:grid; place-items:center; width:2.3rem; height:2.3rem; }
.brand small,.brand strong { display:block; } .brand small { font:600 .62rem/1.1 Arial,sans-serif; text-transform:uppercase; letter-spacing:.13em; color:var(--muted); } .brand strong { font-size:1.4rem; letter-spacing:.02em; }
.app-nav { display:flex; gap:.2rem; align-items:center; } .app-nav button { border:0; background:transparent; padding:.55rem .65rem; color:var(--ink-soft); font-size:.88rem; } .app-nav .nav-signout { color:var(--cedar-dark); }
main { width:min(100% - 2.5rem,1120px); margin:0 auto; flex:1; padding:2rem 0 3rem; }
.site-footer { padding:1.4rem; text-align:center; color:var(--muted); font: .75rem/1.4 Arial,sans-serif; border-top:1px solid var(--line); }
.hero { min-height:calc(100vh - 170px); display:grid; align-content:center; max-width:700px; } .eyebrow { margin:0 0: .75rem; font:600 .72rem Arial,sans-serif; letter-spacing:.16em; text-transform:uppercase; color:var(--cedar); }
h1,h2,h3,p { margin-top:0; } h1 { font-size:clamp(2.6rem,10vw,5.5rem); line-height:.94; margin-bottom:1.25rem; letter-spacing:-.045em; font-weight:500; } h2 { font-size:clamp(1.8rem,5vw,2.7rem); margin-bottom:.45rem; font-weight:500; } h3 { font-size:1.1rem; margin-bottom:.35rem; } .lede { max-width:40rem; font-size:1.15rem; line-height:1.65; color:var(--ink-soft); }
.hero-rule { width:5rem; border:0; border-top:2px solid var(--brass); margin:1.4rem 0; }
.actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:.72rem 1.05rem; border:1px solid var(--cedar-dark); background:var(--cedar-dark); color:#fff; text-decoration:none; border-radius:3px; font:600 .82rem Arial,sans-serif; letter-spacing:.03em; } .button:hover { background:#352017; } .button.secondary { background:transparent; color:var(--cedar-dark); } .button.danger { background:var(--danger); border-color:var(--danger); } .button[disabled] { opacity:.55; cursor:wait; }
.auth-wrap { max-width:500px; margin:1rem auto; } .card { background:rgba(255,253,248,.78); border:1px solid var(--line); border-radius:7px; padding:1.35rem; box-shadow:var(--shadow); }
.auth-head { margin-bottom:1.2rem; } .auth-head p,.muted { color:var(--muted); line-height:1.55; }
.form-grid { display:grid; gap:1rem; } .form-grid.two { grid-template-columns:1fr; } label { display:grid; gap:.38rem; font:600 .8rem Arial,sans-serif; color:var(--ink-soft); } input,select,textarea { width:100%; border:1px solid #bfb09d; background:#fffdf8; color:var(--ink); border-radius:3px; padding:.72rem; min-height:44px; } textarea { min-height:130px; resize:vertical; line-height:1.5; } input[type="file"] { border-style:dashed; padding:.6rem; } .help { font: .76rem/1.45 Arial,sans-serif; color:var(--muted); } .form-error { padding:.75rem; background:#f8e4e0; border-left:3px solid var(--danger); color:#6d261e; font:.84rem/1.4 Arial,sans-serif; } .form-success { padding:.75rem; background:#e6f0e7; border-left:3px solid var(--success); color:#254b34; font:.84rem/1.4 Arial,sans-serif; }
.text-link { padding:0; border:0; background:transparent; color:var(--cedar-dark); text-decoration:underline; font-size:.85rem; }
.dashboard-head { display:flex; justify-content:space-between; gap:1rem; align-items:end; margin-bottom:1.4rem; } .dashboard-head p { margin:0; color:var(--muted); }
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:.55rem; margin:1.2rem 0 2rem; } .stat { padding:.95rem .75rem; border:1px solid var(--line); background:rgba(255,253,248,.65); border-radius:5px; } .stat b { display:block; font-size:1.35rem; font-weight:500; overflow-wrap:anywhere; } .stat span { display:block; margin-top:.2rem; font:600 .65rem Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.section-title { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; border-bottom:1px solid var(--line); margin-bottom:.7rem; } .section-title h2 { font-size:1.45rem; }
.entry-list { display:grid; gap:.7rem; } .entry-card { display:grid; grid-template-columns:76px 1fr; min-height:98px; overflow:hidden; background:#fffdf8; border:1px solid var(--line); border-radius:5px; text-decoration:none; color:inherit; box-shadow:0 3px 10px rgba(42,28,17,.04); } .entry-card:hover { border-color:var(--brass); } .entry-photo { background:linear-gradient(145deg,#85624b,#2d211c); display:grid; place-items:center; color:#f4ddac; font-size:1.4rem; } .entry-photo img { width:100%; height:100%; object-fit:cover; } .entry-card-main { padding:.8rem; } .entry-card-main h3 { font-size:1.08rem; margin:0 0:.25rem; } .entry-meta { color:var(--muted); font:.78rem/1.4 Arial,sans-serif; } .rating { color:var(--cedar-dark); font-weight:bold; white-space:nowrap; }
.empty { text-align:center; padding:2.7rem 1rem; background:rgba(255,253,248,.55); border:1px dashed #bba486; border-radius:6px; } .empty-symbol { color:var(--brass); font-size:2rem; }
.entry-form { max-width:850px; } .form-section { margin:1.8rem 0; padding-top:1.3rem; border-top:1px solid var(--line); } .form-section h2 { font-size:1.35rem; }
.tag-grid { display:flex; flex-wrap:wrap; gap:.45rem; } .tag-option input { position:absolute; opacity:0; pointer-events:none; } .tag-option span { display:block; padding:.48rem .62rem; border:1px solid #bfb09d; border-radius:99px; color:var(--ink-soft); font:.76rem Arial,sans-serif; cursor:pointer; } .tag-option input:checked + span { color:#fff; background:var(--cedar); border-color:var(--cedar); } .photo-preview { margin-top:.7rem; max-width:220px; border-radius:4px; overflow:hidden; } .photo-preview img { display:block; width:100%; }
.detail-head { display:flex; justify-content:space-between; align-items:start; gap:1rem; margin-bottom:1rem; } .detail-head h1 { font-size:clamp(2.1rem,7vw,3.8rem); margin-bottom:.3rem; } .detail-grid { display:grid; gap:1.3rem; } .detail-photo { aspect-ratio:4/3; background:linear-gradient(145deg,#85624b,#2d211c); border-radius:6px; overflow:hidden; display:grid; place-items:center; color:#f4ddac; font-size:2rem; } .detail-photo img { width:100%; height:100%; object-fit:cover; } .details { display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); } .details div { padding:.75rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); } .details dt { font:600 .65rem Arial,sans-serif; letter-spacing:.1em; color:var(--muted); text-transform:uppercase; } .details dd { margin:.22rem 0 0; } .notes { white-space:pre-wrap; line-height:1.65; }
.toast-region { position:fixed; z-index:50; right:1rem; bottom:1rem; display:grid; gap:.5rem; max-width:calc(100% - 2rem); } .toast { background:var(--ink); color:#fff; padding:.8rem 1rem; border-radius:4px; box-shadow:var(--shadow); font:.85rem Arial,sans-serif; } .toast.error { background:var(--danger); } .modal-backdrop { position:fixed; inset:0; z-index:40; display:grid; place-items:center; padding:1.25rem; background:rgba(32,27,24,.55); } .modal { width:min(100%,430px); background:var(--paper); padding:1.3rem; border-radius:6px; box-shadow:var(--shadow); } .modal h2 { font-size:1.5rem; }
.loading { padding:3rem; text-align:center; color:var(--muted); } .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (min-width:650px) { .site-header { padding-inline:max(2rem,calc((100% - 1120px)/2)); } main { width:min(100% - 4rem,1120px); padding-top:3.5rem; } .card { padding:2rem; } .form-grid.two { grid-template-columns:repeat(2,1fr); } .detail-grid { grid-template-columns:minmax(260px,.8fr) 1.2fr; align-items:start; } .entry-card { grid-template-columns:104px 1fr; } .stats { gap:1rem; } }
.brand-logo {
  display: block;
  width: min(250px, 68vw);
  height: auto;
  max-height: 135px;
  object-fit: contain;
  margin: 0 0 1.1rem 0;
  align-self: flex-start;
}