:root{--paper: #e7ead7;--paper-2: #dde3c9;--card: #f4f4e7;--ink: #1f2a22;--ink-soft: #5f6b58;--line: #cbd2b4;--grid: #d8dec0;--red: #b2462f;--red-deep: #8c3424;--bronze: #b07a34;--green: #2f7d4f;--green-deep: #1f5d39;--gold: #ca9a32;--shadow: #1f2a22;--r: 10px;--bw: 2.5px;--hard: 5px 5px 0 var(--shadow);--hard-sm: 3px 3px 0 var(--shadow);--serif: "Fraunces", "Noto Serif SC", Georgia, serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--mono);font-size:14px;line-height:1.6;background-color:var(--paper);background-image:repeating-linear-gradient(0deg,var(--line) 0 1px,transparent 1px 24px),repeating-linear-gradient(60deg,var(--line) 0 1px,transparent 1px 24px),repeating-linear-gradient(120deg,var(--line) 0 1px,transparent 1px 24px);background-attachment:fixed}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:-.01em}.wrap{max-width:1060px;margin:0 auto;padding:0 20px 80px}.row{display:flex;gap:14px;align-items:center}.row.wrap-row{flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:14px}.grow{flex:1}.muted{color:var(--ink-soft)}.mono{font-family:var(--mono)}.serif{font-family:var(--serif)}.center{text-align:center}.nav{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:var(--bw) solid var(--ink)}.nav-inner{max-width:1060px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:9px}.brand-words{display:flex;flex-direction:column;line-height:1.02}.brand .logo{font-family:var(--serif);font-weight:900;font-size:26px;letter-spacing:-.02em;color:var(--ink)}.brand .logo .a{color:var(--green)}.brand .tag{font-size:11px;color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase;margin-top:2px}.by-cubic{font-size:11px;color:var(--ink-soft);letter-spacing:.04em;text-decoration:none;align-self:center;margin-left:2px;white-space:nowrap;transition:color .15s}.by-cubic b{color:var(--green);font-weight:800}.by-cubic:hover{color:var(--green)}.nav .tabs{display:flex;gap:6px;margin:0 auto}.tab{font-family:var(--mono);font-size:14px;font-weight:500;padding:7px 16px;border:var(--bw) solid transparent;border-radius:var(--r);color:var(--ink);cursor:pointer;background:transparent}.tab:hover{background:var(--paper-2);text-decoration:none}.tab.active{background:var(--green);color:#fff;border-color:var(--ink);box-shadow:var(--hard-sm)}.lang-select{font-family:var(--mono);font-size:12px;padding:5px 6px;border:2px solid var(--ink);border-radius:8px;background:var(--card);color:var(--ink);cursor:pointer}.card{background:var(--card);border:var(--bw) solid var(--ink);border-radius:var(--r);box-shadow:var(--hard);padding:20px}.card.flat{box-shadow:none}.card.accent{border-color:var(--green);box-shadow:5px 5px 0 var(--green-deep)}.card-title{font-family:var(--serif);font-size:20px;font-weight:600;margin-bottom:14px}.panel-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.btn{font-family:var(--mono);font-size:14px;font-weight:700;padding:9px 18px;border:var(--bw) solid var(--ink);border-radius:var(--r);background:var(--card);color:var(--ink);cursor:pointer;box-shadow:var(--hard-sm);transition:transform .06s ease,box-shadow .06s ease}.btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--shadow)}.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--shadow)}.btn.primary,.btn.go{background:var(--green);color:#fff}.btn.ghost{box-shadow:none}.btn.sm{padding:5px 12px;font-size:12px;box-shadow:var(--hard-sm)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:var(--hard-sm)}.input,textarea.input{font-family:var(--mono);font-size:14px;padding:9px 12px;border:var(--bw) solid var(--ink);border-radius:var(--r);background:#fffdf6;color:var(--ink);width:100%}.input:focus,textarea.input:focus{outline:none;box-shadow:var(--hard-sm)}textarea.input{line-height:1.5;resize:vertical}label.field{display:block}label.field .panel-label{display:block;margin-bottom:5px}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;font-weight:700;padding:3px 10px;border:2px solid var(--ink);border-radius:999px;background:#fff}.tier{display:inline-flex;align-items:center;gap:7px;font-family:var(--serif);font-weight:600;font-size:15px;padding:4px 12px 4px 10px;border:2px solid var(--ink);border-radius:var(--r);background:linear-gradient(180deg,#fff7e6,#f3e2bd)}.tier .shield{width:16px;height:16px;display:inline-block}.tier.t-bronze{background:linear-gradient(180deg,#f6e6cf,#e6c597)}.tier.t-silver{background:linear-gradient(180deg,#f3f3f3,#d6d6d6)}.tier.t-gold{background:linear-gradient(180deg,#fbeeb6,#ecc94b)}.tier.t-platinum{background:linear-gradient(180deg,#e7f3f3,#bfe0df)}.tier.t-diamond{background:linear-gradient(180deg,#e3eefc,#b9d4f4)}.tier.t-king{background:linear-gradient(180deg,#f6dede,#e7a3a0)}.prov{font-size:11px;color:var(--bronze);font-weight:700}.statline{display:flex;justify-content:space-between;align-items:center;padding:11px 2px;border-top:1.5px dashed var(--line)}.statline:first-child{border-top:none}.statline .k{color:var(--ink-soft)}.statline .v{font-weight:700;font-size:16px}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding:8px 12px}.tbl td{padding:12px;border-top:2px solid var(--line);vertical-align:middle}.tbl tr:hover td{background:#fffdf3}.pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1.5px solid var(--line);color:var(--ink-soft)}.kbd{font-family:var(--mono);background:#fffdf6;border:1.5px solid var(--line);border-radius:6px;padding:2px 7px}.divider{height:2px;background:var(--line);border:none;margin:22px 0}.hero-rule{height:var(--bw);background:var(--ink);margin:6px 0 24px}.snek{color:var(--green-deep)}.danger{color:var(--red)}.win{color:var(--green-deep);font-weight:700}.lose{color:var(--red);font-weight:700}.empty{text-align:center;padding:48px 20px;color:var(--ink-soft)}.empty .big{font-family:var(--serif);font-size:22px;color:var(--ink);margin-bottom:6px}.code-area{min-height:280px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px}.two-col{display:grid;grid-template-columns:320px 1fr;gap:22px;align-items:start}.two-col>*{min-width:0}.tbl-wrap{padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 820px){.two-col{grid-template-columns:1fr}.nav .tabs{margin:0}}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:100;background:var(--ink);color:var(--paper);padding:11px 18px;border-radius:var(--r);box-shadow:var(--hard);font-weight:500}.fade-in{animation:fade .4s ease both}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a26208c;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;animation:fade .2s ease both}.modal{background:var(--card);border:var(--bw) solid var(--ink);border-radius:var(--r);box-shadow:8px 8px 0 var(--shadow);padding:24px;max-width:560px;width:100%;max-height:90vh;overflow:auto}code.inline{font-family:var(--mono);background:#fffdf6;border:1.5px solid var(--line);padding:1px 6px;border-radius:5px}.rules{border-top:1.5px dashed var(--line);padding-top:10px}.rules summary{list-style:none;color:var(--green-deep);-webkit-user-select:none;user-select:none}.rules summary::-webkit-details-marker{display:none}.rules li{margin:2px 0}@media (max-width: 640px){.wrap{padding:18px 12px 60px}body{background-attachment:scroll}.nav-inner{flex-wrap:wrap;padding:10px 12px;gap:8px}.brand{margin-right:auto}.brand .logo{font-size:19px}.brand .tag{display:none}.nav .tabs{order:3;flex-basis:100%;margin:4px 0 0;gap:6px}.tab{flex:1;text-align:center;padding:8px 6px;font-size:13px}h1{font-size:26px!important}.card{padding:15px}.card-title{font-size:18px}.two-col{gap:16px}.grid-cards{gap:14px}.spread{flex-wrap:wrap;gap:8px}.tbl{font-size:13px;min-width:540px}.tbl th,.tbl td{padding:9px 8px}.modal{padding:18px}.modal-backdrop{padding:12px}.toast{left:12px;right:12px;transform:none;text-align:center}.code-area{min-height:200px}}
