@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/pixelify-sans.woff2) format("woff2")}:root{--sky: #000030;--ink: #000000;--paper: #FFFFFF;--font-display: "Pixelify Sans", "Chicago", sans-serif;--font-body: Geneva, Verdana, "Lucida Grande", "DejaVu Sans", sans-serif;--shadow: 2px 2px 0 var(--ink);--gutter: 12px}*{box-sizing:border-box}html{background:var(--sky)}body{margin:0;padding:24px 12px 40px;font:15px/1.5 var(--font-body);color:var(--ink)}.page{max-width:800px;margin:0 auto;display:grid;gap:20px}a{color:var(--ink)}a:focus-visible,button:focus-visible{outline:2px dotted var(--ink);outline-offset:2px}::selection{background:var(--ink);color:var(--paper)}.window{background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow)}.titlebar{position:relative;height:26px;margin:0;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--ink);font:700 18px/1 var(--font-display)}.titlebar:before{content:"";position:absolute;inset:5px 3px;background:repeating-linear-gradient(180deg,var(--ink) 0 1px,transparent 1px 3px)}.titlebar:after{content:"";position:absolute;left:9px;top:6px;width:13px;height:13px;border:1px solid var(--ink);background:var(--paper)}.titlebar>span{position:relative;padding:0 10px;background:var(--paper)}.window-body{padding:14px}.about{padding:16px 18px}.about p{margin:0 0 12px}.about p:last-child{margin-bottom:0}@media(max-width:520px){.about{font-size:14px}}.desk{position:relative;height:420px;overflow:hidden;touch-action:none;border:1px solid var(--ink);background:var(--paper);background-image:linear-gradient(45deg,var(--ink) 25%,transparent 25%,transparent 75%,var(--ink) 75%),linear-gradient(45deg,var(--ink) 25%,transparent 25%,transparent 75%,var(--ink) 75%);background-size:2px 2px;background-position:0 0,1px 1px}.desk .print{position:absolute;left:min(var(--left),68%);top:min(var(--top),58%);width:30%;margin:0;padding:8px 8px 26px;background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow);cursor:grab;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;text-align:left;font:inherit}.desk .print.portrait{width:22%}.desk .print:active{cursor:grabbing;box-shadow:4px 4px 0 var(--ink)}.desk .print img{display:block;width:100%;height:auto;pointer-events:none}.desk .print .print-date{position:absolute;left:10px;bottom:5px;font-size:12px;color:#555}.desk-hint{margin:8px 0 0;font-size:12px}@media(max-width:640px){.desk{height:360px}.desk .print{width:46%;left:min(var(--left),52%);top:min(var(--top),52%);padding:5px 5px 20px}.desk .print.portrait{width:34%;left:min(var(--left),64%)}.desk .print .print-date{font-size:10px;bottom:3px;left:6px}}.album .row{display:flex;gap:var(--gutter);margin-top:var(--gutter)}.album .row:first-child{margin-top:0}.album .cell{flex:var(--ar) 1 0;min-width:0;display:block}.album .cell img{display:block;width:100%;height:auto;border:1px solid var(--ink)}.album .cell:hover img{box-shadow:var(--shadow)}.footer{text-align:center;font-size:12px;color:#ffffffbf;text-shadow:0 0 4px var(--sky)}.sky{position:fixed;inset:0;z-index:-1}.sky-caption{position:fixed;right:16px;bottom:12px;max-width:calc((100vw - 800px)/2 - 36px);font-size:11px;line-height:1.6;color:#ffffffa6;text-align:right;text-shadow:0 0 6px var(--sky),0 0 2px var(--sky)}@media(max-width:1299px){.sky-caption{position:static;max-width:none;text-align:center;padding:14px 8px 0}}.gauge-inert{pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .3s ease}.gauge-hidden{opacity:0}.gauge{--gauge-w: min(320px, calc((100vw - 800px)/2 - 56px) );--gauge-h: min(62vh, calc((var(--gauge-w) - 112px) * 3));--building-w: calc(var(--gauge-h) / 3);--label-w: calc(var(--gauge-w) - var(--building-w) - 8px);position:fixed;right:30px;top:50%;transform:translateY(-50%);width:var(--gauge-w);height:var(--gauge-h)}.gauge svg{position:absolute;right:0;top:0;height:100%;width:auto;overflow:visible}.gauge-tick{position:absolute;left:0;right:calc(var(--building-w) + 8px);height:0;font-size:10px;line-height:1.2;color:#ffffffb3}.gauge-tick:before{content:"";position:absolute;right:0;top:0;width:64px;border-top:1px dotted rgba(255,255,255,.5)}.gauge-tick>span{position:absolute;right:0;top:2px;max-width:100%;text-align:right}.gauge-tick small{display:block;font-size:10px}.gauge-marker{position:absolute;left:-10px;right:-6px;height:0;border-top:2px solid var(--paper);transition:top .45s ease}.gauge-marker.unknown{border-top-style:dotted}.gauge-label{position:absolute;right:calc(var(--building-w) + 8px);top:6px;width:max-content;max-width:var(--label-w);text-align:right;background:var(--paper);color:var(--ink);border:1px solid var(--ink);padding:3px 6px;font-size:11px;line-height:1.3;box-shadow:var(--shadow)}.gauge .beacon{animation:beacon 1.4s steps(2,start) infinite}@keyframes beacon{50%{opacity:0}}@media(max-width:1299px){.gauge{display:none}}.gauge-slim{position:fixed;right:0;top:12px;height:calc(100vh - 46px);height:calc(100svh - 46px);width:0;z-index:5}.gauge-slim .gauge-marker{left:auto;right:0;width:0;border-top:0;transition:top .12s linear}.gauge-slim .gauge-label{right:0;top:0;max-width:none;white-space:nowrap;font-size:11px;padding:2px 7px;border-right:0;box-shadow:none}@media(min-width:1300px){.gauge-slim{display:none}}@media(prefers-reduced-motion:reduce){.gauge-marker,.gauge-inert{transition:none}.gauge .beacon{animation:none}}.win-overlay{position:fixed;inset:0;z-index:10;background:#000030d1;display:flex;align-items:center;justify-content:center;padding:14px}.win{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow);max-width:100%}.win-title{position:relative;display:flex;align-items:center;height:26px;min-width:0;padding:0 4px;border-bottom:1px solid var(--ink);font:700 18px/1 var(--font-display);white-space:nowrap}.win-title:before{content:"";position:absolute;inset:5px 3px;background:repeating-linear-gradient(180deg,var(--ink) 0 1px,transparent 1px 3px)}.win-title>span{position:relative;margin:0 auto;padding:0 10px;background:var(--paper);overflow:hidden;text-overflow:ellipsis}.win-x{position:relative;flex:none;width:15px;height:15px;margin-left:5px;padding:0;background:var(--paper);border:1px solid var(--ink);cursor:pointer}.win-x:hover{background:repeating-linear-gradient(45deg,var(--ink) 0 1px,transparent 1px 3px)}.win-x:active{background:var(--ink)}.win-body{background:var(--ink);display:flex;align-items:center;justify-content:center}.win-body img{display:block;width:auto;height:auto;max-width:calc(100vw - 32px);max-height:calc(100vh - 112px);max-height:calc(100svh - 112px)}.win-status{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:6px 8px;border-top:1px solid var(--ink);font-size:13px;white-space:nowrap}.win-status .win-extra{flex:1;text-align:center}.btn-row{display:flex;gap:8px}.btn{font:inherit;font-size:13px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);border-radius:6px;padding:2px 12px;cursor:pointer}.btn:active{background:var(--ink);color:var(--paper)}@media(max-width:520px){.win-dims{display:none}}.postcard{z-index:11}.postcard .win{width:min(680px,calc(100vw - 28px))}.postcard-body{background:var(--paper);display:block;padding:12px 12px 10px}.postcard-card{position:relative;width:100%;aspect-ratio:3 / 2;cursor:pointer;perspective:1400px}.postcard-card canvas{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;transition:transform .6s ease;border:1px solid var(--ink);box-shadow:var(--shadow)}.postcard-card canvas.back{transform:rotateY(180deg)}.postcard-card.flipped canvas.front{transform:rotateY(180deg)}.postcard-card.flipped canvas.back{transform:rotateY(0)}.postcard-hint{display:block;font-size:12px;margin:12px 2px 4px}.postcard textarea{width:100%;box-sizing:border-box;height:64px;font:14px/1.4 var(--font-body);padding:4px 6px;border:1px solid var(--ink);background:var(--paper);resize:vertical}.postcard-buttons{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}@media(prefers-reduced-motion:reduce){.postcard-card canvas{transition:none}}
