.ho-page{--font-body:'Satoshi',sans-serif;background:var(--navy-900);font-family:var(--font-body)}
.ho-page button{cursor:pointer;min-height:44px;border:1px solid var(--navy-700);border-radius:var(--radius-md);background:var(--navy-800);padding:var(--space-2) var(--space-4);font:700 var(--text-sm)/1.4 var(--font-body)}
.ho-page button:hover{border-color:var(--gold)}
.ho-page button:disabled{opacity:.45;cursor:default}
.ho-page .ho-primary{background:var(--gold);color:var(--navy-950);border-color:var(--gold)}
.ho-top{max-width:1440px;padding:var(--space-4) var(--space-6);margin:auto;display:flex;align-items:center;gap:var(--space-6);border-bottom:1px solid var(--navy-700)}
.ho-top a{font-size:var(--text-sm);text-decoration:none}
.ho-top a:nth-child(2){margin-left:auto}
.ho-main{max-width:1440px;margin:auto;padding:var(--space-8) var(--space-6) var(--space-10)}
.ho-intro{display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);margin-bottom:var(--space-8)}
.ho-page h1,.ho-page h2{font-family:var(--font-display)}
.ho-page h1{font-size:clamp(2rem,3.5vw,3.2rem);line-height:1.15}
.ho-intro h1{margin-bottom:var(--space-4)}
.ho-intro p{margin-bottom:var(--space-3);color:var(--muted)}
.ho-small{font-size:var(--text-sm);color:var(--muted)}
.ho-badge-card{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5);max-width:370px;min-width:270px;border:1px solid var(--navy-700);border-radius:var(--radius-lg)}
.ho-badge-card h2{font-size:var(--text-xl)}
.ho-badge-card p:last-child{font-size:var(--text-sm);margin:var(--space-2) 0 0}
.ho-medal{--metal:#7a8290;flex:0 0 84px;width:84px;height:84px;border:5px double var(--metal);border-radius:50%;display:grid;place-items:center;color:var(--metal);font:700 32px var(--font-display);box-shadow:inset 0 0 0 5px var(--navy-900);background:var(--navy-800)}
.ho-medal[data-tier=bronze]{--metal:#db9e72}.ho-medal[data-tier=silver]{--metal:#d4dce5}.ho-medal[data-tier=gold]{--metal:#f2c65e}.ho-medal[data-tier=platinum]{--metal:#b4f0ed}
.ho-puzzle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
.ho-puzzle{overflow:hidden;border:1px solid var(--navy-700);border-radius:var(--radius-lg);background:var(--navy-800)}
.ho-puzzle img{width:100%;height:auto;aspect-ratio:1168/784;object-fit:cover;background:var(--navy-750)}
.ho-puzzle-copy{padding:var(--space-5)}
.ho-puzzle h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}
.ho-puzzle p{font-size:var(--text-sm);color:var(--muted)}
.ho-puzzle button{width:100%;margin-top:var(--space-3)}
.ho-puzzle .ho-puzzle-progress{color:var(--gold-light);margin-bottom:0;font-weight:700}
.ho-progression{text-align:center;color:var(--gold-light);font-size:var(--text-sm);margin:var(--space-8) auto}
.ho-progression span{display:block;color:var(--muted);margin-top:var(--space-2)}
.ho-play-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}
.ho-page .ho-text-button{background:transparent;padding:0;border:0;color:var(--muted);font-weight:500}
.ho-play-heading h1{font-size:var(--text-xl)}
.ho-counter{display:grid;grid-template-columns:auto auto;align-items:center;gap:var(--space-2);white-space:nowrap}
.ho-counter strong{font:700 36px var(--font-display);color:var(--gold);font-variant-numeric:tabular-nums}
.ho-counter span{font-size:var(--text-sm);color:var(--muted)}#practice{grid-column:1/-1;text-align:right}
.ho-workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:var(--space-5);align-items:start}
.ho-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}
.ho-toolbar>div{display:flex;align-items:center;gap:var(--space-2)}
.ho-toolbar button{padding-inline:var(--space-3)}
#zoom-label{font-size:var(--text-sm);font-variant-numeric:tabular-nums;min-width:45px;text-align:center}
.ho-board-wrap{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--navy-950);outline:1px solid var(--navy-700)}
#board{width:100%;height:auto;aspect-ratio:1168/784;display:block;touch-action:none;cursor:crosshair}
#board:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;border-radius:0}
.ho-image-error{position:absolute;inset:0;background:var(--navy-800);display:grid;place-content:center;gap:var(--space-3);text-align:center}
.ho-picture-footer{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);color:var(--muted);font-size:var(--text-xs)}
.ho-picture-footer p{margin:0}#performance{font-size:12px;white-space:nowrap;color:var(--faint)}
.ho-feedback{padding:var(--space-3) 0;min-height:50px;color:var(--gold-light);font-size:var(--text-base);margin:0}
.ho-keyboard{font-size:var(--text-sm);color:var(--muted)}.ho-keyboard summary{cursor:pointer;min-height:44px;padding-block:var(--space-2)}
.ho-clues-panel{background:var(--navy-800);border:1px solid var(--navy-700);border-radius:var(--radius-lg);padding:var(--space-4)}
.ho-clue-heading h2{font-size:var(--text-lg)}.ho-clue-heading p{color:var(--muted);font-size:var(--text-xs);margin:var(--space-1) 0 var(--space-4)}
.ho-clues{display:flex;flex-direction:column;gap:0}
.ho-page .ho-clue{position:relative;padding:var(--space-3) var(--space-2);border:0;border-bottom:1px solid var(--navy-700);border-radius:0;background:transparent;text-align:left;display:flex;align-items:center;gap:var(--space-3)}
.ho-clue::before{content:'';width:16px;height:16px;flex:0 0 16px;border:1px solid var(--muted);border-radius:50%}
.ho-clue span{font-size:var(--text-sm);font-weight:500;line-height:1.4}
.ho-clue[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.ho-clue.is-found{color:var(--gold-light)}
.ho-clue.is-found span{text-decoration:line-through;opacity:.7}
.ho-clue.is-found::before{content:'✓';background:var(--gold);border-color:var(--gold);color:var(--navy-950);font-size:12px;line-height:16px;text-align:center}
.ho-save-bar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--navy-700)}
.ho-save-bar p{font-size:var(--text-xs);color:var(--muted);margin:0}
.ho-win{background:var(--navy-800);color:var(--cream);border:1px solid var(--gold-deep);border-radius:var(--radius-xl);padding:var(--space-8);width:min(520px,calc(100% - 32px));text-align:center;max-height:90dvh;overflow:auto;animation:ho-arrive .35s ease-out}
.ho-win::backdrop{background:rgba(0,0,0,.75)}
.ho-win .ho-medal{margin:var(--space-4) auto}
.ho-win h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}
.ho-win p{color:var(--muted)}
.ho-win-actions{display:grid;gap:var(--space-3);margin-top:var(--space-5)}
.ho-page .ho-dialog-close{position:absolute;right:var(--space-2);top:var(--space-2);font-size:24px;background:none;border:0}
@keyframes ho-arrive{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
@media(max-width:1000px){.ho-workspace{grid-template-columns:minmax(0,1fr)}.ho-clues{grid-template-columns:repeat(5,minmax(0,1fr));max-height:none}.ho-intro{align-items:flex-start}.ho-badge-card{min-width:250px}}
@media(max-width:680px){.ho-top{padding:var(--space-3) var(--space-4);gap:var(--space-3)}.ho-top a,.ho-top button{font-size:12px}.ho-top button{padding:var(--space-2)}.ho-main{padding:var(--space-5) var(--space-4)}.ho-intro{display:block}.ho-badge-card{margin-top:var(--space-5);max-width:none}.ho-puzzle-grid{grid-template-columns:1fr}.ho-puzzle{display:grid;grid-template-columns:42% 1fr}.ho-puzzle img{height:100%;object-fit:cover}.ho-puzzle-copy{padding:var(--space-4)}.ho-puzzle h2{font-size:24px}.ho-puzzle-copy>p:not(.ho-puzzle-progress){display:none}.ho-clues{grid-template-columns:repeat(3,minmax(0,1fr))}.ho-toolbar{flex-wrap:wrap}.ho-toolbar button{font-size:12px;padding-inline:var(--space-2)}.ho-picture-footer{flex-wrap:wrap}.ho-play-heading h1{font-size:26px}.ho-counter{display:flex;flex-direction:column;gap:0}.ho-counter strong{font-size:30px}.ho-counter span{font-size:12px}.ho-win{padding:var(--space-8) var(--space-5)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
