:root{--bg: #0f1419;--bg-elevated: #1a222c;--bg-input: #121820;--border: #2a3544;--text: #e8eef4;--text-muted: #8b9aab;--accent: #3d9b7a;--accent-hover: #4cb38e;--danger: #d45d5d;--warn: #c9a227;--radius: 6px;--font: "Segoe UI Variable Text", "Segoe UI", "Noto Sans TC", "Helvetica Neue", sans-serif;--mono: "Cascadia Code", "Consolas", "Sarasa Mono TC", ui-monospace, monospace;--max: 960px}*,*:before,*:after{box-sizing:border-box}html{color-scheme:dark}body{margin:0;min-height:100vh;font-family:var(--font);background:radial-gradient(1200px 600px at 10% -10%,#1a3a32 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#1e2a3a 0%,transparent 50%),var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent-hover);text-decoration:none}a:hover{text-decoration:underline}.site-header{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.site-header__inner{max-width:var(--max);margin:0 auto;padding:.85rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{font-weight:650;letter-spacing:.02em;color:var(--text);text-decoration:none}.brand:hover{text-decoration:none;color:var(--accent-hover)}.nav{display:flex;gap:.75rem;flex-wrap:wrap}.nav a{color:var(--text-muted);padding:.35rem .6rem;border-radius:var(--radius)}.nav a[aria-current=page],.nav a:hover{color:var(--text);background:var(--bg-elevated);text-decoration:none}.main{max-width:var(--max);margin:0 auto;padding:1.75rem 1.25rem 3rem}.page-title{margin:0 0 .35rem;font-size:clamp(1.5rem,4vw,2rem);font-weight:650}.page-lead{margin:0 0 1.5rem;color:var(--text-muted);max-width:40rem}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;align-items:end}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label,.field .label{font-size:.9rem;font-weight:550}.hint{font-size:.8rem;color:var(--text-muted)}.field input[type=text],.field textarea,.toolbar select{font:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .7rem;width:100%}.field textarea{min-height:6rem;resize:vertical}.field input:focus,.field textarea:focus,.toolbar select:focus{outline:2px solid color-mix(in srgb,var(--accent) 60%,transparent);border-color:var(--accent)}.choice-row{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem}.choice-row label{display:flex;align-items:center;gap:.4rem;font-weight:400;cursor:pointer}.field--error input,.field--error textarea{border-color:var(--danger)}.error-text{color:var(--danger);font-size:.85rem}.warn-list{margin:0 0 1rem;padding:.75rem 1rem;border:1px solid color-mix(in srgb,var(--warn) 50%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--warn) 12%,transparent);color:#f0e6b8;font-size:.9rem}.warn-list:empty{display:none}.btn{font:inherit;font-weight:550;border:1px solid transparent;border-radius:var(--radius);padding:.55rem 1rem;cursor:pointer;background:var(--accent);color:#04140f}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn--ghost:hover{border-color:var(--text-muted);background:var(--bg-elevated)}.btn-row{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}.layout-split{display:grid;gap:1.5rem}@media(min-width:840px){.layout-split{grid-template-columns:1fr 1fr;align-items:start}}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);padding:1rem}.panel h2{margin:0 0 .75rem;font-size:1rem;font-weight:600}.preview-block{margin-bottom:1rem}.preview-block pre{margin:0;max-height:22rem;overflow:auto;padding:.75rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--mono);font-size:.75rem;white-space:pre-wrap;word-break:break-word}.game-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.game-card{display:flex;flex-direction:column;gap:.65rem;padding:1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);color:inherit;transition:border-color .15s ease,transform .15s ease}.game-card:hover{border-color:var(--accent);transform:translateY(-1px)}.game-card__link{display:flex;flex-direction:column;gap:.5rem;color:inherit;text-decoration:none;flex:1}.game-card__link:hover{text-decoration:none}.game-card__actions{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.25rem;border-top:1px solid var(--border)}.btn--small{padding:.35rem .7rem;font-size:.85rem}.template-banner{margin:0 0 1.25rem;padding:.75rem 1rem;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text);font-size:.95rem}.btn--magic{background:linear-gradient(120deg,#2f8f72,#3d9b7a 40%,#c9a227);color:#06140f;border:none}.btn--magic:hover:not(:disabled){filter:brightness(1.06)}.magic-drop-lead{margin:0 0 .75rem}.magic-drop-tos{display:flex;align-items:flex-start;gap:.5rem;margin:0 0 .75rem;font-size:.9rem;color:var(--text-muted);cursor:pointer}.magic-drop-tos a{color:var(--accent-hover)}.magic-drop-status{min-height:1.4rem;margin-top:.35rem;font-size:.9rem;color:var(--accent-hover)}.magic-drop-status.is-error{color:var(--danger)}.magic-drop-result{margin-top:.85rem}.magic-drop-card{padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 10%,var(--bg-elevated))}.magic-drop-card p{margin:.35rem 0;word-break:break-all}.magic-drop-claim a{color:#f0e6b8;font-weight:550}.game-card__top{display:flex;align-items:center;gap:.65rem}.game-card__icon{width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:10px;background:#243040;font-size:1.35rem;flex-shrink:0}.game-card__title{margin:0;font-size:1.05rem;font-weight:600}.game-card__meta{margin:0;font-size:.8rem;color:var(--text-muted)}.game-card__desc{margin:0;font-size:.9rem;color:var(--text-muted);flex:1}.tags{display:flex;flex-wrap:wrap;gap:.35rem}.tag{font-size:.72rem;padding:.15rem .45rem;border-radius:999px;border:1px solid var(--border);color:var(--text-muted)}.empty-state{text-align:center;padding:2.5rem 1rem;border:1px dashed var(--border);border-radius:calc(var(--radius) + 2px);color:var(--text-muted)}.empty-state p{margin:0 0 1rem}.copy-status{font-size:.85rem;color:var(--accent-hover);min-height:1.25rem}
