/* Namespaced: safe inside the game's modal body or an evidence panel. */
.ipp-shell{--ipp-page-w:440px;--ipp-page-h:474px;--ipp-type:16px;color:#293f31;font-family:var(--sans,IdolSans,'Microsoft YaHei',sans-serif);width:100%;max-width:560px;margin:0 auto;isolation:isolate}
.ipp-shell [hidden]{display:none!important}
.ipp-intro{margin:0 0 16px}.ipp-eyebrow{display:block;font-size:12px;letter-spacing:.12em;color:#907949;margin-bottom:6px}.ipp-intro p{font-size:16px;line-height:1.8;margin:0 0 5px;color:#344d39}.ipp-intro small{display:block;font-size:12px;line-height:1.8;color:#75806a}
.ipp-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:11px;background:#c5cbb4;border:1px solid #a3ad92;box-shadow:inset 0 1px 12px #213b2614;position:relative}
.ipp-piece{position:relative;display:block;min-width:44px;min-height:44px;aspect-ratio:1.36;padding:0;margin:0;border:0;border-radius:0;background:#f1e8d4;color:#273f32;box-shadow:1px 2px 0 #76866b4d;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;outline-offset:2px;transition:box-shadow .12s,opacity .12s;overflow:visible}
.ipp-piece:active{transform:none!important;cursor:grabbing}.ipp-piece:before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 0 1px #b8ab87b3;background:linear-gradient(90deg,#665c3810,transparent 3%,transparent 97%,#665c3810)}
.ipp-piece:after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;border:2px solid transparent}.ipp-piece.ipp-selected:after{border-color:#9a6f2f;box-shadow:0 0 0 2px #d9bb69}.ipp-piece:focus-visible{outline:3px solid #997a31}.ipp-piece.ipp-drop-target:after{border:3px solid #557747;background:#657f5017}.ipp-piece.ipp-lifted{opacity:.3}
.ipp-fragment{position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none;clip-path:polygon(0 0,19% 1%,38% 0,57% 1%,79% 0,100% 1%,99% 22%,100% 40%,99% 61%,100% 82%,99% 100%,77% 99%,55% 100%,34% 99%,15% 100%,0 99%,1% 77%,0 54%,1% 31%)}
.ipp-sheet{position:absolute;display:block;box-sizing:border-box;width:var(--ipp-page-w);height:var(--ipp-page-h);left:calc(var(--ipp-col) * var(--ipp-page-w) / -2);top:calc(var(--ipp-row) * var(--ipp-page-h) / -3);padding:calc(var(--ipp-page-w) * .055) calc(var(--ipp-page-w) * .06);text-align:left;font-family:var(--sans,IdolSans,'Microsoft YaHei',sans-serif);font-size:var(--ipp-type);line-height:1.9;font-weight:400;background-color:#f3ead6;background-image:repeating-linear-gradient(0deg,transparent,transparent 28px,#8a8d6c0d 29px);color:#344235;pointer-events:none;overflow:hidden}
.ipp-letterhead{font-size:.78em;line-height:1.6;letter-spacing:.07em;display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #677a6c70;padding-bottom:.45em;color:#4c6657;white-space:nowrap}.ipp-letterhead span{font-size:.9em;letter-spacing:.015em}.ipp-sheet h3.ipp-paper-title,.ipp-full-paper h3.ipp-paper-title{font-family:var(--serif,IdolSerif,serif);font-size:1.7em;line-height:1.45;letter-spacing:.28em;text-align:center;font-weight:600;color:#294b3c;margin:.55em 0 .35em}
.ipp-paper-rule{height:3px;border-top:1px solid #647b6a;border-bottom:1px solid #647b6a;margin:0 0 .8em}.ipp-sheet p,.ipp-full-paper p{font-size:1em;line-height:1.85;margin:0 0 .8em;color:inherit}.ipp-sheet strong,.ipp-full-paper strong{font-weight:600;border-bottom:1px solid #a26143}.ipp-sheet mark,.ipp-full-paper mark{display:inline;background:#dfc59470;color:#6c3825;font-size:1.14em;font-weight:650;border:1px solid #aa684c;padding:0 .12em;margin:0 .08em;line-height:1.3}.ipp-sheet blockquote,.ipp-full-paper blockquote{font-family:var(--sans,IdolSans,sans-serif);font-size:.93em;line-height:1.8;color:#34647a;margin:.2em 0 0;padding:.65em 0 .5em .7em;border-left:2px solid #5a8192;transform:rotate(-1deg)}
.ipp-paper-footer{position:absolute;bottom:5%;left:6%;right:6%;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#7e806c;font-size:.75em;letter-spacing:.06em}.ipp-paper-footer b{display:inline-block;font-family:var(--serif,IdolSerif,serif);font-weight:500;color:#a16348;border:1px solid #a97359;padding:.28em .55em;transform:rotate(-5deg)}
.ipp-progress{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:7px 13px;margin-top:13px;font-size:12px;line-height:1.75;color:#6c7b5e}.ipp-status{color:#436441}.ipp-moves{white-space:nowrap;color:#8b876a}.ipp-drag-ghost{position:fixed!important;left:0!important;top:0!important;aspect-ratio:auto!important;z-index:10000!important;pointer-events:none!important;opacity:.95!important;box-shadow:0 9px 24px #14271f66!important;will-change:transform;transition:none!important}
.ipp-result{outline:none}.ipp-complete-label{font-size:14px!important;font-weight:600;color:#416b43!important;margin:0 0 13px!important}.ipp-full-paper{position:relative;box-sizing:border-box;padding:25px 27px 65px;background:#f4ecd9;border:1px solid #b9b08f;box-shadow:3px 4px 0 #b6b99c55;min-height:390px;font-size:16px;line-height:1.9;color:#344235;background-image:repeating-linear-gradient(0deg,transparent,transparent 29px,#8a8d6c0c 30px)}.ipp-result-note{font-size:14px!important;line-height:1.85!important;color:#66765a!important;margin:16px 0 0!important;padding-left:13px;border-left:2px solid #9b936b}.ipp-solved .ipp-progress{margin:0 0 10px}.ipp-solved .ipp-moves{display:none}
@media(max-width:500px){.ipp-board{padding:8px;gap:7px}.ipp-piece{aspect-ratio:1.21}.ipp-sheet{padding:calc(var(--ipp-page-w) * .06) calc(var(--ipp-page-w) * .05);font-size:var(--ipp-type)}.ipp-letterhead{letter-spacing:0}.ipp-letterhead span{font-size:.86em}.ipp-sheet h3.ipp-paper-title{font-size:1.65em;margin:.45em 0 .3em}.ipp-sheet p{margin-bottom:.7em}.ipp-full-paper{padding:22px 20px 63px;min-height:390px}.ipp-intro{margin-bottom:13px}.ipp-progress{margin-top:11px}.ipp-intro p{font-size:16px}.ipp-result-note{font-size:14px!important}}
@media(max-height:500px){.ipp-shell{max-width:510px}.ipp-board{max-width:400px;margin:auto}.ipp-piece{aspect-ratio:1.36}.ipp-intro{margin-bottom:12px}.ipp-full-paper{min-height:380px}.ipp-progress{max-width:400px;margin-left:auto;margin-right:auto}}
.ipp-reduced *,.reduced .ipp-shell *{animation:none!important;transition:none!important}.ipp-reduced .ipp-drag-ghost{will-change:auto}
@media(prefers-reduced-motion:reduce){.ipp-shell *,.ipp-drag-ghost{animation:none!important;transition:none!important}}

/* Keep all six pieces visible on a normal desktop: instructions use the
   adjacent space, while the document remains two columns by three rows. */
@media(min-width:900px) and (min-height:700px){
  #modal:has(.ipp-shell:not(.ipp-solved)){width:min(780px,calc(100vw - 48px))}
  #modal:has(.ipp-shell:not(.ipp-solved)) .modal-body{padding:12px 24px}
  .ipp-shell:not(.ipp-solved){display:grid;grid-template-columns:420px minmax(0,1fr);column-gap:24px;align-items:start;max-width:680px}
  .ipp-shell:not(.ipp-solved) .ipp-board{grid-column:1;grid-row:1/3}
  .ipp-shell:not(.ipp-solved) .ipp-intro{grid-column:2;grid-row:1;margin:18px 0 0}
  .ipp-shell:not(.ipp-solved) .ipp-progress{grid-column:2;grid-row:2;align-self:start;display:block;margin:0}
  .ipp-shell:not(.ipp-solved) .ipp-progress span{display:block;margin-bottom:10px}
}
