@font-face{font-family:'EB Garamond';src:url('../fonts/ebgaramond.woff2') format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'EB Garamond';src:url('../fonts/ebgaramond-italic.woff2') format('woff2');font-weight:400 800;font-style:italic;font-display:swap}
:root{--paper:#ebe1cb;--ink:#2c261f;--soft:#5a5044;--muted:#857867}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{overflow:hidden;background:var(--paper);color:var(--ink);font-family:'EB Garamond',Georgia,serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible{outline:2px solid #956936;outline-offset:5px}button{border:0;background:none}button:disabled{cursor:default;opacity:.4}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#scene{position:fixed;inset:0;width:100%;height:100%;opacity:0;transition:opacity .65s}.is-ready #scene{opacity:1}
.g-top{position:fixed;inset:0 0 auto;z-index:2;display:flex;align-items:center;gap:24px;padding:27px 38px}.g-brand{display:flex;align-items:center;gap:10px;font-size:22px;text-decoration:none;letter-spacing:-.02em}.g-brand i{width:5px;height:19px;background:#594331;box-shadow:7px 2px 0 #a89268;transform:rotate(-8deg);margin-right:7px}.g-intro{font-size:15px;font-style:italic;color:var(--soft);margin:0}.g-nav{margin-left:auto;display:flex;gap:16px;align-items:center}.g-nav>button{font-size:22px;min-width:32px;min-height:42px}.g-marks{display:flex;gap:22px}.g-mark{padding:10px 0;font-size:16px;color:var(--soft);position:relative}.g-mark::after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .3s}.g-mark[aria-current="true"]{color:var(--ink)}.g-mark[aria-current="true"]::after{transform:scaleX(1)}
.g-bar{position:fixed;z-index:2;bottom:28px;left:38px;right:38px;display:flex;justify-content:space-between;align-items:end;gap:32px;pointer-events:none}.g-reader{max-width:620px;transition:opacity .25s,transform .25s}.g-eyebrow{font:11px/1.4 Georgia,serif;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin:0 0 10px}.g-count{display:none}.g-reader h1{font-weight:400;font-size:42px;line-height:1.1;letter-spacing:-.025em;margin:0 0 5px}.g-years{font-size:14px;margin:0 0 9px;color:var(--soft);letter-spacing:.04em}.g-line{font-size:17px;line-height:1.4;max-width:570px;margin:0;color:var(--soft);text-wrap:pretty}.g-actions{display:flex;flex-direction:column;align-items:end;gap:12px;pointer-events:auto;padding-bottom:2px}.g-open{font-size:18px;padding:5px 0;border-bottom:1px solid #927e5e}.g-open span{margin-left:20px}.g-about{font-size:14px;color:var(--soft);padding:4px 0}.g-hint{font:italic 13px/1.5 'EB Garamond',Georgia,serif;color:var(--muted);margin:0}.is-moving .g-reader{opacity:.2;transform:translateY(4px)}
.g-labels{position:fixed;inset:0;pointer-events:none;z-index:1}.g-label{position:absolute;text-align:center;font-size:13px;letter-spacing:.06em;color:var(--soft);max-width:230px}.g-label small{display:block;font-size:12px;font-style:italic;margin-top:3px}.g-label.is-current{opacity:0}
.g-tip{position:fixed;top:0;left:0;z-index:5;max-width:250px;padding:14px 18px;background:#fbf6e9f5;color:#3b3429;box-shadow:0 4px 22px #352c231a;border:1px solid #c7b89766;pointer-events:none;font-size:14px;line-height:1.4}.g-tip strong,.g-tip span,.g-tip em{display:block}.g-tip strong{font-weight:500;font-size:18px}.g-tip em{font-size:12px;margin-top:8px;color:#786650}.g-book-target{position:fixed;z-index:3;pointer-events:none;border-radius:1px;padding:0;opacity:0}.g-book-target:focus-visible{opacity:1;outline:2px solid #a4773c;outline-offset:4px;background:#d6b36710}.g-book-target[hidden]{display:none}
.g-details{width:min(570px,calc(100% - 32px));max-height:80svh;overflow:auto;padding:38px 40px;background:#f3ecdc;color:#3d352a;border:1px solid #c3b396;box-shadow:0 12px 80px #2e28192b}.g-details::backdrop{background:#4b413a40;backdrop-filter:blur(6px)}#g-details-close{position:absolute;right:15px;top:8px;font-size:30px;width:40px;height:40px}.g-details h2{font-size:34px;line-height:1.2;font-weight:400;margin:12px 0 24px}.g-details p{font-size:17px;line-height:1.6;color:#6b5c48}.g-details p:empty{display:none}.g-details .g-eyebrow{font-size:10px}.g-details h3{font-weight:400;font-size:21px;margin:25px 0 10px}#g-directory{display:flex;flex-direction:column;gap:0}#g-directory a{display:block;padding:13px 0;border-top:1px solid #caba9b66;font-size:18px;text-decoration:none}#g-directory a::after{content:'↗';float:right;margin-left:10px}.g-book{position:fixed;inset:0;z-index:6;width:100%;height:100%;border:0;background:transparent;visibility:hidden}.g-book.is-open{visibility:visible}.g-fade{display:none}.g-top,.g-bar,.g-labels{transition:opacity .35s}.is-reading .g-top,.is-reading .g-bar,.is-reading .g-labels{opacity:0;pointer-events:none}.is-reading .g-actions{pointer-events:none}
@media(max-width:760px){.g-top{flex-wrap:wrap;padding:20px 22px;gap:10px}.g-brand{font-size:21px}.g-intro{font-size:13px;margin-left:auto}.g-nav{flex-basis:100%;justify-content:center;margin-top:7px;gap:21px}.g-nav>button{min-width:40px}.g-marks{gap:32px}.g-bar{bottom:22px;left:24px;right:24px;display:block}.g-reader{max-width:500px}.g-reader h1{font-size:33px}.g-years{font-size:12px;margin-bottom:7px}.g-eyebrow{font-size:9px;margin-bottom:6px}.g-line{font-size:15px;line-height:1.35;max-width:420px}.g-actions{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;margin-top:17px}.g-open{font-size:16px;white-space:nowrap}.g-open span{margin-left:6px}.g-about{font-size:12px;text-align:right;max-width:130px}.g-hint{display:none}.g-labels{display:none}.g-details{padding:32px 25px}.g-details h2{font-size:30px}.g-tip{max-width:220px}}
@media(max-height:600px) and (min-width:761px){.g-top{padding-top:15px;padding-bottom:15px}.g-bar{bottom:15px}.g-reader h1{font-size:30px}.g-line{font-size:14px;max-width:430px}.g-years{margin-bottom:4px}.g-eyebrow{margin-bottom:5px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
/* Captions are reading material; only the empty overlay passes gestures to the scene. */
.g-reader { pointer-events:auto;-webkit-user-select:text;user-select:text; }
.is-reading .g-reader { pointer-events:none; }
/* Moe is a present-day reader in the same gallery. */
body[data-reader="moe"] .g-reader h1 { font-family:Arial,Helvetica,sans-serif;font-size:45px;font-weight:600;letter-spacing:-.055em; }
body[data-reader="moe"] .g-years { font:12px/1.5 Arial,Helvetica,sans-serif;letter-spacing:.02em; }
body[data-reader="moe"] .g-line { font-size:19px; }
@media(max-width:760px){body[data-reader="moe"] .g-reader h1{font-size:35px}body[data-reader="moe"] .g-line{font-size:16px}.g-marks{gap:22px}}

.g-nav>.g-overview-button { font-size:15px;white-space:nowrap;margin-right:7px;padding:7px 0;min-height:42px;border-bottom:1px solid transparent; }
.g-overview-button[aria-pressed="true"] { border-bottom-color:currentColor; }
#g-overview[hidden],#g-overview-caption[hidden] { display:none; }
#g-overview { position:fixed;inset:0;z-index:1;pointer-events:none; }
.g-case-target { position:fixed;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;pointer-events:auto;padding:0 0 2px;text-align:center; }
.g-case-name { font-size:23px;line-height:1.1;max-width:100%; }
.g-case-target:first-child .g-case-name { font-family:Arial,Helvetica,sans-serif;font-weight:600;letter-spacing:-.04em; }
.g-case-when { font-size:12px;color:var(--soft);margin-top:6px; }
.g-case-teaser { font-size:13px;line-height:1.35;max-width:240px;margin-top:7px;color:var(--soft); }
.g-case-target:hover .g-case-name { text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px; }
#g-overview-caption { position:fixed;bottom:30px;left:24px;right:24px;text-align:center;pointer-events:none; }
#g-overview-caption h1 { font-weight:400;font-size:30px;letter-spacing:-.02em;margin:0 0 5px; }
#g-overview-caption p { font-size:16px;margin:0;color:var(--soft); }
.is-overview .g-bar,.is-overview .g-labels { visibility:hidden;opacity:0;pointer-events:none; }
.is-overview .g-reader,.is-overview .g-actions { pointer-events:none; }
.is-overview .g-top { color:#344239; }
.is-moving #g-overview { pointer-events:none; }
.is-moving .g-case-target { pointer-events:none; }
.no-3d #g-overview:not([hidden]) { display:flex;justify-content:center;align-items:center;gap:25px;padding:25px; }
.no-3d .g-case-target { position:static;min-height:130px;justify-content:center; }
@media(max-width:599px) and (min-height:501px){
  .has-3d .g-case-target { align-items:flex-start;justify-content:center;padding:0 8px 0 54%;text-align:left; }
  .has-3d .g-case-name { font-size:22px; }
  .has-3d .g-case-when { font-size:12px; }
}
@media(max-width:760px) and (max-height:500px){
  .g-top { flex-wrap:nowrap;padding:10px 20px; }
  .g-intro { display:none; }
  .g-nav { flex-basis:auto;gap:14px;margin-top:0; }
  .g-nav #g-prev,.g-nav #g-next { display:none; }
  .g-marks { gap:14px; }
  .g-case-name { font-size:17px; }
  .g-case-when { font-size:10px; }
  .g-case-teaser { font-size:11px;margin-top:4px; }
  #g-overview-caption { bottom:12px; }
  #g-overview-caption h1 { font-size:22px; }
  #g-overview-caption p { font-size:13px; }
}
@media(max-width:500px){
  .g-nav { gap:20px;justify-content:space-between; }
  .g-nav #g-prev,.g-nav #g-next { display:none; }
  .g-nav>.g-overview-button { font-size:14px;margin:0; }
  .g-marks { gap:18px; }
  .g-mark { font-size:15px; }
  .g-case-name { font-size:17px; }
  .g-case-when { font-size:11px; }
  #g-overview-caption h1 { font-size:26px; }
  #g-overview-caption p { font-size:14px; }
}

/* The product story and each reader's introduction have separate entrances. */
.g-product-about { font-size:15px;white-space:nowrap;text-decoration:none;padding:12px 0;color:var(--soft); }
.g-product-about:hover { text-decoration:underline; }
.g-details h2:focus,.g-about-copy h1:focus { outline:none; }
.g-credits { margin-top:28px;border-top:1px solid #caba9b66;padding-top:16px; }
.g-credits summary { font-size:15px;cursor:pointer;color:#766953;min-height:32px; }
.g-credits summary:focus-visible { outline:2px solid #956936;outline-offset:5px; }
.g-credits p { font-size:14px;line-height:1.55; }
body[data-reader="moe"] .g-details { background:#f5f4ee;border-color:#cbd0c6;color:#293d37; }
body[data-reader="moe"] .g-details h2 { font-family:Arial,Helvetica,sans-serif;font-weight:600;letter-spacing:-.045em; }
body[data-reader="moe"] .g-details p,body[data-reader="moe"] .g-credits summary { color:#586257; }
.g-story { width:min(760px,calc(100% - 40px));max-height:calc(100svh - 48px);padding:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:#f7f6f0;color:#2f4038;border:1px solid #cbd0c6;box-shadow:0 18px 90px #27352b24; }
.g-story::backdrop { background:#39463d5e;backdrop-filter:blur(7px); }
.g-story-tools { position:sticky;top:0;z-index:1;display:flex;justify-content:flex-end;padding:8px 16px;background:#f7f6f0f5; }
.g-story-tools button { font:12px/1.4 Arial,Helvetica,sans-serif;min-height:40px;padding:0 8px;display:flex;align-items:center;gap:14px; }
.g-story-tools button span { font-size:26px;font-weight:300; }
.g-about-copy { padding:12px 58px 50px; }
.g-about-copy .g-eyebrow { font:11px/1.4 Arial,Helvetica,sans-serif;color:#727b6e;margin-bottom:20px; }
.g-about-copy h1 { font:500 clamp(34px,4.4vw,50px)/1.08 Arial,Helvetica,sans-serif;letter-spacing:-.055em;max-width:540px;margin:0 0 30px;text-wrap:balance; }
.g-about-copy p { font-size:19px;line-height:1.55;margin:0 0 22px;color:#4e5a4f; }
.g-about-copy .g-about-lead { font-size:23px;line-height:1.4;color:#2f4038;margin-bottom:28px; }
.g-about-copy code { font-size:.78em; }
.g-story-explore { display:inline-flex;gap:36px;align-items:center;min-height:44px;padding:6px 0;text-decoration:none;border-bottom:1px solid #778373;font-size:20px;margin-top:9px; }
.g-story-explore:hover { color:#111f17;border-bottom-color:currentColor; }
.g-about-page { height:auto;min-height:100%;overflow:auto;background:#f7f6f0;color:#2f4038; }
.g-about-page .g-top { position:static;justify-content:space-between;border-bottom:1px solid #cbd0c64d; }
.g-about-page .g-return { font-size:15px;text-decoration:none; }
.g-about-page .g-return:hover { text-decoration:underline; }
.g-about-page main { max-width:760px;margin:48px auto 0; }
.g-about-page .g-about-copy { padding-bottom:80px; }
@media(max-width:1120px) and (min-width:761px){
  .g-intro { display:none; }
  .g-top { gap:20px; }
  .g-nav { gap:12px; }
  .g-marks { gap:18px; }
}
@media(max-width:760px){
  .g-intro { display:none; }
  .g-product-about { order:1;margin-left:auto;font-size:14px; }
  .g-nav { order:2; }
  .g-story { width:calc(100% - 24px);max-height:calc(100svh - 24px); }
  .g-story-tools { padding:5px 10px; }
  .g-about-copy { padding:12px 26px 32px; }
  .g-about-copy h1 { font-size:37px;margin-bottom:25px; }
  .g-about-copy p { font-size:18px; }
  .g-about-copy .g-about-lead { font-size:21px; }
  .g-about-page .g-top { flex-wrap:nowrap; }
  .g-about-page .g-return { font-size:13px; }
  .g-about-page main { margin-top:32px; }
}
@media(max-width:760px) and (max-height:500px){
  .g-top { gap:14px; }
  .g-product-about { order:3;font-size:12px; }
  .g-nav { gap:10px; }
  .g-marks { gap:12px; }
  .g-nav>.g-overview-button { margin-right:0;font-size:13px; }
}
