/* Reusable frame, button, panel and dialog components. Corners never stretch. */
.nh-frame {position:relative;border:1px solid var(--nh-silver);border-radius:var(--nh-radius);box-shadow:inset 0 0 0 3px var(--nh-black),inset 0 0 0 4px #727b8077;}
.nh-corners {position:absolute;inset:0;pointer-events:none;z-index:2;}
.nh-corner {position:absolute;width:26px;height:26px;color:var(--nh-silver);}
.nh-corner:nth-child(1){top:4px;left:4px;}
.nh-corner:nth-child(2){top:4px;right:4px;transform:rotate(90deg);}
.nh-corner:nth-child(3){bottom:4px;right:4px;transform:rotate(180deg);}
.nh-corner:nth-child(4){bottom:4px;left:4px;transform:rotate(270deg);}
.nh-button,.dialog button:not(.game-card):not(.character-option) {border:1px solid var(--nh-line);border-image:none;border-radius:12px;background:var(--nh-ink);color:var(--nh-paper);min-height:48px;box-shadow:inset 0 1px #ffffff15;text-shadow:none;filter:none;}
.nh-button:focus-visible,.dialog button:focus-visible {outline:2px solid #e1e0f0;outline-offset:3px;}
.nh-button:active {filter:brightness(1.2);}
.nh-panel {background:var(--nh-ink);border:1px solid var(--nh-line);border-radius:12px;}
.overlay {padding:16px;background:#000b;backdrop-filter:blur(4px);}
.dialog {width:100%;max-width:420px;max-height:calc(100% - 16px);padding:24px 20px;color:var(--nh-paper);background:var(--nh-ink);border:1px solid var(--nh-silver);border-image:none;border-radius:20px;box-shadow:inset 0 0 0 4px #080a0b,inset 0 0 0 5px #727b8066,0 16px 60px #000b;text-shadow:none;}
.dialog h2 {font-size:25px;line-height:1.3;background:none;border:0;border-image:none;padding:0;margin:8px 0 16px;min-height:0;text-shadow:none;color:var(--nh-paper);}
.dialog-kicker {color:var(--nh-muted);font-size:12px;letter-spacing:2px;}
.dialog p {font-size:16px;line-height:1.65;text-shadow:none;}
.dialog .close-button {flex:0 0 48px;width:48px;height:48px;padding:0;font-size:26px;}
.dialog .primary {border-color:var(--nh-silver);background:var(--nh-ink);color:var(--nh-paper);}
.dialog input,.dialog select {background:#090c0d;color:var(--nh-paper);border:1px solid var(--nh-line);border-radius:8px;}
@media(prefers-reduced-motion:reduce){.nh-button{transition:none;}}
