:root{color-scheme:dark;--bg:#0a0a0a;--panel:#0d0d0d;--panel-2:#111;--text:#e7e7e7;--muted:#9a9a9a;--line:#2b2b2b;--line-strong:#404040;--hover:#171717;--overlay:rgba(0,0,0,.72);--warn:#c8c8c8}*{box-sizing:border-box}body,html{margin:0;padding:0;background:radial-gradient(circle at top,#121212 0,#090909 60%);color:var(--text);font-family:JetBrains Mono,Fira Code,Menlo,Consolas,monospace}a,button,input{font:inherit;color:inherit}.shell{min-height:100vh;display:grid;place-items:center;padding:28px 16px}.page{width:100%;max-width:1140px}.card{border:1px solid var(--line);background:var(--panel);box-shadow:0 24px 64px rgba(0,0,0,.45);padding:24px}.header h1{margin:0;font-size:28px;letter-spacing:.4px}.prompt{margin:0 0 8px}.prompt,.sub{color:var(--muted);font-size:13px}.sub{margin:8px 0 0}.wish-grid{margin-top:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.wish-card{border:1px solid var(--line);background:var(--panel-2);padding:14px;min-height:205px;display:flex;flex-direction:column;justify-content:space-between;gap:12px;cursor:pointer;transition:border-color .15s ease,transform .15s ease}.wish-card:hover{border-color:var(--line-strong)}.wish-card--reserved{opacity:.66}.wish-card h2{margin:0;font-size:16px;line-height:1.35}.wish-card p{margin:8px 0 0;color:var(--muted);font-size:14px}.wish-thumb{border:1px solid var(--line);background:#0a0a0a;aspect-ratio:4/3;overflow:hidden}.wish-thumb img{width:100%;height:100%;object-fit:cover;display:block}.wish-card__bottom{display:flex;gap:8px;align-items:flex-end;justify-content:space-between}.btn{border:1px solid var(--line);background:transparent;text-decoration:none;padding:8px 10px;cursor:pointer;transition:background .12s ease,border-color .12s ease;font-size:13px}.btn:hover:enabled{background:var(--hover);border-color:var(--line-strong)}.btn:disabled{opacity:.65;cursor:not-allowed}.reserved-mark{border:1px solid var(--line-strong);padding:6px 8px;display:grid;grid-gap:2px;gap:2px;font-size:11px;max-width:100%}.reserved-mark span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay{position:fixed;inset:0;background:var(--overlay);display:grid;place-items:center;padding:16px;z-index:10}.modal{width:min(680px,100%);max-height:90vh;overflow:auto;border:1px solid var(--line);background:#0e0e0e;padding:16px;position:relative}.modal h3{margin:0 32px 12px 0;font-size:18px}.modal-image{border:1px solid var(--line);margin-bottom:12px;overflow:hidden;background:#0a0a0a}.modal img,.modal-image{width:100%;max-height:360px}.modal img{height:100%;object-fit:contain;display:block}.modal p{margin:0;color:var(--text);font-size:14px}.modal-close{position:absolute;top:12px;right:12px;border:1px solid var(--line);background:transparent;width:28px;height:28px;cursor:pointer}.reserve-modal{width:min(520px,100%)}.modal .reserve-title{color:var(--muted);margin:0 0 10px}.reserve-form{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px}.confirm-form{display:flex;gap:8px;justify-content:flex-end}.reserve-form input{border:1px solid var(--line);background:#0b0b0b;padding:8px 10px;outline:none}.reserve-form input:focus{border-color:var(--line-strong)}.form-message{margin-top:12px;border:1px solid var(--line);padding:8px;font-size:13px}.form-message--error{border-color:#5a3a3a;color:#f1c9c9}.form-message--warning{border-color:#595237;color:#f1e7bb}.form-message--info,.form-message--success{border-color:var(--line-strong);color:var(--warn)}@media (max-width:960px){.wish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.card{padding:16px}.wish-grid{grid-template-columns:1fr}.wish-card{min-height:172px}.reserve-form{grid-template-columns:1fr}.header h1{font-size:24px}}