[hidden]{display:none!important}
/* GD64 v1R3R targeted integration styles. Existing styles.css remains unchanged. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.notice-inline{border-left:3px solid var(--gold);padding:.8rem 1rem;background:var(--paper)}
.how-number-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.95fr);gap:2rem;align-items:start}.number-figure{margin:0}.number-figure img{width:100%;height:auto;display:block}.image-expand{display:block;width:100%;padding:0;border:1px solid var(--line);background:#fff;cursor:zoom-in;box-shadow:var(--shadow)}.image-expand:focus-visible,.lightbox-close:focus-visible{outline:3px solid var(--red);outline-offset:4px}.image-lightbox{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem);background:rgba(15,25,22,.92)}.image-lightbox img{max-width:min(1500px,96vw);max-height:90vh;object-fit:contain;border:1px solid var(--gold);background:var(--paper)}.lightbox-close{position:fixed;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));width:48px;height:48px;border:1px solid var(--gold);background:var(--paper);color:var(--green);font-size:2rem;cursor:pointer}
.scripture-result{margin-top:1.5rem;padding:1.25rem;border:1px solid var(--line);background:linear-gradient(135deg,#fffaf0,var(--paper));box-shadow:var(--shadow)}.scripture-result dl{margin:0;display:grid;gap:.8rem}.scripture-result dl>div{display:grid;grid-template-columns:minmax(120px,.25fr) minmax(0,1fr);gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.scripture-result dl>div:last-child{border-bottom:0}.scripture-result dt{font-weight:700;color:var(--green)}.scripture-result dd{margin:0}.scripture-row dd{font-size:1.12rem;line-height:2}.xiang-source-label{display:none}.result-boundary{margin:1rem 0 0;color:var(--muted);font-size:.88rem}
.message-card{position:relative;padding:1rem 1.1rem;background:rgba(255,250,238,.92);border:1px solid var(--line);box-shadow:0 10px 30px rgba(16,38,32,.08)}.message-card.is-tilt-right{transform:rotate(.7deg)}.message-card.is-tilt-left{transform:rotate(-.55deg)}.message-stars{color:#9a6a18;letter-spacing:.12em}.message-meta{display:flex;justify-content:space-between;gap:1rem;margin-top:.65rem;color:var(--muted);font-size:.82rem}.message-body{white-space:pre-wrap;overflow-wrap:anywhere}.message-wall{display:grid;gap:1rem}.message-wall-empty,.message-wall-error{padding:1.4rem;border:1px dashed var(--line);color:var(--muted);background:rgba(255,255,255,.45)}.message-wall-error{border-color:var(--red)}
.guestbook-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:2rem;align-items:start}.guestbook-form{position:sticky;top:100px}.rating-field{padding-bottom:.7rem}.star-rating{display:flex;gap:.2rem;flex-direction:row-reverse;justify-content:flex-end}.star-rating label{cursor:pointer}.star-rating input{position:absolute;opacity:0;pointer-events:none}.star-rating span[aria-hidden]{font-size:1.9rem;color:#aaa;transition:color .15s ease}.star-rating label:hover span[aria-hidden],.star-rating label:hover~label span[aria-hidden],.star-rating input:checked~span[aria-hidden],.star-rating label:has(input:checked)~label span[aria-hidden]{color:#a47a25}.star-rating input:focus-visible+span[aria-hidden]{outline:3px solid var(--red);outline-offset:3px}
.form-ambient-shell{display:grid;grid-template-columns:minmax(180px,.42fr) minmax(0,1.5fr) minmax(180px,.42fr);gap:clamp(1rem,2.4vw,2rem);align-items:start}.form-main{min-width:0}.message-rail{display:grid;grid-template-rows:repeat(3,minmax(0,auto));gap:clamp(1.2rem,5vh,4rem);padding-top:clamp(.5rem,3vh,2rem)}.message-rail-left .message-safe-slot:nth-child(2){margin-right:clamp(0rem,2vw,1.8rem)}.message-rail-right .message-safe-slot:nth-child(2){margin-left:clamp(0rem,2vw,1.8rem)}.message-safe-slot:empty{display:none}.message-safe-slot .message-card{font-size:.92rem}.message-safe-slot:nth-child(2) .message-card{margin-top:clamp(1rem,8vh,5rem)}.message-safe-slot:nth-child(3) .message-card{margin-top:clamp(0rem,4vh,3rem)}
.cinematic-overlay{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;overflow:hidden;background:#0c211d;opacity:0;transition:opacity .24s ease}.cinematic-overlay.is-active{opacity:1}.cinematic-overlay.is-leaving{opacity:0}.cinematic-overlay video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.cinematic-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(5,22,19,.12) 0 66%,rgba(5,22,19,.76) 100%);pointer-events:none}.cinematic-caption{position:absolute;left:50%;bottom:max(4.5rem,calc(env(safe-area-inset-bottom) + 3rem));transform:translateX(-50%);width:min(820px,calc(100% - 3rem));margin:0;text-align:center;color:#f1dfb3;font-size:clamp(1rem,2.1vw,1.45rem);letter-spacing:.08em;text-shadow:0 2px 12px rgba(0,0,0,.8)}.cinematic-skip{position:absolute;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));min-height:44px;padding:.65rem 1rem;border:1px solid #c6a767;background:rgba(18,39,33,.72);color:#f4e5bd;font:inherit;cursor:pointer}.cinematic-skip:focus-visible{outline:3px solid #fff;outline-offset:3px}.cinematic-overlay[data-kind=guestbook]{background:#e8dcc0}.cinematic-overlay[data-kind=guestbook] .cinematic-caption{color:#40372d;text-shadow:0 1px 8px rgba(255,255,255,.8)}.cinematic-overlay[data-kind=guestbook] .cinematic-skip{background:rgba(248,240,220,.84);color:#40372d}
.prose blockquote{border-left:4px solid var(--red);margin:1.5rem 0;padding:1rem 1.25rem;background:#fff}.success-card{text-align:center}
@media(max-width:1180px){.form-ambient-shell{grid-template-columns:minmax(150px,.32fr) minmax(0,1.45fr) minmax(150px,.32fr);gap:1rem}.message-safe-slot .message-card{font-size:.86rem;padding:.85rem}}
@media(max-width:980px){.how-number-layout,.guestbook-layout{grid-template-columns:1fr}.guestbook-form{position:static}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.number-figure{width:min(760px,100%);margin-inline:auto}.form-ambient-shell{grid-template-columns:1fr}.message-rail{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:1rem;padding:0}.message-rail-left{order:1}.form-main{order:2}.message-rail-right{order:3}.message-safe-slot:nth-child(n) .message-card{margin:0}.message-safe-slot:nth-child(3){display:none}}
@media(max-width:640px){.form-grid.three{grid-template-columns:1fr}.how-number-layout{gap:1.25rem}.number-figure{width:calc(100% + 1rem);margin-left:-.5rem}.scripture-result dl>div{grid-template-columns:1fr;gap:.25rem}.cinematic-overlay video{object-fit:cover}.cinematic-caption{bottom:max(5rem,calc(env(safe-area-inset-bottom) + 4rem));width:calc(100% - 2rem)}.message-card{transform:none!important}.star-rating span[aria-hidden]{font-size:2.05rem}.message-rail{grid-template-columns:1fr}.message-rail .message-safe-slot:nth-child(n+2){display:none}}
@media(prefers-reduced-motion:reduce){.message-card{transform:none!important}.cinematic-overlay{transition:none}.message-bubble{animation:none}}

/* GD64 v1R3R4 targeted Preview rework */
.display-refined{font-family:"Noto Serif SC","Noto Serif TC","Noto Serif JP","Source Han Serif SC","Source Han Serif TC","Source Han Serif JP","Songti SC","Songti TC","Yu Mincho",Georgia,serif!important;font-weight:700!important;letter-spacing:.055em!important;color:#0d4a3c!important;-webkit-text-stroke:.18px rgba(97,63,24,.24);text-shadow:0 1px 0 rgba(255,250,234,.92),0 2px 0 rgba(167,122,40,.12),0 3px 6px rgba(36,39,31,.10)}
.form-notice-box{margin:1.15rem 0 1rem;padding:1rem 1.1rem;border:1px solid rgba(167,122,40,.52);border-left:3px solid #a77a28;background:rgba(245,235,209,.72);color:#4d463b;font-family:inherit;font-size:.94rem;font-weight:500;line-height:1.72}.gender-note{margin:1.2rem 0 1.6rem;padding:1.05rem 1.25rem 1.05rem 1.35rem;background:#faf3df;border:1px solid #c9a227;border-left:4px solid #8b1a1a;border-radius:6px;color:#1f3d2b;font-size:1.25rem;font-weight:700;line-height:1.8}
.gender-note strong{font-weight:800;color:#142e1f}
@media (max-width:640px){.gender-note{font-size:1.125rem;padding:.95rem 1.05rem .95rem 1.15rem}}
.form-notice-box p{margin:.38rem 0;color:inherit;font:inherit;line-height:inherit}.confirmation-fieldset{margin:0 0 1.35rem}.confirmation-check{padding:.25rem 0}.confirmation-check input{flex:0 0 auto;margin-top:.35em}.confirmation-check input:focus-visible{outline:3px solid #7a241d;outline-offset:3px}.confirmation-check:focus-within{outline:2px solid rgba(122,36,29,.65);outline-offset:4px;border-radius:4px}
.how-number-layout{grid-template-columns:minmax(560px,1.65fr) minmax(320px,.92fr);align-items:start}.number-figure{grid-column:1;grid-row:1}.how-number-layout>div:first-child{grid-column:2;grid-row:1}.number-figure img{aspect-ratio:auto;height:auto;object-fit:contain}.image-lightbox img{max-width:min(1600px,96vw);max-height:92vh}.image-lightbox[hidden]{display:none!important}
.form-ambient-shell{width:min(1500px,calc(100% - 2rem));grid-template-columns:minmax(190px,.36fr) minmax(0,1.45fr) minmax(190px,.36fr)}.message-rail-left .message-safe-slot:nth-child(2){margin-right:0}.message-rail-right .message-safe-slot:nth-child(2){margin-left:0}.message-rail{min-width:0;position:sticky;top:98px;max-height:calc(100vh - 118px);align-content:space-around;overflow:visible}.message-rail-left{justify-items:end}.message-rail-right{justify-items:start}.message-safe-slot{min-width:0;width:100%;max-width:100%;min-height:1px;overflow:visible}.message-safe-slot:empty{display:block}.floating-message-layer{position:fixed;inset:0;z-index:40;overflow:hidden;pointer-events:none!important;user-select:none;contain:layout style;}
.message-bubble{width:var(--bubble-width,220px);max-width:min(320px,88vw);height:var(--bubble-height,120px);margin:0;padding:1rem 1.15rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;overflow-wrap:anywhere;color:#3e443d;border:1px solid rgba(75,70,52,.13);border-radius:46% 54% 49% 51% / 55% 44% 56% 45%;box-shadow:0 4px 12px rgba(37,44,37,.045);font-size:.88rem;line-height:1.55;position:fixed;pointer-events:none!important;cursor:default;will-change:transform,opacity;backdrop-filter:blur(.35px);}
.message-bubble-floating{pointer-events:none!important;}
@media(max-width:1180px){.form-ambient-shell{grid-template-columns:minmax(180px,.3fr) minmax(0,1.35fr) minmax(180px,.3fr)}.message-bubble{font-size:.82rem}}
@media(max-width:980px){.how-number-layout{grid-template-columns:1fr}.number-figure,.how-number-layout>div:first-child{grid-column:1;grid-row:auto}.number-figure{width:min(820px,100%);order:-1}.form-ambient-shell{grid-template-columns:1fr}.message-rail{display:none;position:static;max-height:none}.form-main{order:2}}
@media(orientation:landscape) and (min-width:700px) and (max-width:980px){.message-rail-left{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;order:1;justify-items:center;margin-bottom:.8rem}.message-rail-right{display:none}.message-bubble{max-width:210px;font-size:.78rem}}
@media(max-width:699px) and (orientation:portrait){.message-rail{display:none!important}.how-number-layout{gap:1.1rem}.number-figure{width:100%;margin:0}.image-expand{width:100%}}


.hex-pair{display:block;margin:1rem auto;text-align:center}.manual-transform{width:min(720px,100%);height:auto;display:block;margin-inline:auto;background:#0c3c2e}.basic-hex-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-start;margin:1rem 0}.hex-figure{position:relative;width:min(180px,42vw);margin:0}.hex-figure img{width:100%;height:auto;display:block}.hex-figure figcaption{text-align:center;color:#073f35;font-size:.95rem}
.book-evidence{margin-top:1.25rem}.book-evidence-section{margin:1rem 0 1.4rem}.book-evidence-section h3{margin:0 0 .4rem;font-size:1.05rem}.book-evidence-text{white-space:pre-wrap;font:inherit;line-height:1.75;margin:0;overflow-wrap:break-word;word-break:normal}

/* GD64 v1R3R4R3 cinematic reliability */
.cinematic-overlay[hidden]{display:none!important}.cinematic-overlay:not([hidden]){display:grid!important}.cinematic-overlay[data-playback-failed="1"]{opacity:1!important}

/* Website rework: full-width tutorial image and three-part cast board. */
.how-number-layout{display:flex;flex-direction:column;width:min(1120px,calc(100% - 1.5rem));max-width:1120px;margin-inline:auto;gap:1rem}
.number-figure,.image-expand{width:100%;max-width:100%;margin:0}
.number-figure img,.image-expand img,.image-lightbox img{width:100%;max-width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.cast-result[hidden],.cast-board-live[hidden]{display:none!important}
.cast-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}
.cast-panel{min-width:0;border:1px solid var(--line);background:#fffaf0;padding:1rem;overflow-wrap:break-word;word-break:normal}
.cast-panel-moving{grid-column:1 / span 2;grid-row:1;max-width:44rem;margin-inline:auto;width:100%;text-align:center}
.cast-panel-moving .book-evidence-text{text-align:left}
.cast-panel-base{grid-column:1;grid-row:2}
.cast-panel-changed{grid-column:2;grid-row:2}
.cast-chart{width:min(100%,280px);height:auto;display:block;margin-inline:auto}
.cast-panel h2,.cast-panel h3{margin:.2rem 0 .4rem;font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.25}/*G2-F2:ENtitles26-30px*/.cast-panel-base h2,.cast-panel-changed h2,.cast-panel-moving h2{min-height:2.6em;display:flex;align-items:center;justify-content:center}
.book-evidence-text{overflow-wrap:break-word;word-break:normal}
.book-evidence-figure{display:block;font-size:.9em;opacity:.75;font-style:italic}
.book-evidence-errata{color:#7a5c00;background:#fff8e1;border-left:3px solid #d4a017;padding:.5em .75em;margin:.5em 0;font-size:.92em;line-height:1.6;overflow-wrap:break-word}
@media(max-width:800px){
  .cast-grid{grid-template-columns:minmax(0,1fr)}
  .cast-panel-moving{grid-column:1;grid-row:1;max-width:none}
  .cast-panel-base{grid-column:1;grid-row:2}
  .cast-panel-changed{grid-column:1;grid-row:3}
  .how-number-layout,.number-figure{width:100%;max-width:100%;margin-left:0}
}

.manual-cast-row{display:flex;flex-direction:column;align-items:center;gap:.7rem;margin:1.2rem 0 1.6rem}
.manual-cast-row .form-help{margin:0;text-align:center}
button[data-manual-cast].cast-primary{display:inline-flex;align-items:center;justify-content:center;min-width:220px;min-height:60px;padding:.8rem 2rem;background:#0c3c2e;color:#c9a959;border:2px solid #c9a959;border-radius:8px;font-size:1.35rem;font-weight:700;letter-spacing:.12em;cursor:pointer;box-shadow:0 2px 8px rgba(12,60,46,.35);transition:background .15s,color .15s,box-shadow .15s,transform .1s}
button[data-manual-cast].cast-primary:hover{background:#14503c;color:#e3c878;box-shadow:0 4px 14px rgba(12,60,46,.45)}
button[data-manual-cast].cast-primary:focus-visible{outline:3px solid #c9a959;outline-offset:3px}
button[data-manual-cast].cast-primary:active{background:#082a20;transform:translateY(1px)}
button[data-manual-cast].cast-primary:disabled{background:#5a6b64;color:#b9b3a4;border-color:#8a8474;cursor:not-allowed;box-shadow:none}
@media (max-width:640px){button[data-manual-cast].cast-primary{width:100%;min-height:56px;font-size:1.25rem}}

/* B3: EN 1893 blue key terms + non-blocking gloss sidebar */
.en-gloss-layout{display:block}
.en-evidence-main{min-width:0}
.en-term{color:#1a5fb4;font-weight:600;text-decoration:underline dotted;text-underline-offset:2px;cursor:help;border-radius:3px}
.en-term:hover,.en-term:focus-visible{background:rgba(26,95,180,.12);outline:2px solid rgba(26,95,180,.55);outline-offset:2px}
.en-gloss-sidebar{position:fixed;top:22%;right:max(1.5rem,calc((100vw - 1280px)/2));width:280px;max-width:280px;max-height:62vh;overflow-y:auto;padding:.9rem 1rem;background:#f4f7fb;border:1px solid #c8d6e8;border-left:4px solid #1a5fb4;border-radius:6px;font-size:.92rem;line-height:1.65;color:#243447;z-index:60;box-shadow:0 8px 24px rgba(26,95,180,.15)}
.en-gloss-sidebar[hidden]{display:none}
.en-gloss-sidebar .gloss-term{font-weight:700;color:#1a5fb4;margin-bottom:.3rem}
.en-gloss-sidebar .gloss-close{float:right;border:1px solid #9db4d4;background:#fff;border-radius:4px;font-size:.8rem;padding:.1rem .5rem;cursor:pointer;color:#1a5fb4}
@media (max-width:900px){.en-gloss-layout{grid-template-columns:minmax(0,1fr)}.en-gloss-sidebar{position:static;max-width:none;margin-top:.8rem}}

/* JA 1886 (mirrors EN gloss rules; F3 lesson: never squeeze body text with grid) */
.ja-gloss-layout{display:block}
.ja-term{color:#1a5fb4;font-weight:600;text-decoration:underline dotted;text-underline-offset:2px;cursor:help;border-radius:3px}
.ja-term:hover,.ja-term:focus-visible{background:rgba(26,95,180,.12);outline:2px solid rgba(26,95,180,.55);outline-offset:2px}
ruby.ja-term{ruby-position:over}
ruby.ja-term rt{font-size:.6em}
@media (hover:hover){ruby.ja-term:hover rt,ruby.ja-term:focus rt{visibility:visible}}
ruby.ja-term.ruby-visible rt{visibility:visible}
/* J6: touch bottom kana card — fixed, full-width, always fully in viewport.
   Only shown on tap (JS); default hidden. Never overlaps the tapped text. */
.ja-ruby-card{position:fixed;left:0;right:0;bottom:0;z-index:80;padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom));background:#f4f7fb;border-top:3px solid #1a5fb4;box-shadow:0 -4px 24px rgba(26,95,180,.25);font-size:1rem;line-height:1.5;color:#243447}
.ja-ruby-card[hidden]{display:none}
.ja-ruby-card-term{font-weight:700;color:#1a5fb4;font-size:1.15rem}
.ja-ruby-card-reading{font-size:1.1rem}
.ja-ruby-card-close{float:right;border:1px solid #9db4d4;background:#fff;border-radius:4px;font-size:.85rem;padding:.15rem .55rem;cursor:pointer;color:#1a5fb4}
.ja-toc{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0}
.ja-toc a{display:inline-block;padding:.35rem .7rem;border:1px solid #c8d6e8;border-radius:999px;background:#fff;color:#243447;text-decoration:none;font-size:.92rem}
.ja-toc a:hover,.ja-toc a:focus-visible{border-color:#1a5fb4;color:#1a5fb4}
.ja-hexagram{margin:2.5rem 0;padding-top:1.5rem;border-top:2px solid #d6d3d1}
.ja-hexagram h2{font-size:1.5rem;line-height:1.4}
.ja-provenance-line{font-size:.85rem;color:#57534e;margin:.4rem 0 1rem}
.ja-yao-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}
.ja-yao-nav a{display:inline-block;padding:.25rem .6rem;border:1px solid #c8d6e8;border-radius:4px;background:#fff;color:#1a5fb4;text-decoration:none;font-size:.9rem}
.ja-yao-nav .ja-yao-unlocated{display:inline-block;padding:.25rem .6rem;border:1px dashed #b8b8b8;border-radius:4px;color:#78716c;font-size:.9rem}
.ja-evidence-text{white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;line-height:1.85;font-size:1.02rem;margin:0;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif}
.ja-yao-anchor{scroll-margin-top:1rem}
.ja-collation{border:1px solid #b45309;background:#fffbeb;border-radius:6px;padding:.7rem 1rem;margin:0 0 1rem;font-size:.92rem;line-height:1.65;color:#451a03}
.ja-collation p{margin:0}
/* GD64 PDF evidence links (USER spec 2026-10-21):
   - Position: directly below the green hexagram image, above the card title.
   - Color: copper-gold #A47A25, hover/focus #9A6A18, thin underline.
   - This color is reserved for PDF evidence links only; blue stays with
     modern-term glosses, red/copper circle stays with the moving line. */
.pdf-evidence-link {
  display: inline-block;
  margin: 0.35rem 0 0.2rem;
  color: #A47A25;
  font-size: 1.09rem;
  font-weight: 700;
  line-height: 1.45;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.pdf-evidence-link:hover,
.pdf-evidence-link:focus-visible {
  color: #9A6A18;
}
.pdf-evidence-link[hidden] {
  display: none;
}

/* R02 (USER review 2026-10-22): JA/EN evidence card titles centered --
   hexagram name + code as one centered title block; scoped to ja/en. */
.book-evidence[data-evidence-locale="ja"] .book-evidence-section h3,
.book-evidence[data-evidence-locale="en"] .book-evidence-section h3{text-align:center}
