:root{--bg: #0e0c0a;--bg-raised: #181410;--bg-surface: #211c16;--bg-inset: #0a0907;--border: #3a2f22;--border-mid: #503f2c;--gold: #c8a84b;--gold-dim: #8b6f2e;--gold-glow: rgba(200, 168, 75, .15);--text: #ede5d0;--text-dim: #a0917c;--text-faint: #7a6e5c;--red-accent: #8b2c2c;font-family:Crimson Text,Georgia,serif;font-size:19px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100dvh}h1,h2,h3,h4{font-family:Cinzel,Times New Roman,serif;font-weight:600;margin:0}button{font-family:inherit;cursor:pointer;touch-action:manipulation}input,textarea{font-family:inherit;font-size:inherit;color:var(--text);background:var(--bg-inset)}.site-header{padding:1.5rem 1.25rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-raised);text-align:center;position:relative}.site-header:before,.site-header:after{content:"";display:block;height:2px;background:linear-gradient(90deg,transparent,var(--gold-dim),transparent)}.site-header:before{margin-bottom:1rem}.site-header:after{margin-top:1rem}.site-title{font-size:clamp(1.8rem,6vw,2.8rem);letter-spacing:.12em;color:var(--gold);text-shadow:0 0 40px var(--gold-glow)}.site-tagline{margin:.25rem 0 0;font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim)}.site-main{max-width:860px;margin-inline:auto;padding:1.25rem 1rem 3rem}.section-heading{font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.game-list{list-style:none;margin:0 0 1.5rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.game-list-item--user{display:flex;align-items:stretch;gap:.4rem}.game-list-item--user .game-btn{flex:1}.game-edit-btn,.game-delete-btn{padding:.4rem .6rem;font-size:.85rem;opacity:.5}.game-edit-btn:hover{opacity:1;color:var(--gold)}.game-delete-btn:hover{opacity:1;color:var(--red-accent)}.game-btn{display:block;width:100%;padding:.85rem 1rem;text-align:left;font-family:Cinzel,serif;font-size:1rem;letter-spacing:.06em;color:var(--text);background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--gold-dim);transition:border-color .15s,background .15s,color .15s}.game-btn:hover{background:var(--bg-raised);border-color:var(--gold);border-left-color:var(--gold);color:var(--gold)}.custom-game-row{display:flex;align-items:center;gap:.6rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.custom-game-row label{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.text-input{flex:1;padding:.5rem .65rem;border:1px solid var(--border-mid);background:var(--bg-inset)}.text-input:focus{outline:none;border-color:var(--gold-dim)}.session-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.session-game-name{font-family:Cinzel,serif;font-size:1.1rem;letter-spacing:.08em;color:var(--gold)}.loading-text{color:var(--text-dim);font-style:italic;letter-spacing:.06em;margin:.5rem 0}.btn-secondary{padding:.5rem .9rem;font-size:.85rem;letter-spacing:.06em;color:var(--text);background:var(--bg-surface);border:1px solid var(--border-mid);transition:border-color .15s,color .15s}.btn-secondary:hover{border-color:var(--gold-dim);color:var(--gold)}.btn-ghost{padding:.25rem 0;font-size:.8rem;letter-spacing:.06em;color:var(--text-dim);background:none;border:none;transition:color .15s}.btn-ghost:hover{color:var(--text)}.special-rules{margin-bottom:1.25rem;border:1px solid var(--border)}.special-rules-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.6rem .85rem;font-family:Cinzel,serif;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dim);background:var(--bg-raised);border:none;text-align:left;transition:color .15s,background .15s}.special-rules-toggle:hover{color:var(--gold);background:var(--bg-surface)}.special-rules-toggle__caret{font-size:.6rem;color:var(--gold-dim)}.special-rules-list{margin:0;padding:.75rem 1rem .75rem 1.75rem;border-top:1px solid var(--border);background:var(--bg-inset);display:flex;flex-direction:column;gap:.6rem;font-family:Crimson Text,Georgia,serif;font-size:.95rem;line-height:1.55;color:var(--text-dim)}.special-rules-list li{padding-left:.25rem}.module-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.module-btn{padding:.5rem 1rem;font-family:Cinzel,serif;font-size:.8rem;letter-spacing:.08em;color:var(--text-dim);background:var(--bg-surface);border:1px solid var(--border);transition:border-color .15s,color .15s,background .15s}.module-btn:hover{border-color:var(--border-mid);color:var(--text)}.module-btn--active{color:var(--gold);background:var(--bg-raised);border-color:var(--gold-dim);border-bottom:2px solid var(--gold-dim)}.entry-selector{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.entry-btn{padding:.45rem .85rem;font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.08em;color:var(--text-dim);background:var(--bg-surface);border:1px solid var(--border);transition:border-color .15s,color .15s,background .15s}.entry-btn:hover{border-color:var(--border-mid);color:var(--text)}.entry-btn--active{color:var(--gold);background:var(--bg-raised);border-color:var(--gold-dim)}.roll-section h3{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.roll-input-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.roll-input-row label{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.roll-input-row input[type=number]{width:4.5rem;padding:.45rem .5rem;font-family:Cinzel,serif;font-size:1.5rem;font-weight:700;text-align:center;border:1px solid var(--border-mid);background:var(--bg-inset);color:var(--gold);-moz-appearance:textfield;transition:border-color .15s}.roll-input-row input[type=number]:focus{outline:none;border-color:var(--gold-dim)}.roll-input-row input[type=number]::-webkit-inner-spin-button,.roll-input-row input[type=number]::-webkit-outer-spin-button{opacity:1}.roll-dice-btn{padding:.45rem .9rem;font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.1em;color:var(--bg);background:var(--gold-dim);border:1px solid var(--gold-dim);transition:background .15s,border-color .15s}.roll-dice-btn:hover{background:var(--gold);border-color:var(--gold)}.roll-dice-btn:active{background:var(--gold-dim)}.roll-result-header{display:flex;justify-content:flex-end;margin-bottom:.4rem}.expand-all-btn{padding:.2rem 0;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dim);background:none;border:none;cursor:pointer;transition:color .15s}.expand-all-btn:hover{color:var(--gold)}.roll-result{display:flex;flex-direction:column;gap:.35rem;margin:0 0 1.25rem}.roll-result-row{display:flex;justify-content:space-between;align-items:baseline;padding:.5rem .75rem;background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--gold-dim)}.roll-result-row dt{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.roll-result-row dd{margin:0;text-align:right}.behaviour-btn{font-family:Cinzel,serif;font-size:1rem;font-weight:600;color:var(--text);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:var(--gold-dim);text-underline-offset:3px;transition:color .15s}.behaviour-btn:hover,.behaviour-btn--open{color:var(--gold);text-decoration-color:var(--gold)}.behaviour-definition{margin:.5rem 0 0;padding:.5rem .65rem;font-family:Crimson Text,Georgia,serif;font-size:.95rem;font-style:italic;line-height:1.5;color:var(--text-dim);background:var(--bg-inset);border-left:2px solid var(--gold-dim);text-align:left}.table-toggle-btn{display:block;padding:.35rem .75rem;margin-bottom:1rem;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);background:none;border:1px solid var(--border);transition:border-color .15s,color .15s}.table-toggle-btn:hover{border-color:var(--border-mid);color:var(--text)}.activation-entry{border:1px solid var(--border);overflow:hidden;margin-bottom:.5rem}.activation-entry h3{margin:0;padding:.5rem .75rem;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dim);background:var(--bg-raised);border-bottom:1px solid var(--border)}.activation-entry table{width:100%;border-collapse:collapse;font-size:.9rem}.activation-entry thead th{padding:.35rem .5rem;text-align:center;font-family:Cinzel,serif;font-size:.65rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);background:var(--bg-surface);border-bottom:1px solid var(--border)}.activation-entry thead th:first-child{min-width:3rem;color:var(--gold-dim)}.activation-entry tbody tr:nth-child(2n){background:#ffffff05}.activation-entry tbody td{padding:.4rem .5rem;text-align:center;border-top:1px solid var(--border);color:var(--text)}.activation-entry tbody td:first-child{font-family:Cinzel,serif;font-size:.8rem;font-weight:600;color:var(--text-dim)}.activation-entry tbody tr.band-row--active{background:var(--gold-glow)}.activation-entry tbody tr.band-row--active td:first-child{color:var(--gold-dim)}.creation-form{max-width:100%}.creation-form__steps{display:flex;gap:.5rem;margin-bottom:2rem}.creation-step-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--border-mid);transition:background .2s}.creation-step-dot--active{background:var(--gold)}.creation-step-dot--done{background:var(--gold-dim)}.creation-section{margin-bottom:1.5rem}.form-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.form-field label,.form-label{font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.module-type-picker{border:1px solid var(--border);padding:.75rem 1rem;margin:1rem 0 0;display:flex;flex-direction:column;gap:.5rem}.module-type-picker legend{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dim);padding:0 .25rem}.module-type-option{display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--text-dim);cursor:default}.module-type-option--active{color:var(--text);cursor:pointer}.module-type-option--soon{opacity:.4}.coming-soon{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.dice-picker{border:none;padding:0;margin:0 0 1.5rem;display:flex;flex-wrap:wrap;gap:.4rem}.dice-picker legend{font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin-bottom:.5rem;width:100%}.dice-option{display:flex;align-items:center;gap:0;padding:.4rem .85rem;font-family:Cinzel,serif;font-size:.8rem;letter-spacing:.06em;color:var(--text-dim);background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;transition:border-color .15s,color .15s}.dice-option input[type=radio]{display:none}.dice-option--active{color:var(--gold);border-color:var(--gold-dim);background:var(--bg-raised)}.category-section{margin-bottom:1.25rem}.category-section__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.6rem}.category-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.category-row .text-input{flex:1}.category-add-row{display:flex;gap:.5rem;margin-top:.5rem}.category-add-row .text-input{flex:1}.entry-add-row{display:flex;gap:.5rem;margin-top:1rem}.entry-add-row .text-input{flex:1}.definitions-section{margin-top:2rem;border-top:1px solid var(--border);padding-top:1.25rem}.definition-row{display:flex;align-items:baseline;gap:.75rem;padding:.4rem 0;border-bottom:1px solid var(--border)}.definition-name{font-family:Cinzel,serif;font-size:.9rem;color:var(--gold);white-space:nowrap;min-width:8rem}.definition-desc{flex:1;color:var(--text-dim);font-size:.95rem}.definition-add-row{display:flex;gap:.5rem;margin-top:.75rem}.definition-add-row .text-input{flex:0 0 10rem}.definition-desc-input{flex:1!important}.entry-editor{border:1px solid var(--border);margin-bottom:.75rem;background:var(--bg-surface)}.entry-editor__header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--bg-raised)}.entry-editor__name{font-family:Cinzel,serif;font-size:.95rem;letter-spacing:.06em;color:var(--gold)}.band-table-wrap{overflow-x:auto;padding:.5rem .75rem}.band-table-wrap{overflow-x:auto}.band-editor-table{width:100%;border-collapse:collapse;font-size:1rem}.band-editor-table th{font-family:Cinzel,serif;font-size:.8rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--text);padding:.3rem .4rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.band-editor-table td{padding:.25rem .4rem}.band-range-input{width:3.5rem;padding:.3rem .4rem;font-family:Cinzel,serif;font-size:.9rem;text-align:center;color:var(--gold);background:var(--bg-inset);border:1px solid var(--border);-moz-appearance:textfield}.band-range-input::-webkit-inner-spin-button,.band-range-input::-webkit-outer-spin-button{display:none}.band-behaviour-input{width:7rem;padding:.3rem .4rem;font-size:.85rem;color:var(--text);background:var(--bg-inset);border:1px solid var(--border)}.band-behaviour-input:focus,.band-range-input:focus{outline:none;border-color:var(--gold-dim)}.entry-editor>.btn-ghost{padding:.35rem .75rem;font-size:.75rem;letter-spacing:.06em;border-top:1px solid var(--border);width:100%;text-align:left}.creation-form__nav{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.creation-form__nav-right{display:flex;gap:.75rem}.btn-primary{padding:.55rem 1.1rem;font-family:Cinzel,serif;font-size:.8rem;letter-spacing:.08em;color:var(--bg);background:var(--gold-dim);border:1px solid var(--gold-dim);transition:background .15s,border-color .15s}.btn-primary:hover:not(:disabled){background:var(--gold);border-color:var(--gold)}.btn-primary:disabled{opacity:.35;cursor:not-allowed}.create-game-btn{display:block;width:100%;margin-bottom:1rem;text-align:center;letter-spacing:.1em}.prompt-section{margin-top:2rem}.prompt-input{display:block;width:100%;min-height:7rem;padding:.75rem;border:1px solid var(--border-mid);background:var(--bg-inset);color:var(--text);resize:vertical;line-height:1.6;transition:border-color .15s}.prompt-input:focus{outline:none;border-color:var(--gold-dim)}.prompt-input::placeholder{color:var(--text-faint);font-style:italic}
