/* H.R. Torkaman — a house of half-open rooms */
:root{
  --red:#B3000E;
  --bg:#ECE2D2;--ink:#1C1714;--mid:#4A3F36;--muted:#7A6D60;--rule:#CDBFAE;--panel:#E2D5C2;
  --dbg:#18191A;--dink:#ECE9E3;--dmid:#BAB7B1;--dmuted:#86837E;--drule:#2E2F31;
  --serif:'Crimson Pro',Georgia,'Times New Roman',serif;
  --sans:'Instrument Sans','Helvetica Neue',Arial,sans-serif;
  --fa:'Vazirmatn',Tahoma,sans-serif;
}
html[data-weather="noon"]{--bg:#F2EDE4;--panel:#E7DFD2;--rule:#D6CAB8}
html[data-weather="dusk"]{--bg:#202124;--ink:#ECE9E3;--mid:#B9B7B2;--muted:#87857F;--rule:#36383C;--panel:#27292C;--dbg:#E9E4DB;--dink:#18191A;--dmid:#45464A;--dmuted:#77787C;--drule:#C9C4BA}
html[data-weather="night"]{--bg:#141516;--ink:#E6E3DD;--mid:#AAA8A3;--muted:#7B7A76;--rule:#2A2B2E;--panel:#1C1D1F;--dbg:#E6E1D8;--dink:#141516;--dmid:#45464A;--dmuted:#77787C;--drule:#C2BDB3}
/* rooms keep their own weather */
body.room-layers{--bg:#1C1C1B;--ink:#ECE8E1;--mid:#BDB8B0;--muted:#8A8680;--rule:#363634;--panel:#262625;--deep:#121212}
body.room-choir{--bg:#1A1A1B;--ink:#E9E4DC;--mid:#BDB6AB;--muted:#8A8379;--rule:#3A3836;--panel:#252424;--deep:#101011}
body.room-family{--bg:#E9E5DD;--ink:#1F2326;--mid:#454B50;--muted:#737A80;--rule:#C9C6BE;--panel:#DCD8CF;--deep:#22272B}
body.room-answerable{--bg:#EDE6DA;--ink:#1C1714;--mid:#4A3F36;--muted:#7A6D60;--rule:#D2C6B4;--panel:#E3D9C9;--deep:#1C1D1E}
body.room-wanting{--bg:#1D2023;--ink:#ECE9E3;--mid:#B8BCC0;--muted:#868B90;--rule:#33373B;--panel:#272B2F;--deep:#131517}
body.room-cherknevis{--bg:#F1ECE2;--ink:#1C1714;--mid:#4A3F36;--muted:#7A6D60;--rule:#D9CFBF;--panel:#E6DED0;--deep:#18191A}
body.room-family .deep, body.room-answerable .deep, body.room-cherknevis .deep{--ink:#ECE9E3;--mid:#BAB7B1;--muted:#86837E;--rule:#2E2F31;color:var(--ink)}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.5;transition:background .8s,color .8s;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
a:hover{color:var(--red)}
:focus-visible{outline:1px solid var(--red);outline-offset:4px}
.skip{position:absolute;left:16px;top:8px;background:var(--ink);color:var(--bg);padding:8px 14px;z-index:9;transform:translateY(-300%)}
.skip:focus{transform:none}
.page{position:relative;overflow:hidden}
.wrap{max-width:1240px;margin:0 auto;padding-left:96px;padding-right:40px;position:relative}
.thread{position:absolute;top:0;bottom:0;left:max(24px,calc((100% - 1240px) / 2 + 40px));width:1px;background:var(--red);opacity:.8;z-index:2;pointer-events:none}
.knot{position:absolute;left:-60px;top:6px;width:9px;height:9px;transform:rotate(45deg);background:var(--red)}
.mark{position:relative}
.cap{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase}
.cap.s{font-size:9.5px}
.muted{color:var(--muted)}.mid{color:var(--mid)}
.counter{font-style:italic;color:var(--mid)}
.fa,[lang="fa"]{font-family:var(--fa);letter-spacing:0}
.cap[lang="fa"],.nav a[lang="fa"]{letter-spacing:0;text-transform:none;font-size:15px}

/* weather strip + header */
.wx{display:flex;gap:18px;align-items:baseline;padding-top:14px;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.wx .cap{white-space:nowrap;color:var(--muted)}
.wx .line{font-size:16px;font-style:italic;color:var(--mid)}
.wx .src{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-left:auto;white-space:nowrap}
header.top{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px}
.brand{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;text-decoration:none}
.nav{display:flex;gap:36px;flex-wrap:wrap;align-items:center}
.nav a{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;padding:12px 0;border-bottom:1px solid transparent}
.nav a[aria-current="page"]{border-bottom-color:var(--red)}
.back{padding-top:12px;padding-bottom:44px}
.back a{text-decoration:none;color:var(--mid)}

h1,h2,h3{font-weight:300;margin:0}
.h1{font-size:74px;line-height:1.02;letter-spacing:-.012em}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid currentColor;padding-top:22px;margin-bottom:56px;gap:20px}
.sec-head .knot{top:30px}
.sec-head h2{font-size:46px}
.lead{font-size:21px;line-height:1.6;color:var(--mid);max-width:640px;margin:0}

/* threshold */
.threshold{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:40px;align-items:center;padding-top:40px;padding-bottom:150px}
.rings{width:100%;max-width:620px;aspect-ratio:1/1;margin-left:auto}
.ring{transform-box:view-box;transform-origin:320px 320px;transition:transform 2.6s cubic-bezier(.3,.6,.2,1)}
.ring circle{transform-box:view-box;transform-origin:320px 320px;animation:drift linear infinite}
@keyframes drift{to{transform:rotate(360deg)}}
.qbtn{background:none;border:0;padding:12px 0;cursor:pointer;color:var(--ink);font-family:var(--serif);font-size:22px;font-style:italic;text-align:left;border-bottom:1px solid var(--rule)}
.qbtn:hover{border-bottom-color:var(--red)}

/* rooms grid */
.rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:96px 56px}
.room-card{text-decoration:none;display:flex;flex-direction:column;gap:22px}
.coverbox{position:relative;background:var(--red)}
.cover{width:100%;aspect-ratio:2/3;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);box-shadow:0 18px 40px -24px rgba(0,0,0,.6)}
.room-card:hover .cover{transform:translate(10px,-10px)}
.label{border-top:1px solid var(--rule);padding-top:14px;display:flex;flex-direction:column;gap:6px}
.label .t{font-size:25px;line-height:1.15}
.label dl{margin:8px 0 0;display:grid;grid-template-columns:96px minmax(0,1fr);gap:4px 12px}
.label dt{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.label dd{margin:0;font-size:15.5px;line-height:1.4;color:var(--mid)}

/* doors */
.door{position:relative;overflow:hidden}
.door img{width:100%;height:100%;object-fit:cover}
.door .leaf{position:absolute;top:0;bottom:0;right:0;width:84%;background:var(--panel);box-shadow:-14px 0 30px -12px rgba(0,0,0,.55);transition:width 1.4s cubic-bezier(.2,.7,.2,1)}
.door:hover .leaf,.door:focus-within .leaf{width:58%}
.interlude{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:72px;align-items:center;padding-top:130px;padding-bottom:130px}

/* cartographies ledger */
.dark{background:var(--dbg);color:var(--dink)}
.dark a{color:var(--dink)}
.dark .lead{color:var(--dmid)}
.band{width:100%;height:240px;object-fit:cover;opacity:.85}
.ledger-head,.ledger-row{display:grid;grid-template-columns:44px minmax(0,1.25fr) repeat(4,minmax(0,1fr));gap:28px}
.ledger-head span{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dmuted)}
.ledger-row{padding:34px 0;border-top:1px solid var(--drule);align-items:start}
.ledger-row p{margin:0;font-size:16px;line-height:1.5;color:var(--dmid)}
.ledger-row .wrong{color:var(--dink);font-style:italic}
.ledger-row .ttl{font-size:24px;line-height:1.2;text-decoration:none}
.ledger-row .links{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px}
.ledger-row .links a{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dmuted);text-decoration:none}
.ledger-row .links a:hover{color:var(--red)}

/* thread */
.threadmap{display:grid;grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr)}
.threadmap a{height:64px;display:flex;align-items:center;border-top:1px solid var(--rule);font-size:19px;text-decoration:none}
.threadmap .r a{justify-content:flex-end;text-align:right;font-style:italic}
.threadmap svg{width:100%;height:384px}

/* who */
.who{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:80px;align-items:start}
.biglines{font-size:36px;line-height:1.28;margin:30px 0 0}
.body{font-size:20px;line-height:1.7;color:var(--mid)}
.linkrow{display:flex;gap:36px;flex-wrap:wrap;margin-top:44px}
.linkrow a{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;padding:14px 0;border-bottom:1px solid var(--rule)}
.linkrow a.strong{border-bottom-color:var(--ink)}
details.peel summary{cursor:pointer;list-style:none;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;padding:14px 0;border-bottom:1px solid var(--ink);display:inline-block}
details.peel summary::-webkit-details-marker{display:none}
details.peel[open] summary{border-bottom-color:var(--red)}

/* footer */
footer.door-foot{background:var(--dbg);color:var(--dink)}
footer.door-foot a{color:var(--dink)}
.foot{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap}
.foot .nav{gap:28px}
.foot .nav a{padding:4px 0}
.endline{margin:0;max-width:840px;font-size:40px;line-height:1.2;font-weight:300;font-style:italic}
.hert{display:flex;align-items:center;gap:12px;text-decoration:none}

/* room pages */
.room-top{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:80px;align-items:start;padding-bottom:140px}
.room-top .cover{box-shadow:0 30px 70px -30px rgba(0,0,0,.8)}
.room-title{font-size:84px;line-height:.98;letter-spacing:-.015em;margin-top:28px}
.room-lead{margin:46px 0 0;font-size:24px;line-height:1.55}
.room-label{margin-top:52px;padding-top:18px;border-top:1px solid var(--rule)}
.room-label dl{margin:0;display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px 14px}
.room-label dt{font-family:var(--sans);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-top:4px}
.room-label dd{margin:0;font-size:17px;line-height:1.45;color:var(--mid)}
.support{margin-top:52px;padding-top:34px;border-top:1px solid var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 34px;background:var(--ink);color:var(--bg)!important;text-decoration:none;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;border:0;cursor:pointer}
.btn:hover{background:var(--red)}
.btn2{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 28px;border:1px solid var(--ink);text-decoration:none;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase}
.deep{background:var(--deep)}
.series{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.series figure{margin:0}
.series img{width:100%;aspect-ratio:9/16;object-fit:cover}
.series figcaption{margin-top:16px;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--ink)}
.doorbox{position:relative;overflow:hidden;background:var(--deep);min-height:340px;display:flex;align-items:center}
.doorbox blockquote{margin:0;padding:64px 72px;font-size:40px;line-height:1.28;font-style:italic;font-weight:300;max-width:900px;color:#EFE5D6}
.doorbox .leaf{position:absolute;top:0;bottom:0;right:0;width:86%;background:var(--panel);box-shadow:-18px 0 36px -14px rgba(0,0,0,.7);transition:width 1.6s cubic-bezier(.2,.7,.2,1);z-index:1}
.doorbox.open .leaf{width:6%}
.doorbox .knob{position:absolute;left:28px;top:50%;width:7px;height:7px;transform:rotate(45deg);background:var(--red)}
.openbtn{background:none;border:0;cursor:pointer;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase}
.openbtn:hover{border-bottom-color:var(--red);color:var(--red)}
.maprow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:32px;align-items:baseline;padding:26px 0;border-top:1px solid var(--rule);text-decoration:none}
.maprow .f{font-size:17px;line-height:1.5;font-style:italic;color:var(--mid)}
.maprow .go{color:var(--red)}

/* map (paper) pages */
.split{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,3fr);gap:72px;align-items:start}
.ledger4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.ledger4 div{padding:22px 22px 24px 0;display:flex;flex-direction:column;gap:10px}
.ledger4 div+div{padding-left:22px;border-left:1px solid var(--rule)}
.ledger4 .v{font-size:18px;line-height:1.45}
.chip{font-family:var(--sans);font-size:13px;padding:8px 14px;border:1px solid var(--rule);color:var(--mid)}
.tabs{display:flex;gap:4px}
.tab{min-height:44px;padding:0 14px;background:transparent;border:0;border-bottom:1px solid transparent;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);cursor:pointer}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--red)}
pre.cite{margin:20px 0 0;padding:28px;background:var(--panel);font-family:'IBM Plex Mono',Menlo,monospace;font-size:14px;line-height:1.7;white-space:pre-wrap;word-break:break-word;color:var(--ink)}
.row{display:flex;flex-direction:column;gap:6px;padding:18px 0;border-top:1px solid var(--rule)}
.row .v{font-size:18px;line-height:1.5}
.pull{margin:64px 0 0;padding-left:28px;border-left:1px solid var(--red);font-size:28px;line-height:1.35;font-weight:300;font-style:italic}

/* small print */
.prose{max-width:720px}
.prose h2{font-size:34px;margin:72px 0 16px}
.prose p,.prose li{font-size:19px;line-height:1.7;color:var(--mid)}

/* rtl */
[dir="rtl"] .knot{left:auto;right:-60px}
[dir="rtl"] .thread{left:auto;right:max(24px,calc((100% - 1240px) / 2 + 40px))}
[dir="rtl"] .wrap{padding-left:40px;padding-right:96px}
[dir="rtl"] .room-label dl{grid-template-columns:90px minmax(0,1fr)}
[dir="rtl"] .room-label dt,[dir="rtl"] .series figcaption{letter-spacing:0;text-transform:none;font-family:var(--fa);font-size:13px}
[dir="rtl"] .doorbox .leaf{right:auto;left:0;box-shadow:18px 0 36px -14px rgba(0,0,0,.7)}
[dir="rtl"] .doorbox .knob{left:auto;right:28px}
[dir="rtl"] body,[dir="rtl"] .room-title,[dir="rtl"] .room-lead,[dir="rtl"] .body{font-family:var(--fa)}
[dir="rtl"] [dir="ltr"]{font-family:var(--serif)}
.toc{columns:2;column-gap:48px;padding:0;margin:0;list-style:none}
.toc li{padding:10px 0;border-top:1px solid var(--rule);break-inside:avoid;font-size:17px}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media (max-width:1000px){
  .threshold,.who,.interlude,.room-top,.split{grid-template-columns:minmax(0,1fr)}
  .rooms{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 24px}
  .ledger-head{display:none}
  .ledger-row{grid-template-columns:36px minmax(0,1fr);row-gap:14px}
  .ledger-row>*:nth-child(n+3){grid-column:2}
  .ledger-row p::before{content:attr(data-k);display:block;font-family:var(--sans);font-style:normal;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dmuted);margin-bottom:4px}
  .threadmap{grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr)}
  .series{grid-template-columns:minmax(0,1fr)}
  .maprow{grid-template-columns:minmax(0,1fr);gap:8px}
  .ledger4{grid-template-columns:minmax(0,1fr)}
  .ledger4 div+div{padding-left:0;border-left:0;border-top:1px solid var(--rule)}
  .wx .src{display:none}
}
@media (max-width:560px){
  body{font-size:17px}
  .wrap{padding-left:52px;padding-right:20px}
  [dir="rtl"] .wrap{padding-right:52px;padding-left:20px}
  .knot{left:-32px}[dir="rtl"] .knot{right:-32px}
  .h1{font-size:44px}.room-title{font-size:54px}
  .sec-head h2{font-size:36px}
  .rooms{grid-template-columns:minmax(0,1fr)}
  .threadmap a{font-size:15px}
  .nav{gap:2px 20px}
  .nav a{padding:8px 0}
  .wx{flex-wrap:wrap;gap:2px 14px}
  header.top{padding-top:20px;padding-bottom:16px;gap:10px}
  .doorbox blockquote{padding:44px 28px;font-size:28px}
  .endline{font-size:30px}
  .biglines{font-size:28px}
  .toc{columns:1}
}
