  /* ============ Tokens ============ */
  :root{
    --stone:        #ded4bb;
    --stone-soft:   #eae2cd;
    --paper:        #f6f1e4;
    --ink:          #241f17;
    --ink-soft:     #55503f;
    --line:         rgba(36,31,23,0.14);
    --green:        #2f4b3c;
    --green-deep:   #1c2f26;
    --green-soft:   #6b8f73;
    --green-wash:   #e3ead9;
    --terracotta:   #b5592e;
    --terracotta-wash: #f3ddca;
    --brass:        #a9822f;
    --card-shadow:  0 1px 2px rgba(36,31,23,0.08), 0 12px 28px -16px rgba(36,31,23,0.35);
    --radius-lg: 22px;
    --radius-md: 14px;
    --radius-sm: 8px;
    --font-display: 'Fraunces', ui-serif, Georgia, serif;
    --font-body: 'Archivo', ui-sans-serif, system-ui, sans-serif;
    --font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, monospace;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --stone:        #1b1712;
      --stone-soft:   #221d16;
      --paper:        #171310;
      --ink:          #f1e9d8;
      --ink-soft:     #c6bca5;
      --line:         rgba(241,233,216,0.14);
      --green:        #7fa587;
      --green-deep:   #a9c7ac;
      --green-soft:   #4c6350;
      --green-wash:   #202b22;
      --terracotta:   #e08152;
      --terracotta-wash: #3a2418;
      --brass:        #d3ab5c;
      --card-shadow:  0 1px 2px rgba(0,0,0,0.4), 0 16px 32px -18px rgba(0,0,0,0.7);
    }
  }
  :root[data-theme="dark"]{
    --stone:        #1b1712;
    --stone-soft:   #221d16;
    --paper:        #171310;
    --ink:          #f1e9d8;
    --ink-soft:     #c6bca5;
    --line:         rgba(241,233,216,0.14);
    --green:        #7fa587;
    --green-deep:   #a9c7ac;
    --green-soft:   #4c6350;
    --green-wash:   #202b22;
    --terracotta:   #e08152;
    --terracotta-wash: #3a2418;
    --brass:        #d3ab5c;
    --card-shadow:  0 1px 2px rgba(0,0,0,0.4), 0 16px 32px -18px rgba(0,0,0,0.7);
  }

  *{box-sizing:border-box;}
  html{color-scheme:light dark;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:var(--font-body); font-size:16px; line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{font-family:var(--font-display); text-wrap:balance; margin:0; font-weight:600; color:var(--ink);}
  p{margin:0;}
  a{color:inherit; text-decoration:none;}
  button{font-family:inherit; cursor:pointer;}
  input,select,textarea{font-family:inherit; font-size:15px;}
  .container{max-width:1180px; margin:0 auto; padding:0 28px;}
  .mono{font-family:var(--font-mono); font-variant-numeric:tabular-nums;}
  .eyebrow{
    font-family:var(--font-body); font-weight:600; font-size:12px; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--green-soft);
  }
  ::selection{background:var(--green-wash);}
  [hidden]{display:none!important;}

  /* ============ Top bar ============ */
  .topbar{
    position:sticky; top:0; z-index:40; background:transparent;
    transition:background .3s ease, border-color .3s ease;
  }
  .topbar.solid{background:var(--paper); border-bottom:1px solid var(--line);}
  .topbar.on-photo{position:fixed; top:0; left:0; right:0;}
  .topbar.on-photo:not(.solid){ --ink: #fbf6e9; --ink-soft: #e9e2cf; }
  .topbar-inner{
    display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
    padding:22px 28px; max-width:1280px; margin:0 auto; gap:8px;
  }
  .brand{
    grid-column:2; display:flex; flex-direction:column; align-items:center; text-align:center;
    font-family:var(--font-display); font-weight:600; font-size:20px; letter-spacing:0.02em; color:inherit;
    white-space:nowrap;
  }
  .brand small{display:block; font-family:var(--font-body); font-weight:500; font-size:9.5px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-soft); margin-top:3px;}
  .topbar-side{display:flex; align-items:center; gap:18px; min-width:0;}
  .topbar-side.left{justify-content:flex-start;}
  .topbar-side.right{justify-content:flex-end;}
  @media (max-width:600px){
    .topbar-inner{padding:16px 16px;}
    .brand{font-size:15px;}
    .brand small{font-size:7.5px; letter-spacing:0.14em;}
    .menu-btn .lbl{display:none;}
    .menu-btn{gap:0;}
  }
  .menu-btn{
    display:flex; align-items:center; gap:9px; background:none; border:none; color:inherit;
    font-family:var(--font-body); font-weight:600; font-size:11.5px; letter-spacing:0.18em; text-transform:uppercase;
  }
  .menu-btn .bars{display:flex; flex-direction:column; gap:4px; width:20px;}
  .menu-btn .bars span{display:block; height:1.5px; background:currentColor; width:100%;}
  .book-pill{
    font-family:var(--font-body); font-weight:600; font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
    padding:10px 18px; border-radius:999px; border:1px solid currentColor; color:inherit;
  }
  .book-pill:hover{background:var(--green); border-color:var(--green); color:var(--stone-soft);}

  /* full-screen nav overlay */
  .nav-overlay{
    position:fixed; inset:0; z-index:90; background:var(--paper); color:var(--ink);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;
    opacity:0; pointer-events:none; transition:opacity .25s ease;
  }
  .nav-overlay.open{opacity:1; pointer-events:auto;}
  .nav-overlay a{
    font-family:var(--font-display); font-size:clamp(28px,5vw,42px); color:var(--ink);
    padding:4px 0; border-bottom:2px solid transparent;
  }
  .nav-overlay a:hover, .nav-overlay a.active{border-color:var(--terracotta);}
  .nav-overlay .nav-close{
    position:absolute; top:24px; right:28px; background:none; border:none; color:var(--ink);
    font-size:15px; letter-spacing:0.14em; text-transform:uppercase; font-weight:600; display:flex; align-items:center; gap:8px;
  }
  .nav-overlay .nav-sub{margin-top:22px; font-family:var(--font-body); font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft);}

  /* ============ Buttons ============ */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:15px 26px; border-radius:999px; border:1px solid transparent;
    font-weight:600; font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase;
    transition:transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
  }
  .btn:active{transform:scale(0.98);}
  .btn-primary{background:var(--green); color:var(--stone-soft); border-color:var(--green);}
  .btn-primary:hover{background:var(--green-deep); border-color:var(--green-deep);}
  .btn-ghost{background:transparent; color:var(--ink); border-color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:var(--paper);}
  .btn-terracotta{background:transparent; color:var(--terracotta); border-color:var(--terracotta);}
  .btn-terracotta:hover{background:var(--terracotta); color:#fff8f0;}
  .btn-block{width:100%;}
  .btn[disabled]{opacity:.5; cursor:not-allowed;}
  .small-btn{text-transform:none; letter-spacing:normal;}

  /* ============ Home ============ */
  .hero{padding:104px 0 56px; text-align:left;}
  .hero-eyebrow{margin-bottom:18px; justify-content:flex-start;}
  .hero h1{font-size:clamp(38px,6.4vw,68px); max-width:15ch; line-height:1.03; margin:0;}
  .hero p.lead{margin:22px 0 0; max-width:50ch; font-size:18px; color:var(--ink-soft);}

  .property-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:48px 32px; padding:16px 0 80px;
  }
  @media (max-width:880px){ .property-grid{grid-template-columns:1fr; max-width:460px; margin:0 auto;} }

  .property-card{
    display:flex; flex-direction:column; text-align:left; border:none; padding:0; background:none;
  }
  .property-photo{
    position:relative; aspect-ratio:3/4; width:100%; overflow:hidden; background:var(--stone); border-radius:2px;
  }
  .property-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.2,.7,.3,1);}
  .property-card:hover .property-photo img{transform:scale(1.045);}
  .property-photo .placeholder-art{
    width:100%; height:100%;
    background:
      repeating-linear-gradient(135deg, var(--green-wash) 0px, var(--green-wash) 18px, transparent 18px, transparent 36px),
      linear-gradient(160deg, var(--stone), var(--stone-soft));
    display:flex; align-items:center; justify-content:center;
  }
  .placeholder-art span{font-family:var(--font-display); font-size:15px; color:var(--ink-soft); background:var(--paper); padding:8px 14px; border-radius:999px; border:1px solid var(--line);}
  .property-caption{padding-top:20px;}
  .property-caption .eyebrow{margin-bottom:6px;}
  .property-caption h3{font-size:24px;}
  .property-facts{margin-top:8px; font-size:13.5px; color:var(--ink-soft);}
  .property-cta{
    margin-top:14px; display:inline-flex; align-items:center; gap:7px;
    font-size:11.5px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink);
    padding-bottom:2px; border-bottom:1px solid var(--ink);
  }
  .property-card:hover .property-cta{color:var(--terracotta); border-color:var(--terracotta);}

  .strip{padding:20px 0 72px;}
  .strip-inner{display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
  @media (max-width:880px){ .strip-inner{grid-template-columns:1fr; max-width:460px; margin:0 auto;} }
  .strip-item{border-top:1px solid var(--line); padding-top:18px;}
  .strip-item h4{font-family:var(--font-display); font-weight:600; font-size:19px; margin-bottom:8px;}
  .strip-item p{color:var(--ink-soft); font-size:14.5px; line-height:1.6;}

  footer{padding:44px 0 60px; color:var(--ink-soft); font-size:13.5px;}
  footer .footer-contact{display:flex; flex-wrap:wrap; gap:20px; margin-bottom:18px; font-weight:600;}
  footer .footer-contact a{color:var(--ink);}
  footer .footer-contact a:hover{color:var(--green);}
  footer .footer-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; border-top:1px solid var(--line); padding-top:22px;}
  footer a.owner-link{color:var(--ink-soft); font-weight:600;}
  footer a.owner-link:hover{color:var(--ink);}

  /* ============ Property landing ============ */
  .p-hero{position:relative; height:min(72vh, 640px); min-height:420px; overflow:hidden;}
  .p-hero img{width:100%; height:100%; object-fit:cover; display:block;}
  .p-hero .placeholder-art{height:100%;}
  .p-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(18,15,10,0.68), rgba(18,15,10,0.02) 46%);}
  .p-hero-content{position:absolute; left:0; right:0; bottom:0; padding:0 0 46px; color:#fbf6e9; text-align:center;}
  .p-hero .eyebrow{color:#e9e2cf; justify-content:center; margin-bottom:14px;}
  .p-hero h1{color:#fbf6e9; font-size:clamp(38px,6.4vw,72px); line-height:1.08;}
  .p-hero .p-loc{margin:28px auto 0; max-width:44ch; font-size:16px; font-weight:400; color:#e9e2cf; font-family:var(--font-display); font-style:italic; line-height:1.9;}
  @media (max-width:600px){
    .p-hero{min-height:620px;}
    .p-hero-content{padding:0 0 34px;}
    .p-hero .p-loc{max-width:30ch; font-size:14.5px;}
  }

  .quickfacts{display:flex; gap:0; flex-wrap:wrap; justify-content:center; padding:30px 0 36px; margin-bottom:8px; border-bottom:1px solid var(--line);}
  .quickfact{padding:0 28px; border-right:1px solid var(--line); text-align:center;}
  .quickfact:last-child{border-right:none;}
  .quickfact .num{font-family:var(--font-display); font-size:28px; font-weight:600; color:var(--ink);}
  .quickfact .lbl{font-size:11px; color:var(--ink-soft); font-weight:600; text-transform:uppercase; letter-spacing:.1em; margin-top:4px;}

  .section{padding:14px 0 56px;}
  .section h2{font-size:clamp(24px,3vw,32px); margin-bottom:14px;}
  .section .lead{color:var(--ink-soft); font-size:16px; max-width:64ch; margin-bottom:26px;}

  .tabbar{display:flex; gap:6px; border-bottom:1px solid var(--line); margin-bottom:34px;}
  .tab-btn{
    padding:13px 4px; margin-right:26px; font-weight:700; font-size:15.5px; color:var(--ink-soft);
    border-bottom:3px solid transparent; background:none; border-radius:0;
  }
  .tab-btn.active{color:var(--ink); border-color:var(--terracotta);}

  .two-col{display:grid; grid-template-columns:1.1fr 0.9fr; gap:44px; align-items:start;}
  @media (max-width:860px){ .two-col{grid-template-columns:1fr;} }

  .amenity-list{display:grid; grid-template-columns:1fr 1fr; gap:22px 24px; margin-top:32px; padding-top:28px; border-top:1px solid var(--line);}
  .amenity-list div{font-size:14.5px; color:var(--ink-soft); line-height:1.6;}
  .amenity-list strong{display:block; color:var(--ink); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px;}

  .card{background:var(--stone-soft); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px;}
  .card h3{font-size:19px; margin-bottom:4px;}

  /* calendar */
  .cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
  .cal-head button{background:none; border:1px solid var(--line); border-radius:8px; width:32px; height:32px; font-size:16px; color:var(--ink);}
  .cal-title{font-weight:700; font-size:15px;}
  .cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px;}
  .cal-dow{font-size:11px; font-weight:700; text-align:center; color:var(--ink-soft); padding-bottom:4px; text-transform:uppercase;}
  .cal-cell{aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:13px; border-radius:8px; color:var(--ink-soft);}
  .cal-cell.today{box-shadow:inset 0 0 0 1.5px var(--green);}
  .cal-cell.blocked{background:var(--terracotta-wash); color:var(--terracotta); font-weight:700; text-decoration:line-through; text-decoration-thickness:1px;}
  .cal-cell.empty{visibility:hidden;}
  .cal-legend{display:flex; gap:16px; margin-top:14px; font-size:12.5px; color:var(--ink-soft);}
  .cal-legend span{display:flex; align-items:center; gap:6px;}
  .dot{width:10px; height:10px; border-radius:3px;}
  .cal-sync-note{margin-top:16px; font-size:12.5px; color:var(--ink-soft); border-top:1px dashed var(--line); padding-top:12px;}

  /* forms */
  .field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
  .field label{font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft);}
  .field input, .field select, .field textarea{
    padding:11px 13px; border-radius:10px; border:1px solid var(--line); background:var(--paper); color:var(--ink);
  }
  .field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--green); outline-offset:1px;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  @media (max-width:520px){ .field-row{grid-template-columns:1fr;} }
  .form-msg{margin-top:14px; font-size:14px; font-weight:600; padding:12px 14px; border-radius:10px;}
  .form-msg.ok{background:var(--green-wash); color:var(--green-deep);}
  .form-msg.err{background:var(--terracotta-wash); color:var(--terracotta);}

  /* events pricing tool */
  .pricing-tool{display:grid; grid-template-columns:1.05fr 0.95fr; gap:0; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; background:var(--paper); box-shadow:var(--card-shadow);}
  @media (max-width:900px){ .pricing-tool{grid-template-columns:1fr;} }
  .pricing-controls{padding:30px; border-right:1px solid var(--line);}
  @media (max-width:900px){ .pricing-controls{border-right:none; border-bottom:1px solid var(--line);} }
  .pricing-summary{padding:30px; background:var(--stone-soft); display:flex; flex-direction:column;}

  .segmented{display:flex; border:1px solid var(--line); border-radius:11px; overflow:hidden;}
  .segmented button{flex:1; padding:12px; background:var(--paper); font-weight:700; font-size:14px; color:var(--ink-soft); border-right:1px solid var(--line);}
  .segmented button:last-child{border-right:none;}
  .segmented button.active{background:var(--green); color:var(--stone-soft);}

  .slot-options{display:flex; gap:10px; margin-top:10px; flex-wrap:wrap;}
  .slot-chip{padding:10px 14px; border:1px solid var(--line); border-radius:10px; font-size:13.5px; font-weight:600; color:var(--ink-soft);}
  .slot-chip.active{border-color:var(--green); color:var(--green); background:var(--green-wash);}

  .stepper{display:flex; align-items:center; gap:10px;}
  .stepper button{width:32px; height:32px; border-radius:8px; border:1px solid var(--line); background:var(--paper); font-size:16px; font-weight:700;}
  .stepper input{width:60px; text-align:center; padding:8px 4px;}

  .addon-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--line);}
  .addon-row:last-child{border-bottom:none;}
  .addon-name{font-weight:600; font-size:14.5px;}
  .addon-price{font-size:12.5px; color:var(--ink-soft);}
  .addon-controls{display:flex; align-items:center; gap:10px;}
  .addon-controls input[type=checkbox]{width:18px; height:18px; accent-color:var(--green);}

  .quote-line{display:flex; justify-content:space-between; font-size:14.5px; padding:7px 0; color:var(--ink-soft);}
  .quote-line.discount{color:var(--terracotta);}
  .quote-total{display:flex; justify-content:space-between; align-items:baseline; margin-top:12px; padding-top:14px; border-top:1px solid var(--line);}
  .quote-total .lbl{font-weight:700; font-size:15px;}
  .quote-total .val{font-family:var(--font-mono); font-size:32px; font-weight:600; color:var(--green);}
  .quote-note{font-size:12.5px; color:var(--ink-soft); margin-top:10px; line-height:1.5;}
  .badge-discount{display:inline-block; margin-left:8px; font-size:11px; font-weight:700; background:var(--terracotta-wash); color:var(--terracotta); padding:3px 8px; border-radius:999px;}

  /* owner */
  .owner-gate{max-width:380px; margin:80px auto; text-align:center;}
  .owner-gate .card{text-align:left;}
  table.leads{width:100%; border-collapse:collapse; font-size:13.5px;}
  table.leads th{text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); padding:8px 10px; border-bottom:2px solid var(--line);}
  table.leads td{padding:10px 10px; border-bottom:1px solid var(--line); vertical-align:top;}
  .table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-md);}
  .pill{display:inline-block; padding:3px 9px; border-radius:999px; font-size:11px; font-weight:700; text-transform:uppercase;}
  .pill.stay{background:var(--green-wash); color:var(--green-deep);}
  .pill.event{background:var(--terracotta-wash); color:var(--terracotta);}
  .pill.good, .pill.urgency-low, .pill.status-resolved{background:var(--green-wash); color:var(--green-deep);}
  .pill.low, .pill.urgency-medium{background:color-mix(in srgb, var(--brass) 26%, transparent); color:var(--brass);}
  .pill.out, .pill.urgency-urgent, .pill.status-open{background:var(--terracotta-wash); color:var(--terracotta);}

  .stock-row{display:flex; justify-content:space-between; align-items:center; padding:11px 0; border-bottom:1px dashed var(--line); gap:14px; flex-wrap:wrap;}
  .stock-row:last-child{border-bottom:none;}
  .stock-name{font-size:14px; font-weight:600;}
  .stock-toggle{display:flex; gap:6px; flex-shrink:0;}
  .stock-opt{padding:6px 12px; border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--ink-soft); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;}
  .stock-opt.active.good{background:var(--green-wash); color:var(--green-deep); border-color:var(--green-wash);}
  .stock-opt.active.low{background:color-mix(in srgb, var(--brass) 26%, transparent); color:var(--brass); border-color:var(--brass);}
  .stock-opt.active.out{background:var(--terracotta-wash); color:var(--terracotta); border-color:var(--terracotta-wash);}
  .brand-badge{display:block; margin:0 0 22px;}
  .brand-badge img{width:108px; height:auto; opacity:.92;}
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .brand-badge img{filter:invert(1) brightness(1.5);} }
  :root[data-theme="dark"] .brand-badge img{filter:invert(1) brightness(1.5);}
  .settings-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start;}
  @media (max-width:900px){.settings-grid{grid-template-columns:1fr;}}
  .addon-edit-row{display:grid; grid-template-columns:1.4fr 0.7fr 0.7fr auto; gap:8px; align-items:center; margin-bottom:8px;}
  .addon-edit-row input{width:100%;}
  .small-btn{padding:8px 12px; font-size:13px; border-radius:8px;}
  .muted{color:var(--ink-soft); font-size:13px;}
  .save-toast{position:fixed; bottom:24px; right:24px; z-index:80; background:var(--green); color:var(--stone-soft); padding:12px 18px; border-radius:12px; font-weight:600; font-size:14px; box-shadow:var(--card-shadow);}

  .not-found{padding:100px 0; text-align:center;}

  /* play button on hero */
  .play-btn{
    position:absolute; z-index:3; right:24px; bottom:24px;
    display:flex; align-items:center; gap:8px; padding:9px 16px 9px 10px; border-radius:999px;
    background:rgba(23,19,14,0.35); color:#fbf6e9; border:1px solid rgba(251,246,233,0.4);
    font-weight:600; font-size:12.5px; letter-spacing:.02em; backdrop-filter:blur(3px); transition:background .2s ease, border-color .2s ease;
  }
  .play-btn:hover{background:rgba(23,19,14,0.55); border-color:rgba(251,246,233,0.7);}
  .play-icon{display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px; border-radius:50%; background:rgba(251,246,233,0.9); color:var(--green-deep); font-size:8px; padding-left:1.5px;}
  @media (max-width:600px){ .play-btn{right:16px; bottom:16px; padding:8px 14px 8px 9px; font-size:11.5px;} }

  /* gallery */

  /* gallery page */
  .gallery-group{margin-bottom:40px;}
  .gallery-group:last-of-type{margin-bottom:28px;}
  .gallery-group-head{display:flex; align-items:baseline; gap:12px; margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--line);}
  .gallery-group-title{font-size:20px;}
  .gallery-group-count{font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft);}
  .gallery-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:14px;}
  .gallery-grid-item{position:relative; border-radius:var(--radius-md); overflow:hidden; cursor:pointer; aspect-ratio:4/3; background:var(--stone-soft); border:1px solid var(--line);}
  .gallery-grid-item img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease;}
  .gallery-grid-item:hover img{transform:scale(1.06);}
  .gallery-grid-caption{
    position:absolute; left:0; right:0; bottom:0; padding:20px 12px 10px; font-size:12.5px; font-weight:600; color:#fbf6e9;
    background:linear-gradient(to top, rgba(15,12,9,0.72), rgba(15,12,9,0));
  }
  .gallery-page-footnote{margin-top:8px; font-size:13.5px;}
  .gallery-page-footnote a{color:var(--green); font-weight:600;}
  @media (max-width:520px){ .gallery-grid{grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));} }

  /* lightbox */
  .lightbox{position:fixed; inset:0; z-index:100; background:rgba(15,12,9,0.92); display:flex; align-items:center; justify-content:center; padding:30px;}
  .lightbox-close{position:absolute; top:18px; right:22px; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,0.12); color:#fbf6e9; font-size:20px; border:none; display:flex; align-items:center; justify-content:center;}
  .lightbox-close:hover{background:rgba(255,255,255,0.22);}
  .lightbox-media{max-width:min(92vw, 900px); max-height:86vh; display:flex; align-items:center; justify-content:center; position:relative;}
  .lightbox-media img{max-width:100%; max-height:86vh; border-radius:10px; display:block;}
  .lightbox-media video{max-width:100%; max-height:86vh; border-radius:10px; display:block; background:#000;}
  .lightbox-nav{position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,0.12); color:#fbf6e9; font-size:20px; border:none;}
  .lightbox-nav:hover{background:rgba(255,255,255,0.22);}
  .lightbox-prev{left:-58px;}
  .lightbox-next{right:-58px;}
  @media (max-width:760px){ .lightbox-prev{left:6px;} .lightbox-next{right:6px;} }
