:root{
  --paper:#f7f5ef; --panel:#efece3; --card:#fbfaf6;
  --ink:#1b1a17; --ink-2:#56524a; --ink-3:#8a857a;
  --line:rgba(27,26,23,.14); --line-2:rgba(27,26,23,.28);
  --house:#2c2a63;
  --serif:'IBM Plex Serif',Georgia,'Times New Roman',serif;
  --sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;
  --field:#0e5a4e; --bureau:#9b3a1b; --symptoms:#6e2238;
  --interface:#353074; --archive:#20496b;
  /* property imprints, taken from each property's own site so a card matches
     the thing it opens */
  --locintel:#11605e; --incp:#4f46e5; --dipl:#9c7a33;
  --timesys:#08bdba; --organize:#3f6f52; --inst:#2c2a63;
  --live:#3f7a57; --soon:#9b6a1b;
}
*{box-sizing:border-box}
section[id]{scroll-margin-top:70px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em;
  font-size:11px;color:var(--ink-2)}
.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;display:inline-flex;align-items:center;gap:7px}
.dot{display:inline-block;width:9px;height:9px;border-radius:1px;flex:0 0 auto}

/* ── masthead + mega menu ── */
header{border-bottom:1px solid var(--line);background:var(--paper);
  position:sticky;top:0;z-index:40}
.mast{display:flex;align-items:center;gap:30px;padding:15px 0}
.lockup{display:flex;align-items:baseline;gap:8px;text-decoration:none}
.cjk{font-family:'IBM Plex Sans JP','Noto Sans JP',var(--sans);font-weight:500;
  font-size:19px;color:var(--house)}
.word{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:-.01em}
.tld{font-family:var(--mono);font-size:12px;color:var(--ink-3)}
nav.top{display:flex;gap:4px;margin-left:auto}
nav.top button{font:inherit;font-size:13.5px;color:var(--ink-2);background:none;
  border:0;padding:8px 12px;cursor:pointer;border-radius:2px}
nav.top button:hover,nav.top button[aria-expanded=true]{color:var(--ink);background:var(--panel)}
.mega{position:absolute;left:0;right:0;top:100%;background:var(--card);
  border-bottom:1px solid var(--line);box-shadow:0 18px 30px -22px rgba(27,26,23,.5);
  display:none}
.mega[data-open=true]{display:block}
.mega-in{max-width:1180px;margin:0 auto;padding:30px 28px 34px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:26px}
.mega h5{font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);margin:0 0 12px;font-weight:400}
.mega a{display:block;text-decoration:none;padding:7px 0;font-size:14px;
  border-bottom:1px solid transparent}
.mega a:hover{border-bottom-color:var(--line-2)}
.mega a .d{display:block;font-size:12.5px;color:var(--ink-2);margin-top:1px}

/* ── statement ── */
.statement{padding-top:60px;padding-bottom:48px;border-bottom:1px solid var(--line)}
.statement h1{font-family:var(--serif);font-size:clamp(30px,4.4vw,50px);
  line-height:1.1;font-weight:600;margin:16px 0 0;max-width:19ch;letter-spacing:-.015em}
.statement .lede{font-size:17.5px;color:var(--ink-2);max-width:60ch;margin:22px 0 0;line-height:1.62}

.shelf{padding-top:50px;padding-bottom:50px}
.shelf-head{display:flex;align-items:baseline;gap:16px;margin-bottom:4px}
.shelf-head h2{font-family:var(--serif);font-size:25px;font-weight:600;margin:0}
.shelf-head p{font-size:14px;color:var(--ink-2);margin:0;max-width:58ch}

/* ── how you get it ── */
.sell{padding-top:0;padding-bottom:50px}
.sell-row{border:1px solid var(--line);background:var(--card);padding:22px 24px;
  display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start}
.sell-row .eyebrow{padding-top:4px;white-space:nowrap}
.sell-row p{margin:0;color:var(--ink-2);max-width:72ch;line-height:1.55}
.sell-row b{color:var(--ink)}

/* ── status pill ── */
.status{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;padding:3px 7px;border:1px solid currentColor;
  border-radius:2px;display:inline-block}
.s-live{color:var(--live)} .s-soon{color:var(--soon)} .s-prev{color:var(--ink-3)}

/* ── property cards ── */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));
  gap:20px;margin-top:28px}
.card{border:1px solid var(--line);background:var(--card);
  display:flex;flex-direction:column;text-decoration:none;
  transition:border-color .2s,transform .2s}
.card:hover{border-color:var(--line-2);transform:translateY(-2px)}
.card-top{height:5px}
.card-b{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1;gap:9px}
.card-row{display:flex;align-items:center;gap:10px}
.card h3{font-family:var(--serif);font-size:19px;font-weight:600;margin:0;line-height:1.2}
.card .dom{font-family:var(--mono);font-size:11px;color:var(--ink-3);margin-left:auto}
.card p{font-size:13.5px;color:var(--ink-2);margin:0;line-height:1.5}
.card .scale{font-family:var(--mono);font-size:11px;color:var(--ink-3);margin-top:auto;
  padding-top:10px;border-top:1px solid var(--line)}

/* ── the 3D book, ported verbatim from v1 ── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));
  gap:32px 26px;margin-top:28px;margin-bottom:38px}
.bookcard{display:flex;flex-direction:column;gap:12px;text-decoration:none}
.book{position:relative;aspect-ratio:2/3;perspective:2000px}
.book .cover{position:absolute;inset:0;z-index:2;transform-origin:0 50%;
  transition:transform .85s cubic-bezier(.22,.61,.36,1),box-shadow .85s cubic-bezier(.22,.61,.36,1)!important;
  box-shadow:2px 3px 0 rgba(27,26,23,.12),inset 4px 1px 3px rgba(244,241,232,.26),inset 0 -1px 2px rgba(0,0,0,.4)}
.book .cover::after{content:"";position:absolute;left:10px;top:0;bottom:0;width:20px;
  border-left:2px solid rgba(0,0,0,.06);
  background:linear-gradient(90deg,rgba(255,255,255,.2),rgba(255,255,255,0));
  transition:width .85s cubic-bezier(.22,.61,.36,1)!important;pointer-events:none}
.book .c-light{position:absolute;top:0;bottom:0;right:0;width:90%;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.2));opacity:.1;
  transition:opacity .85s cubic-bezier(.22,.61,.36,1),width .85s cubic-bezier(.22,.61,.36,1)!important;
  pointer-events:none}
.book .book-inside{position:absolute;top:2%;bottom:2%;left:1px;right:0;background:#f4f1e8;
  border:1px solid rgba(27,26,23,.28);
  box-shadow:10px 40px 40px -10px rgba(27,26,23,.19),inset -2px 0 0 #cfc9b8,inset -3px 0 0 #f4f1e8,inset -4px 0 0 #cfc9b8,inset -5px 0 0 #f4f1e8,inset -6px 0 0 #cfc9b8,inset -7px 0 0 #f4f1e8,inset -8px 0 0 #cfc9b8}
.bookcard:hover .book .cover{transform:rotateY(-30deg);
  box-shadow:2px 3px 0 rgba(27,26,23,.12),inset 4px 1px 3px rgba(244,241,232,.26),inset 0 -1px 2px rgba(0,0,0,.4),10px 0 10px -5px rgba(0,0,0,.19)}
.bookcard:hover .book .cover::after{width:40px}
.bookcard:hover .book .c-light{opacity:1;width:70%}
/* reduced motion: shorten the swing rather than remove it, so the book still
   reads as opening */
@media(prefers-reduced-motion:reduce){
  .book .cover,.book .cover::after,.book .c-light{transition-duration:.3s!important}
}
.cover{border:1px solid rgba(0,0,0,.18);display:flex;flex-direction:column;
  justify-content:space-between;padding:14px 13px;color:#f4f1e8;overflow:hidden}
.cover::before{content:"";position:absolute;inset:0;
  border:1px solid rgba(244,241,232,.22);margin:5px;pointer-events:none;z-index:1}
.c-ser{font-family:var(--mono);font-size:9px;letter-spacing:.13em;
  text-transform:uppercase;opacity:.82}
.c-title{font-family:var(--serif);font-size:17px;line-height:1.16;font-weight:600}
.c-sub{display:block;font-weight:400;font-style:italic;font-size:.78em;margin-top:4px;opacity:.92}
.c-foot{display:flex;justify-content:space-between;align-items:flex-end;
  font-family:var(--mono);font-size:9px;opacity:.85}
.b-meta .t{font-family:var(--serif);font-size:15px;font-weight:600;line-height:1.25}
.b-meta .s{margin-top:5px}

.depts{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);margin-top:28px}
.dept{background:var(--card);padding:20px 18px}
.dept h4{font-family:var(--serif);font-size:16px;margin:9px 0 6px;font-weight:600}
.dept p{font-size:13px;color:var(--ink-2);margin:0;line-height:1.5}

.house{background:var(--panel);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);padding:50px 0}
.house-g{display:grid;grid-template-columns:1.15fr 1fr;gap:50px}
.house h2{font-family:var(--serif);font-size:25px;font-weight:600;margin:0 0 16px}
.house p{color:var(--ink-2);margin:0 0 14px;max-width:58ch}
.facts{border:1px solid var(--line);background:var(--card)}
.fact{display:flex;gap:14px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:13.5px}
.fact:last-child{border-bottom:0}
.fact dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-3);width:112px;flex:0 0 auto;padding-top:3px}
.fact dd{margin:0}
footer{padding:40px 0 54px;font-size:13px;color:var(--ink-2)}
.foot-row{display:flex;gap:22px;flex-wrap:wrap;align-items:baseline;
  font-family:var(--mono);font-size:11px;letter-spacing:.03em;
  border-top:1px solid var(--line);padding-top:20px;margin-top:24px}
.foot-row a{color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--line)}
.accuracy{font-size:14.5px;color:var(--ink);max-width:60ch;line-height:1.55}
@media(max-width:820px){.house-g{grid-template-columns:1fr;gap:28px}nav.top{display:none}}
@media(max-width:640px){.sell-row{grid-template-columns:1fr;gap:8px}}
@media(max-width:560px){.shelf-head{flex-direction:column;gap:6px}
  .shelf-head p,.statement h1{max-width:none}}
