/* A compact case shelf, one film and three small investigations. */
#screen-landing .library-intro { display:flex; justify-content:space-between; align-items:center; gap:22px; }
.case-carousel-controls { display:flex; flex-shrink:0; gap:9px; }
.case-carousel-controls button { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--border-dim); border-radius:50%; background:transparent; color:var(--paper); font:21px/1 var(--font-sans); cursor:pointer; transition:background .15s,border-color .15s; }
.case-carousel-controls button:hover:not(:disabled) { border-color:var(--amber); background:var(--accent-soft); }
.case-carousel-controls button:disabled { opacity:.3; cursor:default; }
#screen-landing #story-select { --case-gap:24px; display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - 2 * var(--case-gap)) / 3); gap:var(--case-gap); overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:0; padding:4px 0 16px; margin:0; scrollbar-width:thin; scrollbar-color:var(--border-dim) transparent; }
#screen-landing #story-select::-webkit-scrollbar { height:6px; }
#screen-landing #story-select::-webkit-scrollbar-thumb { background:var(--border-dim); border-radius:4px; }
#screen-landing #story-select .story-option { scroll-snap-align:start; scroll-snap-stop:always; min-width:0; }
#screen-landing #story-select .story-cover { height:auto; aspect-ratio:1.65; }
#screen-landing #story-select .story-offer { display:flex; min-height:32px; padding:0; border:0; background:transparent; margin-top:auto; margin-bottom:16px; }
#screen-landing #story-select .story-offer > strong,#screen-landing #story-select .story-price-line strong { font:600 29px/1.1 var(--font-sans); letter-spacing:-.7px; }
#screen-landing #story-select .story-price-line { gap:12px; }
#screen-landing #story-select .story-price-line s { font-size:16px; }
#screen-landing #story-select .story-discount { padding:5px 7px; border-radius:5px; font-size:11px; }
#screen-landing #story-select .story-cta { justify-content:center; min-height:48px; margin-top:auto; padding:13px 18px; font:600 14px/1.5 var(--font-sans); text-align:center; }
#screen-landing #story-select .story-offer + .story-cta { margin-top:0; }
.marketing-home-compact { margin-top:36px; }
.home-showcase { padding:30px 0 50px; border-bottom:1px solid var(--border-dim); }
.home-showcase .marketing-watch-video { display:block; width:100%; max-height:650px; height:auto; aspect-ratio:16/9; object-fit:contain; border:1px solid var(--border-dim); border-radius:14px; background:#131416; }
.home-video-player { position:relative; overflow:hidden; aspect-ratio:16/9; border:1px solid var(--border-dim); border-radius:14px; background:#131416; }
.home-video-player .marketing-watch-video { width:100%; height:100%; max-height:none; border:0; border-radius:0; }
.home-video-play { position:absolute; inset:0; display:block; width:100%; height:100%; margin:0; padding:0; overflow:hidden; border:0; background:#131416; cursor:pointer; }
.home-video-play img { display:block; width:100%; height:100%; object-fit:contain; }
.home-video-play-icon { position:absolute; left:50%; top:50%; display:grid; place-items:center; width:72px; height:72px; transform:translate(-50%,-50%); border:1px solid #efc29b; border-radius:50%; background:#e5a16df2; color:#211c18; box-shadow:0 8px 35px #0005; transition:background .15s; }
.home-video-play:hover .home-video-play-icon { background:#f0b887; }
.home-video-play-icon svg { width:31px; height:31px; }
.home-video-player[data-trailer-player] { container-type:inline-size; }
.home-video-play[hidden], .trailer-end[hidden], .trailer-replay[hidden] { display:none; }
.trailer-end { position:absolute; inset:0; pointer-events:none; }
.trailer-case-link {
  position:absolute; left:50%; top:72.3%; transform:translate(-50%,-50%);
  display:grid; place-items:center; width:29.4%; height:10.6%; padding:0;
  border-radius:4px; color:#211b14; background:#e9ab76; pointer-events:auto;
  font:700 14px/1 Arial,sans-serif; font-size:clamp(11px,2.3cqw,29px); text-decoration:none;
}
.trailer-case-link::before { content:""; position:absolute; inset:-11px -8px; }
.trailer-case-link:hover { background:#fac28f; color:#211b14; }
.trailer-case-link:focus-visible, .trailer-replay:focus-visible { outline:2px solid #fff0d5; outline-offset:3px; }
.trailer-replay {
  position:absolute; top:7%; right:5%; pointer-events:auto;
  min-height:36px; padding:6px 12px; border:1px solid #ecd6ba70; border-radius:6px;
  background:#151719d9; color:#f5eadb; font:600 13px/1.2 var(--font-sans); cursor:pointer;
}
.home-puzzles { padding:46px 0 42px; }
.home-puzzles-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:25px; }
.home-puzzles-heading h2 { margin:0; color:var(--paper); font:600 31px/1.2 var(--font-sans); letter-spacing:-.9px; }
.home-puzzles-heading p { margin:0; color:var(--paper-dim); font:14px/1.6 var(--font-sans); }
.preview-puzzle-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.preview-puzzle-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; padding:0; text-align:left; border:1px solid var(--border-dim); border-radius:12px; background:var(--bg-panel); color:var(--paper); cursor:pointer; transition:border-color .15s,transform .15s; }
.preview-puzzle-card:hover { border-color:var(--amber); transform:translateY(-3px); }
.puzzle-card-art { display:block; position:relative; width:100%; height:178px; overflow:hidden; background:#34302c; border-bottom:1px solid var(--border-dim); }
.puzzle-exhibit { position:absolute; top:12px; left:14px; z-index:1; color:#c8b7a2; font:10px/1.5 var(--font-sans); text-transform:uppercase; letter-spacing:1.3px; }
.puzzle-paper-fragment { position:absolute; left:15%; top:45px; width:85%; padding:22px 23px 36px; transform:rotate(-5deg); background:#ddd2bd; box-shadow:0 7px 25px #0006; color:#463c31; font:14px/1.9 var(--font-serif); white-space:nowrap; }
.puzzle-art-clock { background:radial-gradient(ellipse at 50% 100%,#4e4033,#27282a 80%); }
.puzzle-clock-face { position:absolute; top:47px; left:50%; transform:translateX(-50%); color:#e0c8a8; text-align:center; font:400 54px/1.1 monospace; letter-spacing:2px; }
.puzzle-clock-face span { display:block; margin-top:8px; color:#a99781; font:9px/1.4 var(--font-sans); letter-spacing:2px; }
.puzzle-clock-slip { position:absolute; bottom:-2px; right:12px; padding:9px 18px; background:#ddd2bd; color:#463c31; transform:rotate(-5deg); font:italic 13px/1.5 var(--font-serif); }
.puzzle-art-directory { background:#37362f; }
.puzzle-envelope { position:absolute; top:43px; left:12%; width:83%; height:140px; padding:23px 30px; transform:rotate(4deg); background:#cbbd9f; color:#514431; border:1px solid #ac9c7d; box-shadow:0 7px 25px #0005; font:italic 35px/1.4 var(--font-serif); }
.puzzle-envelope::after { content:''; position:absolute; inset:auto -1px -1px; height:50px; border-top:1px solid #a38f6c; transform:skewY(-8deg); }
.puzzle-envelope span { display:block; color:#827052; font:9px/1.5 monospace; letter-spacing:3px; }
.puzzle-envelope-stamp { position:absolute; top:54px; right:27px; width:38px; height:42px; display:grid; place-items:center; border:1px dashed #827052; color:#827052; transform:rotate(4deg); font:23px/1 var(--font-serif); }
.puzzle-card-copy { display:flex; flex-direction:column; flex:1; gap:10px; padding:21px; }
.puzzle-card-type { color:var(--paper-dim); font:11px/1.5 var(--font-sans); }
.puzzle-card-title { color:var(--paper); font:600 23px/1.2 var(--font-sans); letter-spacing:-.5px; }
.puzzle-card-action { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:12px; color:var(--amber); font:600 12px/1.5 var(--font-sans); }
.home-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:23px; border-top:1px solid var(--border-dim); color:var(--paper-dim); font:12px/1.5 var(--font-sans); }
.home-footer > span { color:var(--paper); font:600 18px/1.5 var(--font-sans); letter-spacing:-.5px; }
.home-footer-dot { color:var(--amber); }
.home-footer a { text-decoration:none; }
.home-footer a:hover { color:var(--amber); }
/* Evidence is opened on demand, keeping the home page quiet. */
.home-faq { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:65px; padding:32px 0 52px; border-top:1px solid var(--border-dim); }
.home-faq h2 { max-width:280px; margin:20px 0 0; font:600 30px/1.2 var(--font-sans); letter-spacing:-.8px; }
.home-faq-list details { border-bottom:1px solid var(--border-dim); }
.home-faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 0; color:var(--paper); font:600 15px/1.5 var(--font-sans); cursor:pointer; list-style:none; }
.home-faq-list summary::-webkit-details-marker { display:none; }
.home-faq-list summary::after { content:'+'; color:var(--amber); font:20px/1 var(--font-sans); }
.home-faq-list details[open] summary::after { content:'−'; }
.home-faq-list p { margin:0 25px 22px 0; color:var(--paper-dim); font:14px/1.8 var(--font-sans); }
.site-footer { margin-top:8px; border-top:1px solid var(--border-dim); }
.site-footer-main { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding:36px 0; }
.site-footer-brand > a { color:var(--paper); font:600 22px/1.2 var(--font-sans); letter-spacing:-.7px; text-decoration:none; }
.site-footer-brand > a span { color:var(--amber); }
.site-footer-brand p { margin:13px 0 0; color:var(--paper-dim); font:13px/1.6 var(--font-sans); }
.site-footer nav h2 { margin:0 0 17px; color:var(--paper); font:600 13px/1.5 var(--font-sans); letter-spacing:0; }
.site-footer nav a { display:block; width:fit-content; margin:10px 0 0; color:var(--paper-dim); font:13px/1.5 var(--font-sans); text-decoration:none; }
.site-footer nav a:hover { color:var(--amber); }
.site-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 0 0; border-top:1px solid var(--border-dim); color:var(--paper-dim); font:11px/1.5 var(--font-sans); }
.site-footer-bottom button { padding:0; border:0; background:none; color:var(--paper-dim); font:inherit; cursor:pointer; }
.site-footer-bottom button:hover { color:var(--paper); }
.site-page-heading { margin-bottom:42px; }
.site-page-layout { max-width:800px; margin:0 0 65px; }
.site-page-layout.has-support { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); align-items:start; gap:45px; max-width:none; }
.site-info-section { margin-bottom:32px; }
.site-info-section h2 { margin:0 0 13px; color:var(--paper); font:600 24px/1.25 var(--font-sans); letter-spacing:-.6px; }
.site-info-section p { margin:0 0 14px; color:var(--paper-dim); font:15px/1.9 var(--font-sans); }
.site-info-section a { color:var(--amber); text-underline-offset:4px; }
.site-support-form { padding:28px; border:1px solid var(--border-dim); border-radius:12px; background:var(--bg-panel); }
.site-support-fields { display:grid; gap:20px; }
.site-support-fields label { display:block; color:var(--paper); font:600 13px/1.5 var(--font-sans); }
.site-support-fields label > span { color:var(--paper-dim); font-weight:400; }
.site-support-fields input,.site-support-fields select,.site-support-fields textarea { display:block; box-sizing:border-box; width:100%; max-width:100%; margin-top:8px; border:1px solid var(--border-dim); border-radius:8px; background:var(--input-bg); color:var(--paper); padding:12px; font:15px/1.5 var(--font-sans); }
.site-support-fields textarea { resize:vertical; min-height:140px; }
.site-support-form .btn { width:100%; margin-top:24px; }
#site-support-result h2 { margin:0 0 13px; font-size:27px; }
#site-support-result p { color:var(--paper-dim); font-size:14px; }
.site-preferences-dialog { box-sizing:border-box; width:calc(100% - 32px); max-width:500px; max-height:calc(100dvh - 32px); margin:auto; padding:27px; overflow-y:auto; border:1px solid var(--border-dim); border-radius:13px; background:var(--bg-panel); color:var(--paper); box-shadow:var(--shadow); font:14px/1.7 var(--font-sans); }
.site-preferences-dialog::backdrop { background:#000a; backdrop-filter:blur(4px); }
.site-preferences-title { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.site-preferences-title h2 { margin:0; font-size:26px; line-height:1.2; }
.site-close { width:32px; height:32px; padding:0; border:1px solid var(--border-dim); border-radius:6px; background:none; color:var(--paper-dim); font:24px/1 var(--font-sans); cursor:pointer; }
.site-preferences-dialog > p { margin:16px 0 20px; color:var(--paper-dim); }
.site-preference { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:18px 0; border-top:1px solid var(--border-dim); cursor:pointer; }
.site-preference strong { display:block; color:var(--paper); font:600 14px/1.4 var(--font-sans); }
.site-preference small { display:block; margin-top:5px; color:var(--paper-dim); font:12px/1.6 var(--font-sans); }
.site-preference input { width:18px; height:18px; accent-color:var(--amber); }
.site-preference > span:last-child { color:var(--paper-dim); font-size:11px; white-space:nowrap; }
.site-preferences-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; }
.puzzle-sheet { max-width:740px; }
.puzzle-question { margin:0 0 22px !important; color:var(--paper-dim); font-size:15px; }
.puzzle-evidence-list { display:grid; gap:12px; margin:22px 0; }
.puzzle-evidence { padding:22px; border:1px solid #c5b99e; border-radius:3px; background:#e0d7c4; color:#423c32; box-shadow:0 5px 18px #0001; }
.puzzle-evidence h3 { margin:0 0 14px; color:#827052; font:600 10px/1.4 var(--font-sans); letter-spacing:1.4px; text-transform:uppercase; }
.puzzle-evidence p { margin:0 0 9px; font:17px/1.7 var(--font-serif); }
.puzzle-evidence p:last-child { margin-bottom:0; }
.puzzle-evidence-letter { padding:28px 30px; }
.puzzle-evidence-letter .puzzle-paper-aside { margin-top:20px; padding-top:15px; border-top:1px solid #c5b99e; color:#827052; font:italic 14px/1.5 var(--font-serif); }
.puzzle-evidence-route p:first-of-type { font-weight:600; }
.puzzle-directory { width:100%; border-collapse:collapse; font:13px/1.5 var(--font-sans); }
.puzzle-directory th { text-align:left; padding:0 10px 10px 0; color:#827052; font-size:10px; font-weight:400; }
.puzzle-directory td { padding:12px 10px 12px 0; border-top:1px solid #c5b99e; vertical-align:top; }
.puzzle-directory td:last-child { padding-right:0; }
.puzzle-answer-form label { display:block; margin-bottom:8px; font:600 13px/1.5 var(--font-sans); }
.puzzle-answer-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; gap:10px; }
.puzzle-answer-row input { width:100%; min-width:0; }
.puzzle-sheet .puzzle-answer-row .btn { width:auto; margin:0; }
.puzzle-answer-feedback { min-height:24px; margin:10px 0 !important; color:var(--paper-dim); font:13px/1.6 var(--font-sans); }
.puzzle-answer-feedback.is-correct { color:var(--green-ok); }
.puzzle-answer-feedback.is-wrong { color:var(--red-stamp); }
.puzzle-hint,.puzzle-explanation { border-top:1px solid var(--border-dim); }
.puzzle-hint summary,.puzzle-explanation summary { padding:12px 0; color:var(--paper-dim); font:13px/1.5 var(--font-sans); cursor:pointer; }
.puzzle-hint p,.puzzle-explanation p { margin:0 0 15px; color:var(--paper-dim); font:14px/1.75 var(--font-sans); }
.puzzle-explanation strong { display:block; margin-bottom:7px; color:var(--paper); }
/* One purchase sheet: choose a method, then go straight to case setup. */
.checkout-sheet { position:fixed; max-width:640px; padding:0; overflow:hidden; }
.checkout-layout { display:grid; grid-template-columns:200px minmax(0,1fr); }
.checkout-art { min-height:340px; background-size:cover; background-position:48% center; }
.checkout-content { min-width:0; max-height:calc(100dvh - 34px); overflow-y:auto; padding:31px 29px 29px; }
.checkout-sheet .case-dialog-heading { margin-bottom:18px; }
.checkout-sheet .case-dialog-heading h2 { font-size:28px; }
.checkout-sheet .case-dialog-heading .design-eyebrow { color:var(--paper-dim); font-size:10px; letter-spacing:1.3px; }
.checkout-access { margin:0 0 22px !important; color:var(--paper-dim); font:13px/1.6 var(--font-sans); }
.checkout-price { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.checkout-price #checkout-total { color:var(--paper); font:600 40px/1.1 var(--font-sans); letter-spacing:-1px; }
.checkout-price s { color:var(--paper-dim); font:16px/1.5 var(--font-sans); }
.checkout-price .story-discount { margin-left:2px; }
.checkout-sheet #checkout-coupon { width:auto; padding:0; margin:0 0 18px; min-height:0; border:0; border-radius:0; color:var(--amber); background:none; text-decoration:underline; text-underline-offset:4px; font:13px/1.5 var(--font-sans); }
.checkout-sheet #checkout-coupon-status { margin:0 0 18px; font-size:12px; }
.checkout-sheet #checkout-form { display:grid; gap:10px; }
.checkout-sheet .checkout-method { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:48px; margin:0; border-radius:8px; font:600 14px/1.4 var(--font-sans); }
.checkout-method svg { display:block; width:20px; height:20px; flex-shrink:0; }
.checkout-sheet .checkout-paypal { border:1px solid var(--border-dim); background:transparent; color:var(--paper); }
.checkout-sheet .checkout-paypal:hover { border-color:var(--amber); background:var(--accent-soft); }
@media(max-width:900px) {
  .site-footer-main { gap:25px; }
  .home-faq { gap:30px; }
  .site-page-layout.has-support { gap:25px; }
  #screen-landing #story-select { --case-gap:18px; grid-auto-columns:calc((100% - var(--case-gap)) / 2); }
  .preview-puzzle-grid { gap:16px; }
  .puzzle-card-copy { padding:17px; }
  .puzzle-card-title { font-size:20px; }
  .puzzle-paper-fragment { left:10%; font-size:12px; }
}
@media(max-width:640px) {
  .home-faq { grid-template-columns:1fr; gap:16px; padding:20px 0 35px; }
  .home-faq h2 { margin-top:10px; font-size:27px; max-width:none; }
  .home-faq-list summary { padding:17px 0; font-size:14px; }
  .home-faq-list p { font-size:13px; }
  .site-footer-main { grid-template-columns:1fr 1fr; gap:29px 20px; padding:29px 0; }
  .site-footer-brand { grid-column:1 / -1; }
  .site-footer-brand p { margin-top:8px; }
  .site-footer nav a { font-size:12px; }
  .site-footer-bottom { font-size:10px; }
  .site-page-layout.has-support { grid-template-columns:1fr; }
  .site-support-form { padding:22px; }
  .site-info-section h2 { font-size:22px; }
  .site-info-section p { font-size:14px; }
  .site-preferences-dialog { padding:22px; }
  .site-preferences-actions { grid-template-columns:1fr; }
  #screen-landing .library-intro { gap:12px; }
  #screen-landing .library-intro h1 { font-size:30px; }
  .case-carousel-controls { gap:6px; }
  .case-carousel-controls button { width:35px; height:35px; font-size:18px; }
  #screen-landing #story-select { --case-gap:16px; grid-auto-columns:calc(100% - 40px); padding-bottom:12px; }
  #screen-landing #story-select .story-option-body { padding:22px !important; }
  .marketing-home-compact { margin-top:16px; }
  .home-showcase { padding:24px 0 30px; }
  .home-showcase .marketing-watch-video { border-radius:10px; }
  .home-video-player { border-radius:10px; }
  .home-video-play-icon { width:49px; height:49px; }
  .home-video-play-icon svg { width:25px; height:25px; }
  .home-puzzles { padding:30px 0; }
  .home-puzzles-heading { display:block; margin-bottom:22px; }
  .home-puzzles-heading h2 { font-size:27px; }
  .home-puzzles-heading p { margin-top:10px; font-size:13px; }
  .preview-puzzle-grid { grid-template-columns:1fr; gap:16px; }
  .preview-puzzle-card { display:grid; grid-template-columns:100px minmax(0,1fr); }
  .puzzle-card-art { height:100%; min-height:155px; border:0; border-right:1px solid var(--border-dim); }
  .puzzle-exhibit { top:10px; left:9px; font-size:8px; letter-spacing:.7px; }
  .puzzle-paper-fragment { left:9px; top:45px; padding:14px; font-size:10px; }
  .puzzle-clock-face { top:57px; font-size:27px; letter-spacing:0; }
  .puzzle-clock-face span { font-size:6px; letter-spacing:.8px; }
  .puzzle-clock-slip { font-size:9px; white-space:nowrap; right:-6px; padding:7px; }
  .puzzle-envelope { left:10px; top:41px; width:120px; padding:16px 12px; font-size:24px; }
  .puzzle-envelope span { font-size:6px; letter-spacing:1px; }
  .puzzle-envelope-stamp { display:none; }
  .puzzle-card-copy { gap:7px; padding:18px; }
  .puzzle-card-title { font-size:21px; }
  .puzzle-card-action { font-size:11px; padding-top:8px; }
  .puzzle-evidence { padding:18px; }
  .puzzle-evidence p { font-size:15px; }
  .puzzle-directory { font-size:11px; }
  .puzzle-directory td { padding-right:8px; }
  .puzzle-answer-row { grid-template-columns:1fr; }
  .puzzle-sheet .puzzle-answer-row .btn { width:100%; }
  .checkout-layout { grid-template-columns:1fr; }
  .checkout-art { min-height:130px; max-height:130px; background-position:center 42%; }
  .checkout-content { max-height:calc(100dvh - 164px); padding:25px; }
  .checkout-sheet { max-width:400px; }
  .checkout-sheet .case-dialog-close { position:absolute; right:12px; top:12px; border-color:#ffffff55; background:#17181ad9; color:#f0eae1; }
  .checkout-sheet .case-dialog-heading { margin-bottom:12px; }
}
@media(prefers-reduced-motion:reduce) { .preview-puzzle-card { transition:none; } .preview-puzzle-card:hover { transform:none; } }
