/* The opening poster and canvas share a fixed box, independent of DOM layout. */
.xw-page{background:#17130e;color:#f0e6cf;--ink:#283628;--paper:#f6eedc}
.xw-page .play-main,.xw-page>.issue-nav,.xw-page>.simple-footer{position:relative;z-index:1}
.xw-page .play-main{max-width:1240px;padding:40px 24px 80px}
.xw-page .game-page-head p,.xw-page .back-link{color:#dacbac;font-size:16px}
.xw-page .game-page-head h1{color:#f0e6cf}
.xw-page .simple-footer{background:#17130e;color:#f0e6cf}
.xw-ledger{padding:24px;background:#f6eedc;color:#283628;border:1px solid #bba575;box-shadow:0 0 0 3px #514124,0 0 0 5px #b59a60,0 18px 60px #0008;scroll-margin-top:24px}
.xw-body{display:grid;grid-template-columns:auto minmax(0,1fr);gap:32px;align-items:start}
.xw-page .xw-wrap{padding:0;overflow:visible}
.xw-page .xw-grid{--cell:36px;grid-template-columns:repeat(11,var(--cell))!important;grid-template-rows:repeat(20,var(--cell))!important;min-height:739px;gap:1px;background:#8c8065;border:1px solid #8c8065}
.xw-page .xw-cell{width:var(--cell);height:var(--cell)}
.xw-page .xw-cell.block{visibility:visible;background:#30382d}
.xw-page .xw-cell input{font-size:18px;border:0;border-radius:0;background:#fff9e9;color:#253126;caret-color:#253126}
.xw-page .xw-cell input.correct{background:#c9e8c9}
.xw-page .xw-cell input.wrong{background:#f5c9c9}
.xw-page .xw-cell.inword input{background:#e9d8a7}
.xw-page .xw-cell input:focus{outline:3px solid #755daf;outline-offset:-3px;background:#fff9e9}
.xw-page .xw-num{font:9px Arial,sans-serif;top:2px;left:2px}
.xw-page .xw-clues{display:block;margin:0;font-family:Georgia,serif}
.xw-page .xw-clues h3{font:24px Georgia,serif;border-bottom:1px solid #a39370;padding-bottom:10px;margin:0 0 16px}
.xw-page .xw-clues>div+div{margin-top:28px}
.xw-page .xw-clues li{font-size:17px;min-height:44px;padding:8px 4px;border-color:#9b8d6940}
.xw-page .xw-clues ol{gap:4px}
.xw-page .status-bar{margin:0 0 24px;padding:12px;background:#e9dec2;border:1px solid #bba575;border-radius:2px;font-size:16px;scroll-margin-top:24px;gap:12px}
.xw-page .status-bar button{min-height:44px;font-size:16px;border-radius:3px;background:#283e30;color:#fff5df}
.xw-page .win-banner{grid-column:1;grid-row:2}
.xw-page .xw-clues{grid-column:2;grid-row:1/span 2}
#xw-gallery{display:none}
.xw-pending #xw-gallery,.xw-webgl #xw-gallery{display:block;position:fixed;inset:0;z-index:10;overflow:hidden;background:#080705}
#xw-gallery .hr-canvas,#xw-gallery-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#xw-gallery-poster img{width:100%;height:100%;object-fit:cover}
#xw-gallery .hr-canvas{opacity:0;pointer-events:none}
.xw-gallery-ready #xw-gallery .hr-canvas{opacity:1}
.xw-gallery-heading{position:absolute;left:32px;top:24px;color:#eee4cf;pointer-events:none;z-index:2}
.xw-gallery-heading p{font:12px Arial,sans-serif;letter-spacing:.12em;margin:12px 0}
#xw-gallery-title{font:28px Georgia,serif;letter-spacing:0;margin:0}
#xw-gallery-play{position:absolute;bottom:24px;left:32px;min-width:96px;min-height:48px;padding:10px 24px;border:1px solid #b69a62;border-radius:3px;background:#18150eee;color:#f4e8ce;font:18px Georgia,serif;cursor:pointer;z-index:2}
#xw-gallery-play:focus-visible{outline:3px solid #b5a2ff;outline-offset:4px}
.xw-pending .xw-page>.issue-nav,.xw-pending .xw-page>.play-main,.xw-pending .xw-page>.simple-footer,.xw-webgl:not(.xw-playing) .xw-page>.issue-nav,.xw-webgl:not(.xw-playing) .xw-page>.play-main,.xw-webgl:not(.xw-playing) .xw-page>.simple-footer{opacity:0}
.xw-playing #xw-gallery{z-index:0;pointer-events:none;filter:blur(8px) brightness(.45)}
.xw-playing .xw-gallery-heading,.xw-playing #xw-gallery-poster,.xw-playing #xw-gallery-play{display:none}
@media(max-width:800px){
  .xw-page .play-main{padding:32px 0 60px}
  .xw-page .back-link,.xw-page .game-page-head{margin-left:20px;margin-right:20px}
  .xw-ledger{padding:18px 9px;box-shadow:none}
  .xw-body{display:block}
  .xw-page .xw-grid{--cell:clamp(30px,calc((100vw - 34px)/11),36px);min-height:calc(20 * var(--cell) + 19px)}
  .xw-page .xw-clues{margin-top:28px;padding:0 10px}
  .xw-page .status-bar{gap:8px;padding:10px;margin-bottom:18px}
  .xw-page #xw-count{flex:1 0 100%}
  .xw-page .status-bar button{flex:1;padding:10px 8px}
  .xw-gallery-heading{left:20px;right:20px;top:20px}
  #xw-gallery-title{font-size:24px}
  .xw-gallery-heading p{font-size:11px;letter-spacing:.08em}
  #xw-gallery-play{left:20px;bottom:20px}
}
@media(prefers-reduced-motion:reduce){
  .xw-pending #xw-gallery{display:none}
  .xw-pending .xw-page>.issue-nav,.xw-pending .xw-page>.play-main,.xw-pending .xw-page>.simple-footer{opacity:1}
}
