/* The Literary Lookout — site styles.
   Layout: each page is a walk through the house — a dawn header, the content on paper-toned bands, then the door (book). */
:root{
  /* Palette pulled from the logo */
  --ink:#213443;      /* deepest page of the book */
  --ridge:#3d5a7a;    /* middle page */
  --haze:#6781a6;     /* top page */
  --mist:#7fa0a8;     /* outer arc */
  --ember:#e06350;    /* red arc */
  --sun:#f4a433;      /* the sun */

  --bg:#eef2f3;       /* mountain fog */
  --surface:#fbfaf7;  /* paper */
  --surface-2:#e4eaec;
  --fg:#1d2c38;
  --muted:#556776;
  --line:#cfd8dc;
  --accent:var(--ridge);
  --cta-bg:var(--sun);
  --cta-fg:#1d2c38;
  --chip-on-bg:#213443;
  --chip-on-fg:#fbfaf7;
  --card-paper:#fdfbf4;
  --card-rule:#e7b9ae;
  --card-ink:#2b3640;
  --note-bg:#fde9b8;
  --note-fg:#3b3220;
  --wood-1:#8a6143;
  --wood-2:#6c4a32;
  --wood-shadow:rgba(60,38,22,.35);
  --shadow:0 1px 2px rgba(33,52,67,.08),0 6px 18px rgba(33,52,67,.10);

  --f-display:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;
  --f-body:"Karla",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-card:"Courier Prime","Courier New",ui-monospace,monospace;
  --f-hand:"Caveat","Bradley Hand","Segoe Print",cursive;

  --s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4.5rem;
  --r:10px;
  --maxw:1180px;
  --header-h:60px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#121d27;--surface:#1a2834;--surface-2:#22323f;--fg:#e9e5dc;--muted:#a2b0ba;--line:#2e3f4c;
  --accent:#9fb6d3;--cta-bg:var(--sun);--cta-fg:#1d2c38;--chip-on-bg:#e9e5dc;--chip-on-fg:#121d27;
  --card-paper:#f3eee1;--card-rule:#d9a497;--card-ink:#2b3640;--note-bg:#f6dfa4;--note-fg:#3b3220;
  --wood-1:#6e4d36;--wood-2:#4f3726;--wood-shadow:rgba(0,0,0,.5);
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 22px rgba(0,0,0,.35);color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#121d27;--surface:#1a2834;--surface-2:#22323f;--fg:#e9e5dc;--muted:#a2b0ba;--line:#2e3f4c;
  --accent:#9fb6d3;--cta-bg:var(--sun);--cta-fg:#1d2c38;--chip-on-bg:#e9e5dc;--chip-on-fg:#121d27;
  --card-paper:#f3eee1;--card-rule:#d9a497;--card-ink:#2b3640;--note-bg:#f6dfa4;--note-fg:#3b3220;
  --wood-1:#6e4d36;--wood-2:#4f3726;--wood-shadow:rgba(0,0,0,.5);
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 22px rgba(0,0,0,.35);color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--surface)}
h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.1;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--sun);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--accent)}
.section{padding-block:var(--s-8)}
.section-head{display:grid;gap:var(--s-3);margin-bottom:var(--s-6);max-width:44rem}
.section-head h2{font-size:clamp(2rem,1.4rem + 2.4vw,3rem)}
.section-head p{color:var(--muted);font-size:1.05rem}

/* Prototype ribbon */
.ribbon{background:var(--ink);color:#f3efe6;font-size:.8rem;text-align:center}
.ribbon .wrap{padding-block:6px}

/* Header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:var(--s-4);height:var(--header-h)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.brand img{width:56px;height:auto;flex:none}
.brand span{font-family:var(--f-display);font-weight:600;font-size:1.05rem;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.nav{display:flex;gap:var(--s-5);margin-left:auto;align-items:center}
.nav a{text-decoration:none;font-weight:500;color:var(--muted)}
.nav a:hover{color:var(--fg)}
.nav a.btn,.nav a.btn:hover{color:var(--cta-fg)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:.7rem 1.25rem;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-cta{background:var(--cta-bg);color:var(--cta-fg);box-shadow:0 2px 0 rgba(0,0,0,.12)}
.btn-cta:hover{box-shadow:0 4px 14px rgba(244,164,51,.45)}
.btn-ghost{background:transparent;border:1.5px solid currentColor}
.btn-sm{padding:.5rem 1rem;font-size:.9rem}
.nav .nav-link{display:none}
@media (min-width:860px){.nav .nav-link{display:inline}}
@media (max-width:1000px) and (min-width:860px){.brand span{display:none}}
@media (max-width:560px){.brand span{display:none}.brand img{width:72px}}

/* Hero — a fixed dawn scene in both themes */
.hero{position:relative;color:#fff8ec;background:linear-gradient(180deg,#2b4563 0%,#56709a 34%,#c98a7a 66%,#f3b66a 100%);overflow:hidden;isolation:isolate}
.hero svg.ridges{position:absolute;inset:auto 0 0 0;width:100%;height:clamp(150px,34vw,330px);z-index:-1}
.hero .sun{position:absolute;left:68%;bottom:clamp(70px,17vw,170px);width:min(46vw,320px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,18%);background:radial-gradient(circle,#ffd27a 0%,#f4a433 52%,rgba(224,99,80,.0) 72%);z-index:-2;animation:rise 3.2s cubic-bezier(.2,.7,.2,1) both}
@keyframes rise{from{transform:translate(-50%,55%)}to{transform:translate(-50%,18%)}}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 60%;z-index:-2}
.hero.has-photo{background:#2b3a4a}
.hero.has-photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,28,40,.72) 0%,rgba(20,28,40,.45) 45%,rgba(20,28,40,0) 75%),linear-gradient(0deg,rgba(20,28,40,.55) 0%,rgba(20,28,40,0) 40%)}
.hero.has-photo .hero-inner{padding-block:clamp(4rem,12vw,9rem) clamp(5rem,14vw,10rem)}
@media (max-width:760px){.hero.has-photo::before{background:linear-gradient(0deg,rgba(20,28,40,.8) 0%,rgba(20,28,40,.5) 55%,rgba(20,28,40,.25) 100%)}}
.hero-inner{padding-block:clamp(3.5rem,9vw,7rem) clamp(9rem,22vw,15rem);display:grid;gap:var(--s-5);max-width:40rem}
.hero .eyebrow{color:#ffe1ad}
.hero h1{font-size:clamp(2.7rem,1.6rem + 5vw,5.2rem);font-weight:600;letter-spacing:.01em;text-shadow:0 2px 24px rgba(20,30,45,.35)}
.hero h1 em{font-style:italic;font-weight:500;color:#ffd894}
.hero p.lede{font-size:clamp(1.05rem,1rem + .4vw,1.25rem);max-width:32rem;color:#fff3e0;text-shadow:0 1px 12px rgba(20,30,45,.35)}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.hero .btn-ghost{color:#fff8ec}

/* Facts strip */
.facts{background:var(--surface);border-bottom:1px solid var(--line)}
.facts ul{list-style:none;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--s-4);padding-block:var(--s-5)}
.facts li{display:grid;gap:2px}
.facts b{font-family:var(--f-display);font-size:1.6rem;font-weight:600;line-height:1}
.facts span{color:var(--muted);font-size:.85rem}

/* Placeholder photo art */
.ph{position:relative;width:100%;height:100%;display:block;overflow:hidden}
.ph svg{display:block;width:100%;height:100%}
.ph-label{position:absolute;left:10px;bottom:10px;right:10px;display:flex;justify-content:space-between;align-items:flex-end;gap:8px;color:#fff;font-size:.8rem;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.ph-label b{font-family:var(--f-display);font-size:1.25rem;font-weight:600;line-height:1.1}
.ph-tag{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(20,30,45,.55);padding:3px 7px;border-radius:4px;white-space:nowrap}

/* Stays */
.stays{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.stay{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:grid;grid-template-rows:190px 1fr}
.stay-both{border:2px solid var(--sun)}
.stay-img{min-width:0}
.stay-body{padding:var(--s-5);display:grid;gap:var(--s-3);align-content:start}
.stay h3{font-size:1.85rem}
.stay p{color:var(--muted)}
.stay-facts{list-style:none;padding:0;margin:0;display:grid;gap:4px;font-size:.95rem}
.stay-facts li{display:flex;gap:8px;align-items:baseline}
.stay-facts li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sun);flex:none;transform:translateY(-2px)}
.stay-shelves{font-size:.9rem}
.stay-shelves b{color:var(--fg)}
.stay-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}
.btn-quiet{background:var(--surface-2);color:var(--fg)}
.band-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-3)}
.book-band .btn-ghost{color:#fff8ec}

/* Gallery */
.unit-gallery{margin-bottom:var(--s-6)}
.unit-title{font-size:1.5rem;margin-bottom:var(--s-3)}
.gallery{display:grid;gap:var(--s-3);grid-template-columns:repeat(4,1fr);grid-auto-rows:180px}
.gallery button{border:0;padding:0;border-radius:var(--r);overflow:hidden;cursor:zoom-in;position:relative;background:var(--surface-2)}
.gallery button:nth-child(1){grid-column:span 2;grid-row:span 2}
.gallery button:nth-child(4){grid-column:span 2}
.gallery button:hover .ph svg{transform:scale(1.03)}
.gallery .ph svg{transition:transform .5s ease}
.room-link{position:absolute;top:10px;right:10px;font-size:.75rem;font-weight:700;background:var(--surface);color:var(--fg);border-radius:999px;padding:4px 10px;box-shadow:var(--shadow)}
@media (max-width:760px){
  .gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--s-3);margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px));scrollbar-width:none;grid-auto-rows:auto}
  .gallery::-webkit-scrollbar{display:none}
  .gallery button{flex:0 0 84%;aspect-ratio:4/5;scroll-snap-align:center}
}
.swipe-hint{display:none;color:var(--muted);font-size:.85rem;margin-top:var(--s-3)}
@media (max-width:760px){.swipe-hint{display:block}}
.place .pair{line-height:1.5}

/* ===== Library ===== */
.library{background:var(--surface);border-block:1px solid var(--line)}
.lib-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:var(--s-4);margin-bottom:var(--s-5)}
.lib-head .section-head{margin-bottom:0}
.lib-stats{font-family:var(--f-card);font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}

.toolbar{position:static;top:calc(env(safe-area-inset-top,0px) + var(--header-h));z-index:20;background:var(--surface);padding-block:var(--s-3);margin-bottom:var(--s-4);display:grid;gap:var(--s-3);border-bottom:1px solid var(--line)}
.tool-row{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}
@media (min-width:761px){.toolbar{position:sticky}}
@media (max-width:760px){.tool-row.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}.tool-row.scroll::-webkit-scrollbar{display:none}.tool-row.scroll>*{flex:none}}
.search{position:relative;flex:1 1 260px;min-width:0}
.search input{width:100%;font:inherit;font-size:1rem;padding:.7rem 2.4rem .7rem 2.5rem;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--fg)}
.search input:focus{outline:none;border-color:var(--haze);box-shadow:0 0 0 3px color-mix(in srgb,var(--haze) 30%,transparent)}
.search svg{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted)}
.search .clear{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);border:0;background:transparent;width:32px;height:32px;border-radius:50%;cursor:pointer;color:var(--muted);font-size:1.2rem;line-height:1}
.seg{display:inline-flex;background:var(--bg);border:1.5px solid var(--line);border-radius:999px;padding:3px}
.seg button{border:0;background:transparent;padding:.4rem .85rem;border-radius:999px;cursor:pointer;font-weight:500;font-size:.9rem;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--chip-on-bg);color:var(--chip-on-fg)}
.seg-label{font-size:.8rem;color:var(--muted);margin-right:2px}
.tool-btn{border:1.5px solid var(--line);background:var(--bg);border-radius:999px;padding:.45rem .9rem;cursor:pointer;font-weight:500;font-size:.9rem;display:inline-flex;gap:6px;align-items:center}
.tool-btn[aria-pressed="true"]{background:var(--note-bg);color:var(--note-fg);border-color:transparent}
.tool-btn.surprise{border-color:var(--sun)}
.select{font:inherit;font-size:.9rem;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);border-radius:999px;padding:.45rem 2rem .45rem .9rem;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}

.chips{display:flex;gap:var(--s-2);overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px));padding-block:2px}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1.5px solid var(--line);background:var(--bg);border-radius:999px;padding:.35rem .8rem;cursor:pointer;font-size:.88rem;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.chip i{width:9px;height:9px;border-radius:50%;background:var(--dot,var(--muted));flex:none}
.chip small{color:var(--muted);font-variant-numeric:tabular-nums}
.chip[aria-pressed="true"]{background:var(--chip-on-bg);color:var(--chip-on-fg);border-color:transparent}
.chip[aria-pressed="true"] small{color:inherit;opacity:.7}

/* Shelves */
.shelf{margin-bottom:var(--s-6)}
.shelf-head{display:flex;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-3)}
.shelf-head h2,.shelf-head h3{font-size:1.65rem}
.shelf-head .count{font-family:var(--f-card);font-size:.8rem;color:var(--muted)}
.shelf-head .see{margin-left:auto;border:0;background:none;color:var(--accent);font-weight:700;cursor:pointer;font-size:.9rem;padding:4px}
.shelf-row{position:relative;display:flex;gap:var(--s-4);overflow-x:auto;scroll-snap-type:x proximity;padding:4px max(16px,env(safe-area-inset-left,0px)) 0;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));scrollbar-width:thin}
.shelf-row .book{flex:0 0 clamp(112px,28vw,150px);scroll-snap-align:start}
.shelf-row{padding-bottom:12px}
@media (max-width:760px){.shelf-row{scrollbar-width:none}.shelf-row::-webkit-scrollbar{display:none}}
.ledge{height:14px;margin-top:-8px;border-radius:3px;background:linear-gradient(180deg,var(--wood-1),var(--wood-2));box-shadow:0 8px 14px -6px var(--wood-shadow);position:relative;z-index:0}
.shelf-row .book .cover-wrap{position:relative;z-index:1}

/* Grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--s-5) var(--s-4)}
@media (max-width:420px){.grid{grid-template-columns:repeat(2,1fr)}}

/* Book tile */
.book{border:0;background:none;padding:0;text-align:left;cursor:pointer;text-decoration:none;color:inherit;display:grid;gap:8px;align-content:start;min-width:0}
.cover-wrap{position:relative;aspect-ratio:2/3;border-radius:3px 6px 6px 3px;overflow:hidden;box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease;background:var(--surface-2)}
.cover-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.22) 0,rgba(255,255,255,.12) 3%,rgba(0,0,0,0) 7%);pointer-events:none}
.book:hover .cover-wrap,.book:focus-visible .cover-wrap{transform:translateY(-5px) rotate(-.6deg);box-shadow:0 14px 26px rgba(20,30,45,.28)}
.cover-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.callno{position:absolute;left:8px;bottom:8px;background:#fbfaf3;color:#2b3640;font-family:var(--f-card);font-size:.62rem;line-height:1.15;padding:3px 5px;border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.25);text-align:center;z-index:2}
.pick-flag{position:absolute;top:0;right:10px;width:16px;height:26px;background:var(--ember);clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);z-index:2}
.gen-cover{position:absolute;inset:0;display:grid;align-content:space-between;padding:14% 12%;color:#fbf4e6;background:var(--gc,var(--ridge))}
.gen-cover .t{font-family:var(--f-display);font-weight:600;font-size:clamp(.95rem,.8rem + .6vw,1.2rem);line-height:1.05;text-wrap:balance}
.gen-cover .a{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.gen-cover hr{border:0;border-top:1px solid rgba(251,244,230,.5);margin:8px 0 0;width:40%}
.b-title{font-weight:700;font-size:.9rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.b-author{font-size:.8rem;color:var(--muted);margin-top:-6px}

.empty{display:grid;justify-items:center;gap:var(--s-3);text-align:center;padding-block:var(--s-7);color:var(--muted)}
.empty h3{color:var(--fg);font-size:1.6rem}

/* Book card dialog */
dialog{border:0;padding:0;background:transparent;color:inherit;max-width:min(760px,calc(100vw - 24px));width:100%;max-height:calc(100dvh - 24px)}
dialog::backdrop{background:rgba(14,22,30,.62);backdrop-filter:blur(3px)}
dialog[open]{animation:pop .22s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.card{background:var(--card-paper);color:var(--card-ink);border-radius:8px;box-shadow:0 30px 60px rgba(0,0,0,.35);display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:var(--s-5);padding:var(--s-5);position:relative;max-height:calc(100dvh - 24px);overflow:auto;
  background-image:repeating-linear-gradient(180deg,transparent 0 27px,rgba(103,129,166,.18) 27px 28px);background-position:0 70px}
.card .card-cover{align-self:start;position:sticky;top:0}
.card .card-cover .cover-wrap{box-shadow:0 10px 24px rgba(0,0,0,.25)}
.card-body{display:grid;gap:var(--s-3);font-family:var(--f-card);font-size:.92rem;min-width:0}
.card-top{display:flex;justify-content:space-between;gap:8px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--card-rule);padding-bottom:6px;color:#7a5d55}
.card h2{font-family:var(--f-display);font-size:clamp(1.7rem,1.3rem + 1.5vw,2.3rem);color:#1d2c38}
.card .by{font-family:var(--f-body);font-size:1rem;margin-top:-4px}
.fields{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;margin:0}
.fields dt{color:#7a6b62}
.fields dd{margin:0;min-width:0}
.blurb{font-family:var(--f-body);font-size:1rem;line-height:1.55}
.note{background:var(--note-bg);color:var(--note-fg);font-family:var(--f-hand);font-size:1.45rem;line-height:1.15;padding:12px 16px 14px;transform:rotate(-1.2deg);box-shadow:0 6px 12px rgba(0,0,0,.15);border-radius:2px;margin-top:4px}
.note small{display:block;font-size:1rem;opacity:.7;margin-top:4px}
.card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:var(--s-2)}
.card-actions .btn{font-family:var(--f-body)}
.card-btn{border:1.5px solid #c9c2b4;background:#fff;color:#2b3640;border-radius:999px;padding:.45rem .9rem;cursor:pointer;font-family:var(--f-body);font-weight:500}
.card-btn.room{border-color:transparent;background:#e5ebf1}
.close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(33,52,67,.08);color:#213443;font-size:1.4rem;cursor:pointer;z-index:3}
.rules{font-size:.78rem;color:#7a6b62;border-top:1px dashed #c9c2b4;padding-top:8px}
@media (max-width:600px){
  dialog{max-width:100vw;max-height:100dvh;margin:auto 0 0;width:100vw}
  .card{grid-template-columns:1fr;border-radius:16px 16px 0 0;padding:var(--s-5) max(16px,env(safe-area-inset-left,0px)) calc(var(--s-5) + env(safe-area-inset-bottom,0px));max-height:92dvh}
  .card .card-cover{position:static;width:46%;justify-self:center}
}

/* Lightbox */
.lightbox{max-width:min(1100px,calc(100vw - 16px))}
.lb-inner{position:relative;border-radius:10px;overflow:hidden;background:#000;aspect-ratio:3/2;max-height:calc(100dvh - 80px);margin-inline:auto}
@media (max-width:600px){.lightbox{margin:auto;width:calc(100vw - 16px)}.lb-inner{aspect-ratio:4/5}}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.85);color:#213443;font-size:1.4rem;cursor:pointer}
.lb-prev{left:10px}.lb-next{right:10px}
.lb-cap{color:#f3efe6;text-align:center;padding-top:10px;font-size:.9rem}
.lightbox .close{background:rgba(255,255,255,.85)}

/* Around Boone */
.boone{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s-4)}
.place{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:grid;grid-template-rows:160px auto}
.place-body{padding:var(--s-4);display:grid;gap:6px}
.place h3{font-size:1.4rem}
.place p{color:var(--muted);font-size:.95rem}
.place .pair{font-size:.82rem;color:var(--fg);border-top:1px solid var(--line);padding-top:8px;margin-top:4px}
.place .pair button{border:0;background:none;padding:0;color:var(--accent);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}

/* Book band */
.book-band{background:linear-gradient(180deg,#213443,#3d5a7a);color:#fff8ec;position:relative;overflow:hidden}
.book-band .wrap{padding-block:var(--s-8);display:grid;gap:var(--s-4);justify-items:center;text-align:center}
.book-band img{width:min(320px,70vw);height:auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.3))}
.book-band h2{font-size:clamp(2rem,1.4rem + 2.4vw,3.1rem)}
.book-band p{max-width:34rem;color:#e4e9ee}
.rules-list{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2) var(--s-5);list-style:none;padding:0;margin:0;font-size:.9rem;color:#cdd8e2}
footer{background:var(--ink);color:#b7c4cf;font-size:.85rem}

/* Sticky mobile booking bar */
.book-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(20,30,45,.12);padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:var(--s-3);transform:translateY(110%);transition:transform .3s ease}
.book-bar.show{transform:none}
.book-bar div{display:grid;line-height:1.2;min-width:0}
.book-bar b{font-family:var(--f-display);font-size:1.15rem}
.book-bar small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-bar .btn{margin-left:auto}
@media (min-width:761px){.book-bar{display:none}}
/* Netlify's free plan pins a "Powered by Netlify" badge to the bottom right (about 190×50px),
   so the button sits on the left and the right side of the bar is left clear for it. */
.book-bar{padding-right:calc(212px + env(safe-area-inset-right,0px))}
.book-bar div{display:none}
.book-bar .btn{margin-left:0;flex:1;max-width:240px;justify-content:center;white-space:nowrap;padding-inline:14px}
@media (max-width:359px){.book-bar .btn{padding-inline:12px;font-size:.9rem}}

/* ===== Multi-page additions ===== */
.ph img{display:block;width:100%;height:100%;object-fit:cover}
.gallery a,.gallery button{display:block;text-decoration:none;color:inherit}
.gallery a{border-radius:var(--r);overflow:hidden;cursor:zoom-in;position:relative;background:var(--surface-2)}
.gallery a:nth-child(1){grid-column:span 2;grid-row:span 2}
.gallery a:nth-child(4){grid-column:span 2}
.gallery{grid-auto-flow:dense}
.gallery a:hover .ph img{transform:scale(1.03)}
.gallery .ph img{transition:transform .5s ease}
@media (max-width:760px){.gallery a{flex:0 0 84%;aspect-ratio:4/5;scroll-snap-align:center}}
.room-link{text-decoration:none}
.lb-inner img{width:100%;height:100%;object-fit:contain;display:block;background:#10161e}

/* Mobile menu */
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;border:1.5px solid var(--line);border-radius:999px;padding:.45rem .9rem;font-weight:500;font-size:.9rem}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{background:var(--chip-on-bg);color:var(--chip-on-fg);border-color:transparent}
.menu-panel{position:absolute;right:0;top:calc(100% + 8px);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px;display:grid;min-width:220px;z-index:60}
.menu-panel a{padding:.7rem .9rem;border-radius:8px;text-decoration:none;font-weight:500}
.menu-panel a:hover,.menu-panel a[aria-current="page"]{background:var(--surface-2)}
@media (max-width:859px){.menu{display:block}}
.nav a[aria-current="page"]{color:var(--fg);text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--sun);text-decoration-thickness:2px}

/* Interior page header */
.page-head{position:relative;color:#fff8ec;background:linear-gradient(180deg,#2b4563 0%,#56709a 55%,#b98a86 100%);overflow:hidden;isolation:isolate}
.page-head svg.ridges{position:absolute;inset:auto 0 0 0;width:100%;height:clamp(60px,12vw,120px);z-index:-1}
.page-head .wrap{padding-block:clamp(2.5rem,6vw,4.5rem) clamp(4.5rem,11vw,8rem);display:grid;gap:var(--s-3);max-width:var(--maxw)}
.page-head h1{font-size:clamp(2.3rem,1.5rem + 3.6vw,4rem);max-width:22ch}
.page-head p{max-width:40rem;font-size:1.1rem;color:#f3ead9}
.page-head .eyebrow{color:#ffe1ad}
.page-head .hero-actions .btn-ghost{color:#fff8ec}
.crumbs{font-size:.82rem;color:#e3e9ef;display:flex;flex-wrap:wrap;gap:6px}
.crumbs a{color:inherit}
.crumbs span[aria-hidden]{opacity:.6}

/* Prose (guides and long pages) */
.prose{max-width:42rem;font-size:1.08rem;line-height:1.7}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.2rem);margin-top:1.8em}
.prose h3{font-size:1.45rem;margin-top:1.5em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.35em}
.prose a{color:var(--accent);text-underline-offset:3px}
.prose blockquote{margin-inline:0;padding:.6em 1.1em;border-left:3px solid var(--sun);background:var(--surface);border-radius:0 8px 8px 0;color:var(--muted)}
.prose img{border-radius:var(--r);box-shadow:var(--shadow)}
.prose .tip{background:var(--note-bg);color:var(--note-fg);padding:.8em 1.1em;border-radius:6px;font-size:1rem}
.prose .tip b{display:block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:2px}
.article-grid{display:grid;gap:var(--s-7);grid-template-columns:minmax(0,1fr)}
@media (min-width:1000px){.article-grid{grid-template-columns:minmax(0,1fr) 300px}}
.aside{display:grid;gap:var(--s-5);align-content:start}
@media (min-width:1000px){.aside{position:sticky;top:calc(var(--header-h) + 24px)}}
.aside-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s-5);display:grid;gap:var(--s-3)}
.aside-box h2{font-size:1.4rem}
.mini-books{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
.mini-books .b-title{font-size:.78rem}
.mini-books .b-author{display:none}
.mini-books .callno{display:none}
.draft-banner{background:var(--note-bg);color:var(--note-fg);font-size:.9rem;text-align:center;padding:8px 16px}

/* Guide cards */
.cards{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}
.guide-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:grid;grid-template-rows:180px auto;text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease}
.guide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.guide-card .gc-body{padding:var(--s-4) var(--s-5) var(--s-5);display:grid;gap:8px;align-content:start}
.guide-card h3{font-size:1.5rem}
.guide-card p{color:var(--muted);font-size:.95rem}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--accent);background:var(--surface-2);padding:3px 8px;border-radius:4px}
.filter-row{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-5)}

/* Book page */
.book-page{display:grid;gap:var(--s-6);grid-template-columns:minmax(0,1fr)}
@media (min-width:860px){.book-page{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}
.card.page-card{max-height:none;overflow:visible;box-shadow:var(--shadow)}
@media (max-width:600px){.card.page-card{grid-template-columns:1fr;border-radius:8px;padding:var(--s-5) var(--s-4)}.card.page-card .card-cover{width:55%;justify-self:center;position:static}}
.related h2{font-size:1.5rem;margin-bottom:var(--s-3)}
.related .grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}

/* Book club */
.feature-list{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));list-style:none;padding:0;margin:0}
.feature-list li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s-5);display:grid;gap:6px}
.feature-list b{font-family:var(--f-display);font-size:1.35rem;font-weight:600}
.feature-list span{color:var(--muted)}
.alt{background:var(--surface);border-block:1px solid var(--line)}

/* Stay page */
.stay-detail{display:grid;gap:var(--s-6);grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.stay-detail{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}
.book-box{background:var(--surface);border:2px solid var(--sun);border-radius:var(--r);padding:var(--s-5);display:grid;gap:var(--s-3);align-content:start}
.book-box h2{font-size:1.6rem}

/* Footer */
footer .foot{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));padding-block:var(--s-7) var(--s-5)}
footer h2{font-family:var(--f-body);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:#e9e5dc;margin-bottom:8px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
footer a{color:#b7c4cf;text-decoration:none}
footer a:hover{color:#fff}
footer .foot-brand img{width:150px;height:auto;margin-bottom:8px}
footer .fine{border-top:1px solid rgba(255,255,255,.08)}
footer .fine .wrap{padding-block:var(--s-4) calc(var(--s-4) + 70px);display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:space-between}
@media (min-width:761px){footer .fine .wrap{padding-bottom:var(--s-4)}}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--surface);padding:8px 12px;border-radius:6px}
.skip:focus{left:12px}

.shelf-head{flex-wrap:wrap;row-gap:2px}
.shelf-head .count{white-space:nowrap}
@media (max-width:560px){.shelf-head h2,.shelf-head h3{font-size:1.4rem}}
