
/* HOUSE DNA v1.0.136 — responsive Bookshelf contract
   The room frame owns geometry: 4:3 desktop, 5:4 mobile.
   The original room shell + original book-cover overlays are one visual component.
   On mobile the room visual is intentionally non-interactive; the canonical linked
   book grid immediately below remains the navigation surface. Book inserts use the
   locked House 5:7 frame with object-fit:contain so source covers are never stretched. */

:root{
  --paper:#f4efe5;--ink:#2b261f;--muted:#766c5d;--wood:#3c2518;--gold:#b58b4c;
  --deep:#17120f;--line:rgba(82,59,39,.22);--cream:#fffaf0;
  --bookshelf-room-ratio:4/3;--bookshelf-room-mobile-ratio:5/4;--book-frame-ratio:5/7;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,'Times New Roman',serif}
a{color:inherit}
.housebar{height:58px;padding:0 max(18px,4vw);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(244,239,229,.97);position:sticky;top:0;z-index:30;font:600 11px/1 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.housebar a{text-decoration:none}.intro{max-width:980px;margin:0 auto;padding:58px 24px 28px;text-align:center}
.intro .kicker{font:700 10px/1 Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase;color:#6b553a}
.intro h1{font-size:clamp(42px,7vw,76px);font-weight:500;line-height:.95;margin:15px 0 18px;letter-spacing:-.035em}
.intro p{max-width:720px;margin:0 auto;font-size:clamp(18px,2.2vw,22px);line-height:1.62;color:#554c40}
.intro .readline{display:block;margin-top:8px;color:#7a5829}
.desktop-scene{display:block;max-width:1120px;margin:24px auto 0;padding:0 18px}
/* v1.0.136 — House image discipline: locked Bookshelf-room geometry (4:3 desktop, 5:4 mobile).
   The complete room canvas (including book overlays) scales as one unit, then crops only at the sides.
   No background bands may appear above or below the artwork. */
.scene{position:relative;width:100%;aspect-ratio:var(--bookshelf-room-ratio);overflow:hidden;border-radius:3px;box-shadow:0 3px 16px rgba(44,37,25,.12);border:1px solid var(--line);background:transparent}
.room-canvas{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:100%;width:auto;min-width:100%;aspect-ratio:1672/941;overflow:hidden;background:transparent}
.room-canvas>img.room{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.shelf-row{position:absolute;display:flex;align-items:flex-end;justify-content:center;gap:1.0%;z-index:4}
.shelf-row.soil{left:31.6%;top:10.8%;width:38.4%;height:17.5%}
.shelf-row.fiction{left:35.4%;top:32.7%;width:30.5%;height:14.9%}
.shelf-row.witness{left:35.0%;top:50.8%;width:31.0%;height:14.6%}
.shelf-row.sport{left:39.5%;top:67.0%;width:21.8%;height:15.4%;gap:7%}
.book-on-shelf{position:relative;height:86%;max-width:18%;display:flex;align-items:flex-end;justify-content:center;text-decoration:none;outline:none;filter:drop-shadow(0 6px 5px rgba(0,0,0,.22));transform-origin:50% 100%;transition:transform .18s ease,filter .18s ease}
.soil .book-on-shelf{max-width:15.1%;height:88%}.fiction .book-on-shelf,.witness .book-on-shelf{max-width:18.4%;height:90%}.sport .book-on-shelf{max-width:37%;height:94%}
.book-on-shelf img{display:block;max-height:100%;max-width:100%;width:auto;height:auto;border-radius:1px;box-shadow:0 1px 0 rgba(255,255,255,.15),0 8px 10px rgba(0,0,0,.25)}
.book-on-shelf::after{content:"";position:absolute;left:8%;right:8%;bottom:-3px;height:5px;background:rgba(24,13,8,.3);filter:blur(4px);border-radius:50%}
.book-on-shelf:hover,.book-on-shelf:focus-visible{transform:translateY(-6px) scale(1.025);filter:drop-shadow(0 12px 8px rgba(0,0,0,.28));z-index:10}
.book-tip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,5px);min-width:170px;max-width:240px;padding:9px 11px;background:rgba(28,20,15,.95);color:#fff7e9;border:1px solid rgba(211,172,105,.4);box-shadow:0 8px 25px rgba(0,0,0,.25);font:600 11px/1.35 Arial,sans-serif;text-align:center;opacity:0;pointer-events:none;transition:.16s;border-radius:4px}
.book-tip small{display:block;margin-top:3px;color:#d8b77e;font-weight:500}
.book-on-shelf:hover .book-tip,.book-on-shelf:focus-visible .book-tip{opacity:1;transform:translate(-50%,0)}
.plaque{position:absolute;left:50%;transform:translateX(-50%);z-index:5;padding:4px 13px 3px;background:#3b271a;color:#e6c990;border:1px solid rgba(190,145,76,.34);font:600 9px/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.plaque.soil{top:28.4%}.plaque.fiction{top:47.1%}.plaque.witness{top:64.9%}.plaque.sport{top:82.9%}
.price-note{max-width:920px;margin:26px auto 8px;text-align:center;font-size:17px;color:#685b4b}
.title-index{max-width:1180px;margin:44px auto 70px;padding:0 24px}
.title-index h2{text-align:center;font-size:25px;font-weight:500;margin:0 0 28px}
.index-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.index-group h3{font:700 10px/1 Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#72583b;border-bottom:1px solid var(--line);padding-bottom:10px;margin:0 0 8px}
.index-group a{display:block;padding:8px 0;text-decoration:none;border-bottom:1px solid rgba(82,59,39,.10);font-size:15px;line-height:1.3}
.index-group a:hover{text-decoration:underline;text-underline-offset:3px}
.mobile-books{display:none}
.future-shelf{max-width:1100px;margin:35px auto;padding:0 24px}.future-shelf:empty{display:none}
.future-shelf h2{font-size:24px;font-weight:500}.overflow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.overflow-grid a{text-decoration:none}.overflow-grid img{width:100%;max-height:300px;object-fit:contain}
.curated{display:none;max-width:1120px;margin:34px auto 86px;padding:34px 24px 0;border-top:1px solid var(--line)}
.curated.active{display:block}.curated-head{text-align:center;max-width:720px;margin:0 auto 24px}.curated h2{font-weight:500;font-size:clamp(28px,4vw,36px);margin:0 0 8px}.curated>p,.curated-head p{color:var(--muted);font-size:16px;line-height:1.55;margin:.25rem auto 0}
.curated-table{position:relative;padding:24px 26px 27px;background:linear-gradient(180deg,#4b301f 0%,#3a2519 100%);box-shadow:inset 0 1px rgba(255,255,255,.08),0 18px 40px rgba(49,32,21,.12);border:1px solid rgba(74,47,30,.34);border-radius:3px}
.curated-table::after{content:"";position:absolute;left:2.5%;right:2.5%;bottom:-8px;height:10px;background:#2c1b12;opacity:.42;filter:blur(4px);border-radius:50%}
.curated-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.curated-card{min-width:0;padding:2px 24px 4px;color:#f8efe0;text-align:left}.curated-card+ .curated-card{border-left:1px solid rgba(236,208,163,.18)}
.curated-card-inner{display:grid;grid-template-columns:minmax(82px,112px) 1fr;gap:18px;align-items:end}.curated-card img{width:100%;height:auto;max-height:190px;object-fit:contain;align-self:end;filter:drop-shadow(0 9px 8px rgba(0,0,0,.32))}.curated-card h3{font-size:20px;font-weight:500;line-height:1.15;margin:0 0 8px;color:#fff7e9}.curated-card .why{font-size:14px;line-height:1.48;color:#d9c8ad;margin:0 0 13px}.curated-card a{display:inline-block;color:#e9c888;text-decoration:none;font:700 11px/1.2 Arial,sans-serif;letter-spacing:.04em}.curated-card a:hover,.curated-card a:focus-visible{text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){.curated-card{padding:2px 14px}.curated-card-inner{grid-template-columns:80px 1fr;gap:12px}.curated-card h3{font-size:17px}.curated-card .why{font-size:13px}}
@media(max-width:760px){.curated{padding:30px 16px 0;margin-bottom:58px}.curated-head{margin-bottom:18px}.curated-table{padding:8px 16px 12px;background:linear-gradient(180deg,#4a301f,#352218)}.curated-grid{grid-template-columns:1fr}.curated-card{padding:18px 0}.curated-card+ .curated-card{border-left:0;border-top:1px solid rgba(236,208,163,.18)}.curated-card-inner{grid-template-columns:92px 1fr;gap:16px;align-items:center}.curated-card img{max-height:150px}.curated-card h3{font-size:18px}.curated-card .why{font-size:14px}.curated-card a{font-size:12px}}
@media(max-width:900px){.index-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  .housebar{height:54px}.intro{padding:38px 19px 22px}.intro h1{font-size:48px}.intro p{font-size:18px}
  .desktop-scene{padding:0 14px}.scene{aspect-ratio:var(--bookshelf-room-mobile-ratio)}.room-canvas>img.room{object-position:center}
  .plaque{display:none}
  .desktop-scene .shelf-row{display:flex;pointer-events:none;user-select:none}
  .desktop-scene .book-on-shelf{pointer-events:none;cursor:default}
  .desktop-scene .book-tip{display:none!important}
  .mobile-books{display:block;padding:20px 16px 30px;max-width:680px;margin:0 auto}
  .mobile-category{padding:28px 0 8px;border-top:1px solid var(--line)}.mobile-category:first-child{border-top:0}
  .mobile-category h2{font:700 11px/1 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#70583c;margin:0 0 18px}
  .mobile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
  .mobile-book{text-decoration:none;min-width:0;text-align:center}.mobile-cover{background:#ede5d7;padding:9px;aspect-ratio:var(--book-frame-ratio);min-height:0;display:grid;place-items:center;border:1px solid rgba(82,59,39,.12);overflow:hidden}
  .mobile-cover img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;object-position:center;display:block;filter:drop-shadow(0 8px 8px rgba(50,32,20,.15))}
  .mobile-book h3{font-size:16px;font-weight:500;line-height:1.22;margin:10px 2px 3px}.mobile-book span{font:600 11px/1.3 Arial,sans-serif;color:#8a6433}
  .price-note{font-size:16px;margin-top:12px}.title-index{margin-top:28px}.index-grid{grid-template-columns:1fr;gap:22px}
}
@media(max-width:390px){.mobile-grid{gap:18px 10px}.mobile-cover{padding:7px}.mobile-book h3{font-size:15px}}


/* v1.0.131 — clickable current-page My Books anchor + deterministic Courtyard hit area; visual treatment unchanged */
.housebar .nav-books-current{color:var(--ink);font-weight:700}
.housebar .nav-courtyard{position:relative;z-index:31;display:inline-flex;align-items:center;min-height:44px;padding:0 2px;pointer-events:auto;touch-action:manipulation}
.curated-cover-link{display:block;text-decoration:none;color:inherit}
.curated-title-link{color:inherit;text-decoration:none}
.curated-title-link:hover,.curated-title-link:focus-visible{text-decoration:underline;text-underline-offset:.18em}


/* v1.0.132 — visual release guard: no brown letterbox/padding around the Bookshelf room. */
.scene{background:transparent!important}
.room-canvas{background:transparent!important}
