/* v24: physical magazine, one continuous leaf, native vertical document scroll. */
.codex{--fold-shadow:0;--codex-close:0}
.codex-ready .codex{height:var(--codex-scroll-height,680svh);background:transparent}
.codex-ready .codex-viewport{position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));min-height:0;padding:clamp(20px,4svh,44px) clamp(22px,5vw,76px) clamp(28px,5svh,54px);display:grid;place-items:center;touch-action:pan-y pinch-zoom;overscroll-behavior:auto;background:#9b8b73;overflow:clip}
.codex-ready .codex.is-entering .codex-viewport{position:fixed;left:0;right:0;top:var(--header-h)}
.codex-table{background:radial-gradient(ellipse at 44% 23%,#e8d7b149,transparent 66%),repeating-linear-gradient(2deg,#3827170a 0px,#3827170a 1px,transparent 2px,transparent 13px),linear-gradient(118deg,#a9997e,#8b7860 55%,#6d5b46)}
.codex-table:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 130px #382b1f28;pointer-events:none}
.codex-ready .codex-object{--magazine-hinge:50%;position:relative;width:min(1080px,100%);height:100%;max-height:730px;min-width:0;transform:none;perspective:none;touch-action:pan-y pinch-zoom;background:var(--paper);border-radius:3px 8px 9px 3px;box-shadow:0 24px 42px #24180d40,0 4px 8px #24180d40,1px 1px 0 #d8cdb6,1px 2px 0 #eee4d0,2px 3px 0 #c9bda3}
.codex-ready .codex-object:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px #967e4821,inset 1px 1px 0 #fffaf1b3,inset 0 -5px 9px #8d795719}
.codex-ready .codex-pages{height:100%;background:var(--paper);border-radius:inherit}
.codex-ready .codex-pages:after{left:calc(var(--codex-spine) - 13px);width:27px;z-index:35;background:linear-gradient(90deg,transparent,#81704e23 35%,#64553840 49%,#fffdf37a 64%,transparent)}
.codex-ready .codex-pages:before{content:"";position:absolute;left:var(--codex-spine);top:0;bottom:0;width:30%;z-index:34;pointer-events:none;background:linear-gradient(90deg,#30261b,transparent);opacity:var(--fold-shadow)}
.codex-ready .codex-page{border-radius:inherit;user-select:text;-webkit-user-select:text}
.codex-ready .codex-page.is-current{z-index:1;pointer-events:auto}
.codex-ready .codex-page.is-left-page{visibility:visible;z-index:2;pointer-events:none;clip-path:inset(0 calc(100% - var(--codex-spine)) 0 0)}
.codex-ready .codex.is-folding .codex-page.is-current{pointer-events:auto}
.codex-ready .codex:not(.is-open) .codex-page{visibility:hidden}
.codex-ready .codex-front,.codex-ready .codex-photo-page,.magazine-print.codex-front,.magazine-print.codex-photo-page{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:0;align-items:center;text-align:left;padding:0}
.codex-ready .codex-cover-copy,.magazine-print .codex-cover-copy{grid-column:2;grid-row:1;padding:clamp(24px,4vw,54px);align-self:center}
.codex-ready .codex-cover-copy h2,.magazine-print .codex-cover-copy h2{font-size:clamp(48px,6.5vw,90px);margin:22px 0;line-height:.92}
.codex-ready .codex-cover-copy>p,.magazine-print .codex-cover-copy>p{margin:0;font-size:12px;line-height:1.75}
.codex-ready .codex-cover-copy .notebook-art,.magazine-print .codex-cover-copy .notebook-art{height:clamp(90px,16svh,165px);max-width:85%;margin:18px 0}
.codex-ready .codex-cover-copy .pencil-note,.magazine-print .codex-cover-copy .pencil-note{font-size:21px;margin-top:12px}
.codex-ready .codex-cover-photo,.magazine-print .codex-cover-photo{grid-column:1;grid-row:1;display:flex;min-height:0;height:100%;padding:26px 28px 24px;justify-content:center}
.codex-ready .codex-cover-photo picture,.magazine-print .codex-cover-photo picture{width:100%;height:83%;min-height:0}
.codex-ready .codex-cover-photo img,.magazine-print .codex-cover-photo img{object-fit:contain;object-position:center}
.codex-ready .codex-cover-photo>span,.magazine-print .codex-cover-photo>span{font-size:21px;line-height:1.2;margin-top:18px}
.codex-ready .codex-photo-page .codex-photo-copy,.magazine-print.codex-photo-page .codex-photo-copy{position:relative;inset:auto;grid-column:1;grid-row:1;align-self:center;padding:34px clamp(25px,4vw,54px);background:none;color:var(--ink);pointer-events:auto}
.codex-ready .codex-photo-page .codex-photo-copy h2,.magazine-print.codex-photo-page .codex-photo-copy h2{font-size:clamp(39px,5vw,72px);line-height:1;letter-spacing:-.035em;margin:22px 0}
.codex-ready .codex-photo-page .codex-photo-copy p,.magazine-print.codex-photo-page .codex-photo-copy p{color:var(--muted);font-size:12px;line-height:1.85;max-width:290px}
.codex-ready .codex-photo-page .codex-eyebrow,.magazine-print.codex-photo-page .codex-eyebrow{color:var(--muted);font-size:8px;line-height:1.7;letter-spacing:1.2px}
.codex-ready .codex-photo-page .codex-photo,.magazine-print.codex-photo-page .codex-photo{position:relative;inset:auto;grid-column:2;grid-row:1;justify-self:center;align-self:center;max-width:none;width:calc(100% - 48px);height:calc(100% - 48px);aspect-ratio:auto!important;min-height:0;overflow:hidden;background:transparent;z-index:0}
.codex-ready .codex-photo-page .codex-photo img,.magazine-print.codex-photo-page .codex-photo img{object-fit:contain;object-position:center}
.codex-ready .codex-photo>span,.magazine-print .codex-photo>span{top:9px;right:9px;width:35px;height:35px;background:#f5efdfd9;border:1px solid #e2d8c4a6}
.codex-ready .codex-photo:focus-visible{outline:2px solid #937144;outline-offset:4px}
.codex-scroll-note{display:flex;align-items:center;gap:16px;font-family:var(--sans);font-style:normal;font-size:9px!important;line-height:1.6!important;letter-spacing:.3px;margin-top:23px!important;color:#79645f!important}
.codex-scroll-note>span{font-size:20px;line-height:1}

/* One HTML front/back sheet turns about a stationary binding. */
.codex-ready .codex-turn{inset:0;z-index:60;clip-path:none;overflow:visible;perspective:6500px;perspective-origin:50% 50%;transform-style:preserve-3d;pointer-events:none}
.codex-ready .codex-turn.is-turning{display:block}
.magazine-leaf{position:absolute;left:var(--codex-spine);top:0;width:var(--codex-leaf-width);height:100%;transform-origin:0 50%;transform-style:preserve-3d;will-change:transform;pointer-events:none}
.magazine-face{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--paper);border-radius:0 6px 7px 0;box-shadow:inset -1px 0 0 #a88f512b;pointer-events:auto}
.magazine-face:before,.magazine-face:after{content:"";position:absolute;inset:0;z-index:70;pointer-events:none}
.magazine-face:before{background:linear-gradient(90deg,#392b1c,transparent 43%,#47341b);opacity:var(--fold-shade,0)}
.magazine-face:after{background:linear-gradient(90deg,transparent 44%,#fffbed 48%,#fffdf8 50%,transparent 54%);background-position:var(--fold-light-x,50%) 0;background-size:180% 100%;opacity:var(--fold-light,0)}
.magazine-face-back{transform:rotateY(180deg);background:linear-gradient(90deg,#e8dfca,#f7f0e4 18%,#f7f0e1 68%,#e5d9c1)}
.magazine-face>.magazine-print{position:absolute!important;top:0!important;bottom:auto!important;right:auto!important;width:var(--codex-print-width)!important;height:100%!important;min-height:0!important;visibility:visible!important;opacity:1!important;transform:none!important;clip-path:none!important;pointer-events:none!important;border-radius:0;overflow:hidden}
.magazine-face-back>.magazine-print{background:transparent}
.magazine-endpaper{position:absolute;inset:16px;border:0;background:radial-gradient(ellipse at 30% 20%,#fff9e244,transparent 65%)}
.codex-ready .codex.is-closing .codex-object{background:transparent;box-shadow:none}
.codex-ready .codex.is-closing .codex-object:before{opacity:calc(1 - var(--codex-close))}
.codex-ready .codex.is-closing .codex-pages{opacity:calc(1 - var(--codex-close));box-shadow:0 24px 42px #24180d40,0 4px 8px #24180d40,1px 1px 0 #d8cdb6,1px 2px 0 #eee4d0,2px 3px 0 #c9bda3}
.codex-ready .codex.is-closed .codex-object{background:transparent;box-shadow:none}
.codex-ready .codex.is-closed .codex-object:before{display:none}
.codex-ready .codex.is-closed .codex-pages{opacity:0}
.codex-ready .codex-back{left:25%;width:48%;height:100%;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:12px;z-index:45;transform:translateX(-50%)}
.codex-back-art img{object-fit:contain;object-position:right center;transform:rotate(-1.2deg);filter:drop-shadow(0 7px 11px #28190c38)}
.codex-back-caption{padding:0 0 4px;color:#fff8e5;text-shadow:0 1px 5px #3c291c33}
.codex-back-caption>p{font-family:'La Belle Aurore',var(--serif);font-size:clamp(23px,2.2vw,34px);font-style:normal;line-height:1.25;margin:0 0 3px}
.codex-back-caption>a{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;font-size:11px;line-height:1.5;border-bottom:1px solid #fff2cf70}
.codex-back-caption>a:focus-visible{outline:2px solid #fff6d5;outline-offset:4px}

@media(max-width:700px) and (orientation:portrait){
 .codex-ready .codex-viewport{padding:22px 18px 30px}
 .codex-ready .codex-turn{perspective:6000px}
 .codex-ready .codex-object{--magazine-hinge:18px;height:min(100%,calc((100vw - 36px)*1.58));max-height:650px;border-radius:2px 6px 7px 2px}
 .codex-ready .codex-pages:after{left:calc(var(--codex-spine) - 8px);width:17px}
 .codex-ready .codex-front,.magazine-print.codex-front{display:block;text-align:left}
 .codex-ready .codex-cover-copy,.magazine-print .codex-cover-copy{position:absolute;left:var(--codex-spine);right:0;top:50%;transform:translateY(-50%);padding:22px 25px}
 .codex-ready .codex-cover-copy h2,.magazine-print .codex-cover-copy h2{font-size:clamp(48px,17vw,72px);margin:21px 0 17px;line-height:.91}
 .codex-ready .codex-cover-copy>p,.magazine-print .codex-cover-copy>p{font-size:12px;line-height:1.7}
 .codex-ready .codex-cover-copy .notebook-art,.magazine-print .codex-cover-copy .notebook-art{width:75%;height:clamp(68px,12svh,96px);margin:14px 0 8px}
 .codex-ready .codex-cover-copy .pencil-note,.magazine-print .codex-cover-copy .pencil-note{font-size:18px;margin-top:12px}
 .codex-ready .codex-cover-photo,.magazine-print .codex-cover-photo{display:none}
 .codex-scroll-note{font-size:8px!important;gap:14px;margin-top:16px!important}
 .codex-ready .codex-photo-page,.magazine-print.codex-photo-page{display:block}
 .codex-ready .codex-photo-page .codex-photo,.magazine-print.codex-photo-page .codex-photo{position:absolute;left:calc(var(--codex-spine) + 15px);right:16px;top:17px;bottom:126px;width:calc(100% - var(--codex-spine) - 31px);height:calc(100% - 143px);aspect-ratio:auto!important;z-index:0}
 .codex-ready .codex-photo-page .codex-photo img,.magazine-print.codex-photo-page .codex-photo img{object-fit:contain;object-position:center}
 .codex-ready .codex-photo-page .codex-photo-copy,.magazine-print.codex-photo-page .codex-photo-copy{position:absolute;left:var(--codex-spine);right:0;top:auto;bottom:0;padding:14px 23px 21px;color:var(--ink);background:none;pointer-events:none}
 .codex-ready .codex-photo-page .codex-photo-copy h2,.magazine-print.codex-photo-page .codex-photo-copy h2{font-size:clamp(28px,8.4vw,37px);line-height:1;letter-spacing:-.035em;margin:9px 0}
 .codex-ready .codex-photo-page .codex-photo-copy p,.magazine-print.codex-photo-page .codex-photo-copy p{font-size:10px;line-height:1.6;max-width:275px;color:var(--muted)}
 .codex-ready .codex-photo-page .codex-eyebrow,.magazine-print.codex-photo-page .codex-eyebrow{font-size:6.5px;letter-spacing:1px;color:var(--muted)}
 .codex-ready .codex-photo>span,.magazine-print .codex-photo>span{top:4px;right:4px;width:32px;height:32px;font-size:18px}
 .codex-ready .codex-back{left:50%;width:90%;gap:10px;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
 .codex-back-art img{object-position:center}
 .codex-back-caption>p{font-size:25px}.codex-back-caption>a{font-size:10px;gap:12px}
}
@media(max-width:350px) and (orientation:portrait),(max-height:650px) and (orientation:portrait){
 .codex-ready .codex-viewport{padding:16px 15px 24px}
 .codex-ready .codex-object{height:min(100%,calc((100vw - 30px)*1.58))}
 .codex-ready .codex-cover-copy,.magazine-print .codex-cover-copy{padding:16px 20px}
 .codex-ready .codex-cover-copy h2,.magazine-print .codex-cover-copy h2{font-size:49px;margin:15px 0}
 .codex-ready .codex-cover-copy>p,.magazine-print .codex-cover-copy>p{font-size:11px;line-height:1.6}
 .codex-ready .codex-cover-copy .notebook-art,.magazine-print .codex-cover-copy .notebook-art{height:54px;margin:9px 0 7px}
 .codex-ready .codex-cover-copy .pencil-note,.magazine-print .codex-cover-copy .pencil-note{font-size:16px;margin-top:5px}
 .codex-scroll-note{margin-top:11px!important;font-size:7.5px!important}
 .codex-ready .codex-photo-page .codex-photo,.magazine-print.codex-photo-page .codex-photo{left:calc(var(--codex-spine) + 12px);right:12px;top:13px;bottom:123px;width:calc(100% - var(--codex-spine) - 24px);height:calc(100% - 136px)}
 .codex-ready .codex-photo-page .codex-photo-copy,.magazine-print.codex-photo-page .codex-photo-copy{padding:13px 18px 18px}
 .codex-ready .codex-photo-page .codex-photo-copy h2,.magazine-print.codex-photo-page .codex-photo-copy h2{font-size:28px;margin:8px 0}
 .codex-ready .codex-photo-page .codex-photo-copy p,.magazine-print.codex-photo-page .codex-photo-copy p{font-size:9.5px;line-height:1.6}
 .codex-back-caption>p{font-size:23px}
}
@media(orientation:landscape) and (max-height:540px){
 .codex-ready .codex-viewport{padding:13px 36px 20px}
 .codex-ready .codex-object{width:min(780px,100%);max-height:none}
 .codex-ready .codex-cover-copy,.magazine-print .codex-cover-copy{padding:13px 25px}
 .codex-ready .codex-cover-copy h2,.magazine-print .codex-cover-copy h2{font-size:38px;margin:10px 0}
 .codex-ready .codex-cover-copy>p,.magazine-print .codex-cover-copy>p{font-size:10px;line-height:1.6}
 .codex-ready .codex-cover-copy .notebook-art,.magazine-print .codex-cover-copy .notebook-art{height:48px;margin:8px 0}
 .codex-ready .codex-cover-copy .pencil-note,.magazine-print .codex-cover-copy .pencil-note{font-size:14px;margin-top:5px}
 .codex-scroll-note{font-size:7px!important;margin-top:10px!important;gap:10px}
 .codex-ready .codex-photo-page .codex-photo-copy,.magazine-print.codex-photo-page .codex-photo-copy{padding:17px 27px}
 .codex-ready .codex-photo-page .codex-photo-copy h2,.magazine-print.codex-photo-page .codex-photo-copy h2{font-size:32px;margin:13px 0}
 .codex-ready .codex-photo-page .codex-photo-copy p,.magazine-print.codex-photo-page .codex-photo-copy p{font-size:10px;line-height:1.65}
 .codex-ready .codex-photo-page .codex-photo,.magazine-print.codex-photo-page .codex-photo{width:calc(100% - 30px);height:calc(100% - 26px)}
 .codex-ready .codex-cover-photo,.magazine-print .codex-cover-photo{padding:14px 20px}
 .codex-ready .codex-cover-photo>span,.magazine-print .codex-cover-photo>span{font-size:14px;margin-top:8px}
 .codex-back-caption>p{font-size:22px}.codex-back-caption>a{font-size:9px;min-height:36px}
}

/* OFF/reduced/failed/no-JS: all original stories remain ordinary document content. */
html:not(.codex-ready) .codex{height:auto;margin-top:0}
html:not(.codex-ready) .codex-viewport{height:auto;max-height:none;min-height:0;display:block;position:relative;top:auto;padding:35px clamp(16px,5vw,70px);visibility:visible;overflow:visible}
html:not(.codex-ready) .codex-object{height:auto;max-height:none;transform:none;width:min(1000px,100%);background:var(--paper)}
html:not(.codex-ready) .codex-pages{height:auto}
html:not(.codex-ready) .codex-page{position:relative;inset:auto;display:block;visibility:visible;height:auto;min-height:0;overflow:visible;padding:35px clamp(22px,5vw,60px);margin:0;border-bottom:1px solid var(--rule);pointer-events:auto;user-select:text;-webkit-user-select:text}
html:not(.codex-ready) .codex-front{text-align:left}
html:not(.codex-ready) .codex-cover-copy{position:relative;inset:auto;transform:none;padding:0}
html:not(.codex-ready) .codex-photo-page .codex-photo-copy{position:relative;inset:auto;padding:0 0 22px;background:none;pointer-events:auto;color:var(--ink)}
html:not(.codex-ready) .codex-photo-page .codex-photo-copy h2{font-size:clamp(35px,6vw,64px);margin:15px 0;line-height:1.05}
html:not(.codex-ready) .codex-photo-page .codex-photo-copy p,html:not(.codex-ready) .codex-photo-page .codex-eyebrow{color:var(--muted)}
html:not(.codex-ready) .codex-photo-page .codex-photo{position:relative;inset:auto;width:100%;height:520px;max-height:68svh;aspect-ratio:auto!important;background:transparent}
html:not(.codex-ready) .codex-photo-page .codex-photo img{object-fit:contain;object-position:center}
html:not(.codex-ready) .codex-turn,html:not(.codex-ready) .codex-scroll-note{display:none}
html:not(.codex-ready) .codex-back{position:relative;inset:auto;width:min(460px,100%);height:660px;max-height:88svh;transform:none;margin:28px auto 0;padding:20px;visibility:visible;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;background:#817057;gap:12px}
@media(prefers-reduced-motion:reduce){.magazine-leaf{will-change:auto}.codex-object{scroll-behavior:auto}}
