:root{--bg-color: #3a2e2c;--surface-color: #fdf5e6;--primary-color: #8B0000;--primary-hover: #6a0000;--text-color: #4a2c2a;--label-color: #6c5b5a;--border-color: #c9b7a2;--shadow-color: rgba(0, 0, 0, .3);--font-heading: "MedievalSharp", cursive;--font-body: "Lora", serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-color);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iIzNhMmUyYyI+PC9yZWN0PjxwYXRoIGQ9Ik0wIDUwIEwxMDAgNTAgTTUwIDAgTDUwIDEwMCIgc3Ryb2tlPSIjMjgwZTA5IiBzdHJva2Utd2lkdGg9IjEiPjwvcGF0aD48L3N2Zz4=);color:var(--text-color);line-height:1.6;padding:1rem}.logo-link{display:inline-block;margin-bottom:.5rem}.logo{max-width:120px;width:100%;height:auto;filter:drop-shadow(2px 2px 3px var(--shadow-color));transition:transform .2s ease-out}.logo:hover{transform:scale(1.05)}header{text-align:center;margin-bottom:1rem;position:relative}header h1{font-family:var(--font-heading);color:var(--surface-color);font-size:clamp(2rem,5vw,3rem);text-shadow:2px 2px 4px var(--shadow-color);letter-spacing:2px}header p{color:#d3c5bc;font-size:1rem;font-style:italic}.back-link{position:absolute;top:0;left:0;color:#d3c5bc;text-decoration:none;font-size:.9rem;transition:color .2s}.back-link:hover{color:var(--surface-color);text-decoration:underline}.forge-link{position:absolute;top:0;right:0;color:#d3c5bc;font-size:.9rem;font-weight:700;text-decoration:none}.forge-link:hover{color:var(--surface-color);text-decoration:underline}@media(max-width:600px){.back-link,.forge-link{position:static;display:block;margin-bottom:.5rem}}main{display:grid;grid-template-columns:1fr;gap:1.5rem;max-width:1200px;margin:0 auto}@media(min-width:900px){main{grid-template-columns:400px 1fr}}.controls,.output-card,.history-card,.queued-npcs-panel{background-color:var(--surface-color);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZHRoPSI1IiBmaWxsPSIjZmRmNWU2Ij48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiNlYWU5ZDAiIHN0cm9rZS1preWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=);border:2px solid #5a3d3b;border-radius:5px;padding:1.25rem;box-shadow:0 4px 15px var(--shadow-color),inset 0 0 10px #0000001a}.form-group{margin-bottom:.75rem}.label-group{display:flex;justify-content:space-between;align-items:center}.lock-btn{background:none;border:none;cursor:pointer;padding:.25rem;font-size:1rem;line-height:1;color:var(--label-color);transition:color .2s}.lock-btn:hover{color:var(--primary-color)}.lock-btn svg{width:1em;height:1em;vertical-align:-.125em;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.lock-btn .icon-lock-closed{display:none}.lock-btn .icon-lock-open,.lock-btn[data-locked=true] .icon-lock-closed{display:block}.lock-btn[data-locked=true] .icon-lock-open{display:none}.lock-btn[data-locked=true]{color:var(--primary-color)}label{display:block;margin-bottom:.25rem;color:var(--label-color);font-weight:700}.label-group label{margin-bottom:0}input,select,textarea{width:100%;padding:.5rem;background-color:#f4eade;border:1px solid var(--border-color);border-radius:3px;color:var(--text-color);font-family:var(--font-body);font-size:1rem;box-shadow:inset 0 1px 3px #0000001a}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%234a2c2a%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right .7em top 50%;background-size:.65em auto}textarea{resize:vertical;min-height:60px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #8b000033,inset 0 1px 3px #0000001a}.button-group{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:1rem}.button-group .full-width{grid-column:1 / -1}button{padding:.75rem 1rem;border:1px solid rgba(0,0,0,.3);border-bottom:3px solid rgba(0,0,0,.4);border-radius:5px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .15s ease-out;text-shadow:1px 1px 1px rgba(0,0,0,.2)}button:active{transform:translateY(2px);border-bottom-width:1px}button:disabled,button[disabled]{background-color:#9e9e9e;border-color:#757575;border-bottom-color:#616161;cursor:not-allowed;color:#e0e0e0;text-shadow:none}button:disabled:active,button[disabled]:active{transform:none;border-bottom-width:3px}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:#795548;color:#fff}.btn-secondary:hover{background-color:#5d4037}.output-card h2{font-family:var(--font-heading);font-size:2.2rem;margin-bottom:.25rem;color:var(--text-color);text-align:center}.output-card .subtitle{font-size:1.1rem;color:var(--label-color);margin-bottom:1rem;font-style:italic;text-align:center}.output-group{margin-bottom:.75rem}.output-group strong{color:var(--primary-color);display:block;font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:1px}.output-group p{margin-left:0;border-left:3px solid var(--border-color);padding-left:1rem}hr{border:0;height:15px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="15"><path d="M0 7.5 L20 7.5 M80 7.5 L100 7.5 M45 2 L55 13 L65 2" fill="none" stroke="%23c9b7a2" stroke-width="2"/></svg>');background-repeat:no-repeat;background-position:center;margin:1rem 0}.reveal-control{cursor:pointer;border:1px dashed var(--border-color);padding:.75rem;border-radius:4px;-webkit-user-select:none;user-select:none;transition:border-style .2s}.reveal-control:hover{border-color:var(--label-color)}.reveal-control.revealed{border-style:solid;border-color:var(--label-color)}.reveal-content.hidden{display:none}.reveal-content.visible{display:block}#copy-feedback{display:block;text-align:center;height:1em;margin-top:.5rem;color:var(--primary-color);font-weight:700;opacity:0;transition:opacity .3s}.history{max-width:1200px;margin:1.5rem auto 0}.history-card h2{font-family:var(--font-heading);font-size:1.8rem;text-align:center;margin-bottom:1rem}#history-list{max-height:400px;overflow-y:auto;padding-right:10px;margin-bottom:1rem}.history-item{background-color:#f4eade;border:1px solid var(--border-color);border-radius:3px;margin-bottom:.5rem;transition:box-shadow .2s}.history-item[open]{box-shadow:0 2px 5px #0000001a}.history-item summary{padding:.5rem .75rem;cursor:pointer;font-weight:700;list-style:none;display:flex;align-items:center;gap:.75rem}.history-item summary::-webkit-details-marker{display:none}.expand-icon{font-size:1.5rem;line-height:1;transition:transform .2s;color:var(--primary-color);flex-shrink:0;display:inline-block;font-weight:400;width:1em;text-align:center}.history-item[open]>summary .expand-icon{transform:rotate(45deg)}.history-item-header{flex-grow:1}.history-item-header h3{font-size:1.1rem;font-family:var(--font-body);margin:0;color:var(--text-color)}.history-item-header p{font-size:.9rem;color:var(--label-color);font-style:italic;margin:0;font-weight:400}.history-item-body{padding:.75rem;border-top:1px solid var(--border-color);background:#ffffff80}.history-item-body .output-group p{margin-left:0;border-left:3px solid var(--border-color);padding-left:1rem}.btn-delete-item{background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color);padding:.25rem .75rem;border-radius:3px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s;text-shadow:none;flex-shrink:0}.btn-delete-item:hover{background-color:var(--primary-color);color:#fff}.btn-delete-item:active{transform:translateY(1px)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.modal-overlay.visible{opacity:1;visibility:visible}.modal-content{background-color:var(--surface-color);padding:2rem;border-radius:5px;border:2px solid #5a3d3b;box-shadow:0 5px 20px #0006;width:90%;max-width:500px;text-align:center;transform:translateY(-20px);transition:transform .3s}.modal-overlay.visible .modal-content{transform:translateY(0)}.modal-content h2{font-family:var(--font-heading);font-size:1.8rem;margin-bottom:.5rem}.modal-content p{margin-bottom:1.5rem;color:var(--label-color)}.support-row{max-width:1200px;margin:1.5rem auto;text-align:center;color:#d3c5bc}.support-row p{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;font-size:1.1rem}.support-row a.btn-secondary{display:inline-block;text-decoration:none;padding:.5rem 1rem;font-size:.9rem;border:1px solid rgba(0,0,0,.3);border-bottom:3px solid rgba(0,0,0,.4);border-radius:5px;font-weight:700;cursor:pointer;transition:all .15s ease-out;text-shadow:1px 1px 1px rgba(0,0,0,.2);background-color:#795548;color:#fff}.support-row a.btn-secondary:hover{background-color:#5d4037}.support-row a.btn-secondary:active{transform:translateY(2px);border-bottom-width:1px}.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:2000;transform:translateY(-200%);background:var(--surface-color);color:var(--primary-color);padding:.65rem 1rem;border:2px solid var(--primary-color);border-radius:4px;font-weight:700}.skip-link:focus{transform:translateY(0)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #f0c75e;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reveal-control{width:100%;background:transparent;color:inherit;font:inherit;text-align:left;text-shadow:none;border-bottom-width:1px}.reveal-control:active{transform:none;border-bottom-width:1px}.reveal-content{display:block;margin-left:0;border-left:3px solid var(--border-color);padding-left:1rem}.modal-overlay[hidden],[hidden]{display:none!important}.modal-close{margin-top:1rem;width:100%}.site-footer{width:min(100%,900px);margin:1.5rem auto 0;color:#d3c5bc;text-align:center;font-size:.9rem}.site-footer details{display:inline-block;max-width:760px}.site-footer summary{cursor:pointer;font-weight:700}.site-footer p{margin-top:.5rem}.npc-queue-panel,.forge-tools{margin-top:1rem;padding:1rem;border:1px solid var(--border-color);border-radius:4px;background:#f4eade}.npc-queue-panel h3,.forge-tools h2{font-family:var(--font-heading);color:var(--primary-color)}.npc-queue-panel h3{font-size:1.2rem}.queued-npcs-panel{max-width:1200px;margin:1.5rem auto 0}.queued-npcs-panel h2{font-family:var(--font-heading);font-size:1.8rem;text-align:center;margin-bottom:.25rem}.queued-npcs-panel>p{text-align:center;color:var(--label-color)}.queued-npcs-summary{min-height:1.5em;margin-top:.5rem;font-weight:700}.queued-npcs-list{display:grid;gap:.5rem;margin-top:.75rem;padding:0;list-style:none}.queued-npcs-list li{padding:.65rem .75rem;border:1px solid var(--border-color);border-radius:3px;background:#f4eade}.queued-npcs-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem}.queue-actions,.forge-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.75rem}.queue-actions a{display:inline-block;padding:.6rem 1rem;border:1px solid rgba(0,0,0,.3);border-bottom:3px solid rgba(0,0,0,.4);border-radius:5px;font-weight:700;text-decoration:none}.forge-tools{max-width:700px;margin:2rem auto 0;text-align:center}.forge-tools p{color:var(--label-color)}#forge-feedback{min-height:1.5em;margin-top:.75rem;color:var(--primary-color);font-weight:700}#forge-feedback[data-error=true]{color:var(--primary-color)}.forge-page main{display:block;max-width:1200px}.forge-dashboard,.forge-browser{background-color:var(--surface-color);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjZmRmNWU2Ij48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiNlYWU5ZDAiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=);border:2px solid #5a3d3b;border-radius:5px;padding:1.25rem;box-shadow:0 4px 15px var(--shadow-color),inset 0 0 10px #0000001a}.forge-browser{margin-top:1.5rem}.forge-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.forge-section-heading h2{font-family:var(--font-heading);color:var(--primary-color);font-size:1.8rem}.forge-section-heading p,#forge-results-summary{color:var(--label-color)}.forge-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}.forge-stat{min-width:0;background:#f4eade;color:var(--text-color);border-color:var(--border-color);text-shadow:none}.forge-stat:hover,.forge-stat.is-active{border-color:var(--primary-color);background:#ead9c8}.forge-stat-count{display:block;color:var(--primary-color);font-family:var(--font-heading);font-size:2rem;line-height:1}.forge-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:1rem;margin:1.25rem 0;padding:1rem;border:1px solid var(--border-color);border-radius:4px;background:#f4eade}.forge-toolbar .form-group{margin:0}.forge-entries{scroll-margin-top:1rem}.forge-entry-badge{display:inline-block;width:fit-content;margin-bottom:.15rem;padding:.1rem .45rem;border-radius:999px;background:#dfcbb8;color:var(--primary-color);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.forge-generator-link,.forge-empty-links a,.forge-actions a{display:inline-block;padding:.6rem 1rem;border:1px solid rgba(0,0,0,.3);border-bottom:3px solid rgba(0,0,0,.4);border-radius:5px;background:#795548;color:#fff;font-weight:700;text-decoration:none;text-shadow:1px 1px 1px rgba(0,0,0,.2)}.forge-generator-link{margin-top:.5rem}.forge-generator-link:hover,.forge-empty-links a:hover,.forge-actions a:hover{background:#5d4037}.forge-empty-state{padding:2.5rem 1rem;border:2px dashed var(--border-color);border-radius:4px;text-align:center}.forge-empty-state h3{font-family:var(--font-heading);color:var(--primary-color);font-size:1.5rem}.forge-empty-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem}.forge-clear-button{align-self:center}@media(max-width:800px){.forge-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.forge-stats .forge-stat:first-child{grid-column:1 / -1}}@media(max-width:600px){.forge-section-heading,.forge-toolbar{display:grid;grid-template-columns:1fr}.forge-section-heading .forge-actions{justify-content:stretch}.forge-section-heading .forge-actions>*,.forge-clear-button{width:100%}.forge-entry summary{align-items:flex-start;flex-wrap:wrap}.forge-entry .history-item-header{min-width:calc(100% - 2.5rem)}.forge-entry .btn-delete-item{margin-left:2.25rem}}body.landing-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh}.landing-page .logo{max-width:150px}.landing-page header{margin-bottom:1.5rem}.landing-page header h1{font-size:clamp(2.5rem,6vw,4rem);text-shadow:3px 3px 5px var(--shadow-color);letter-spacing:3px}.landing-page header p{font-size:clamp(1rem,2vw,1.2rem);max-width:600px;margin:.5rem auto 0}.landing-page main{display:block;width:100%;max-width:900px;margin:0 auto}.generators-section{text-align:center}.generators-section h2{font-family:var(--font-heading);color:var(--surface-color);font-size:clamp(1.8rem,4vw,2.5rem);margin-bottom:1.5rem;text-shadow:2px 2px 3px var(--shadow-color)}.generator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.generator-card{background-color:var(--surface-color);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZHRoPSI1IiBmaWxsPSIjZmRmNWU2Ij48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiNlYWU5ZDAiIHN0cm9rZS1preWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4=);border:2px solid #5a3d3b;border-radius:5px;padding:1.5rem;box-shadow:0 4px 15px var(--shadow-color),inset 0 0 10px #0000001a;text-decoration:none;color:var(--text-color);transition:transform .2s ease-out,box-shadow .2s ease-out;display:flex;flex-direction:column;align-items:center;text-align:center}.generator-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px var(--shadow-color),inset 0 0 10px #0000001a;border-color:var(--primary-color)}.generator-card svg{width:60px;height:60px;margin-bottom:1rem;fill:var(--primary-color);opacity:.8}.generator-card h3{font-family:var(--font-heading);font-size:1.8rem;margin-bottom:.5rem;color:var(--primary-color)}.generator-card p{font-size:1rem;color:var(--label-color)}.placeholder-card{border-style:dashed;border-color:var(--border-color);cursor:not-allowed;opacity:.6;color:var(--label-color)}.placeholder-card:hover{transform:none;box-shadow:0 4px 15px var(--shadow-color),inset 0 0 10px #0000001a;border-color:var(--border-color)}.placeholder-card svg,.placeholder-card h3{fill:var(--label-color);color:var(--label-color)}.support-section{text-align:center;margin-top:2.5rem;padding:1.5rem 0}.support-button{display:inline-block;padding:.75rem 1.5rem;border:1px solid rgba(0,0,0,.3);border-bottom:3px solid rgba(0,0,0,.4);border-radius:5px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .15s ease-out;text-shadow:1px 1px 1px rgba(0,0,0,.2);background-color:var(--primary-color);color:#fff;text-decoration:none;max-width:90%;width:500px}.support-button:hover{background-color:var(--primary-hover)}.support-button:active{transform:translateY(2px);border-bottom-width:1px}.fatal-error{color:#fff;font-size:1.2rem;text-align:center}@media(max-width:600px){.support-button{width:100%;font-size:1rem}.generator-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
