﻿/* Optional URL-activated secret. No elements are inserted without a matching key. */
.secret-crack{--crack-scale:.60;position:relative;z-index:1;flex-shrink:0;width:96px;height:96px;padding:0;border:0;background:transparent;touch-action:manipulation;-webkit-tap-highlight-color:transparent;isolation:isolate}
.secret-crack svg{width:100%;height:100%;transform:scale(var(--crack-scale));transition:transform .15s;overflow:visible;filter:drop-shadow(0 0 5px #ff303880)}
.secret-crack path{fill:none;stroke:#ff3038;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;shape-rendering:crispEdges}
.secret-crack[data-stage="12"] path{stroke:#ff3038}
.secret-crack.is-hit{animation:secret-shake .22s steps(2)}
.secret-crack.is-hit:after{content:'';position:absolute;left:calc(50% - 6px);top:calc(50% - 6px);width:12px;height:12px;background:#ffd447;pointer-events:none;animation:secret-flash .2s steps(2) forwards;box-shadow:0 -8px 0 -4px #fff,0 8px 0 -4px #fff,-8px 0 0 -4px #fff,8px 0 0 -4px #fff}
.secret-particle{position:absolute;left:50%;top:50%;width:4px;height:4px;background:#ff3038;pointer-events:none;animation:secret-particle .4s steps(6) forwards}
.secret-window{padding:3px;width:min(430px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto;background:#c0c0c0;color:#111;border:0;border-radius:0;box-shadow:inset 2px 2px #fff,inset -2px -2px #404040,5px 5px 0 #0008;font-family:Tahoma,Arial,sans-serif}
.secret-window::backdrop{background:#080b1480}
.secret-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#000080;color:#fff;padding:4px 5px;font:bold 12px Tahoma,Arial,sans-serif}
.secret-close{background:#c0c0c0;color:#000;border:0;box-shadow:inset 1px 1px #fff,inset -1px -1px #333;min-width:28px;min-height:28px;font:bold 20px monospace;padding:0}
.secret-content{padding:26px 16px 15px;text-align:center}
.secret-file-icon{font:48px monospace;color:#000080;display:block;margin-bottom:18px}
.secret-window h2{font:bold clamp(17px,4.6vw,22px)/1.4 monospace;letter-spacing:0}
.secret-window p{font:13px/1.7 Tahoma,Arial,sans-serif}
.secret-download{display:inline-block;margin-block:12px;padding:15px 12px;background:#c0c0c0;color:#000;border:1px solid #000;box-shadow:inset 2px 2px #fff,inset -2px -2px #808080;font:bold 12px/1.4 monospace}
.secret-download:active,.secret-close:active{box-shadow:inset 2px 2px #404040,inset -2px -2px #fff}
.secret-window .secret-hint{color:#444;font-size:11px}
.secret-window :focus-visible{outline:2px dotted #000;outline-offset:3px}
@media(hover:hover) and (pointer:fine){.secret-crack{cursor:var(--pickaxe-cursor,crosshair)}}
@keyframes secret-shake{0%,100%{transform:translate(0)}25%{transform:translate(-3px,2px) rotate(-2deg)}50%{transform:translate(3px,-2px) rotate(2deg)}75%{transform:translate(-2px,-1px)}}
@keyframes secret-flash{from{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(2)}}
@keyframes secret-particle{from{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(var(--dx),var(--dy))}}
@media(prefers-reduced-motion:reduce){.secret-crack svg{transition:none}.secret-crack.is-hit,.secret-crack.is-hit:after,.secret-particle{animation:none}.secret-crack.is-hit:after,.secret-particle{display:none}}

.secret-crack.is-unlocked svg{opacity:.65;filter:none}.secret-crack.is-unlocked{border:1px dashed #7c242b;background:#17131680}.secret-crack.is-unlocked:before{content:"▤";position:absolute;inset:0;display:grid;place-items:center;color:#ffd447;font:30px monospace;z-index:1}.secret-crack.is-unlocked svg{transform:scale(.75)}


.secret-crack svg > path:first-child{stroke:#ff555c;stroke-width:4}


.secret-zone{display:flex;justify-content:flex-end;padding:10px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom));min-height:116px}

/* One short tool swing per activation, including touch and keyboard. */
.secret-pickaxe-swing{position:absolute;left:calc(50% - 43.5px);top:calc(50% - 22.5px);width:48px;height:48px;image-rendering:pixelated;pointer-events:none;opacity:0;z-index:3;transform-origin:20% 88%}
.secret-crack.is-hit .secret-pickaxe-swing{animation:secret-pickaxe-strike .3s steps(5) both}
@keyframes secret-pickaxe-strike{0%{opacity:1;transform:rotate(-65deg) translate(-2px,-4px)}45%{opacity:1;transform:rotate(8deg)}65%{opacity:1;transform:rotate(0)}100%{opacity:0;transform:rotate(-18deg) translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.secret-crack.is-hit .secret-pickaxe-swing{animation:none;display:none}}
