:root{--ink:#21150f;--ink-soft:#5f4635;--parchment:#ead8ad;--parchment-light:#f8edcf;--parchment-dark:#c9aa72;--blood:#8e3029;--blood-dark:#5f1f1b;--gold:#c9973e;--gold-light:#e8c675;--night:#15110f;--night-raised:#211a17;--night-panel:#2a201c;--line:#564036;--muted:#baa995;--paper-width:210mm;color:#f4ead7;background:var(--night);font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}html{min-width:320px}body{background:var(--night);min-height:100vh;margin:0}button,input,select{font:inherit}button,a{color:inherit}.app-shell{grid-template-columns:390px minmax(0,1fr);min-height:calc(100vh - 46px);display:grid}.tool-nav{color:#a99783;letter-spacing:.05em;text-transform:uppercase;background:#100c0a;border-bottom:1px solid #49372e;justify-content:space-between;align-items:center;height:46px;padding:0 24px;font:700 .72rem/1 Arial,sans-serif;display:flex}.tool-nav a{color:var(--gold-light);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.tool-nav a:hover{color:#ffe09a}.workbench{z-index:2;background:linear-gradient(90deg, transparent 0 96%, #0004 100%), radial-gradient(circle at 15% 0%, #4a3024 0, transparent 26%), repeating-linear-gradient(0deg, #0000 0 3px, #0000000a 3px 4px), var(--night-raised);border-right:1px solid #49372e;padding:26px 24px 32px;position:relative;overflow-y:auto;box-shadow:12px 0 35px #0007}.workbench:before{content:"";pointer-events:none;border:1px solid #8a673e55;position:absolute;inset:8px}.brand{align-items:center;gap:14px;margin-bottom:12px;display:flex}.brand-mark{width:52px;height:52px;color:var(--gold-light);border:1px solid var(--gold);background:linear-gradient(135deg,#38251e,#17100d);flex:none;place-items:center;font-size:25px;display:grid;transform:rotate(45deg);box-shadow:inset 0 0 0 4px #17100d,0 4px 16px #0007}.brand-mark span{transform:rotate(-45deg)}.eyebrow,.step{text-transform:uppercase;letter-spacing:.17em;color:var(--gold-light);margin:0 0 3px;font:700 .68rem/1.2 Arial,sans-serif}h1,h2,p{margin-top:0}h1{letter-spacing:.02em;margin-bottom:0;font-size:1.85rem;line-height:1}.intro{color:var(--muted);margin:0 0 20px;font-size:.94rem;line-height:1.55}.panel{background:linear-gradient(135deg, #ffffff08, transparent 30%), var(--night-panel);border:1px solid #62483b;flex-direction:column;gap:12px;margin:0 0 16px;padding:16px;display:flex;position:relative;box-shadow:0 8px 22px #0004,inset 0 0 22px #0002}.panel:before,.panel:after{content:"";border-color:var(--gold);opacity:.7;width:15px;height:15px;position:absolute}.panel:before{border-top:1px solid;border-left:1px solid;top:5px;left:5px}.panel:after{border-bottom:1px solid;border-right:1px solid;bottom:5px;right:5px}.panel-heading{align-items:center;gap:11px;margin-bottom:2px;display:flex}.panel-heading.compact{margin-bottom:0}.panel-heading h2{margin:0;font-size:1.08rem;font-weight:700}.panel-heading .step{color:#b79d7d;margin-bottom:2px;font-size:.6rem}.rune{width:30px;height:30px;color:var(--gold-light);background:#17100d;border:1px solid #8a673e;border-radius:50%;place-items:center;font:700 .72rem Arial,sans-serif;display:grid}.field{min-width:0;margin:0}.field>label{color:#e5d8c4;letter-spacing:.02em;margin-bottom:6px;font:700 .78rem/1.2 Arial,sans-serif;display:block}.optional{color:#96816c;font-weight:400}.field-hint,.field small{color:#aa9986;margin-top:5px;font:.72rem/1.35 Arial,sans-serif;display:block}input,select{color:#f7efdf;background:#16110f;border:1px solid #6f5548;border-radius:2px;outline:none;width:100%;min-height:42px;padding:9px 11px;font-family:Arial,sans-serif;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9973e22}select{cursor:pointer}.two-columns{grid-template-columns:1fr 1fr;gap:12px 10px;display:grid}.unit-input{position:relative}.unit-input input{padding-right:38px}.unit-input span{color:#9a8672;pointer-events:none;font:.72rem Arial,sans-serif;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.upload-zone{cursor:pointer;background:linear-gradient(135deg,#17100d,#261a15);border:1px dashed #93724e;align-items:center;gap:13px;padding:14px;transition:border-color .15s,background .15s,transform .15s;display:flex}.upload-zone:hover,.upload-zone.dragover{border-color:var(--gold-light);background:#302119;transform:translateY(-1px)}.upload-zone input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.upload-icon{width:38px;height:38px;color:var(--gold-light);background:#100c0a;border:1px solid #7f5c43;flex:none;place-items:center;font-size:25px;display:grid}.upload-copy strong,.upload-copy small{display:block}.upload-copy strong{margin-bottom:3px;font-size:.9rem}.upload-copy small{color:#a9947f;font:.7rem/1.35 Arial,sans-serif}.selected-art{border-left:2px solid var(--gold);background:#17110e;grid-template-columns:55px 1fr;align-items:center;gap:10px;padding:8px}.selected-art:not([hidden]){display:grid}.selected-thumb{background:repeating-conic-gradient(#211915 0 25%, #2b211c 0 50%) 0/12px 12px;place-items:center;width:55px;height:66px;display:grid;overflow:hidden}.selected-thumb img{object-fit:contain;width:100%;height:100%}.selected-art strong,.selected-art small{text-overflow:ellipsis;display:block;overflow:hidden}.selected-art strong{white-space:nowrap;font-size:.82rem}.selected-art small{color:#a9947f;margin-top:3px;font:.68rem/1.3 Arial,sans-serif}button{cursor:pointer;border:0}.primary-action,.print-action{color:#24150c;text-transform:uppercase;letter-spacing:.06em;background:linear-gradient(#e0b85d,#b87d2a);border:1px solid #f1d98d;width:100%;min-height:45px;margin-top:3px;padding:10px 14px;font:800 .82rem Arial,sans-serif;box-shadow:inset 0 -3px #6e4517,0 5px 14px #0005}.primary-action:hover,.print-action:hover{filter:brightness(1.08)}.primary-action:active,.print-action:active{transform:translateY(1px);box-shadow:inset 0 -1px #6e4517,0 2px 8px #0005}.toggle-grid{gap:10px;margin-top:2px;display:grid}.toggle{color:#d7c8b4;cursor:pointer;align-items:center;gap:9px;font:.78rem Arial,sans-serif;display:flex}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle span{background:#120e0c;border:1px solid #725648;flex:none;width:34px;height:18px;position:relative}.toggle span:after{content:"";background:#736255;width:12px;height:12px;transition:left .15s,background .15s;position:absolute;top:2px;left:2px}.toggle input:checked+span{border-color:#b8863a}.toggle input:checked+span:after{background:var(--gold-light);left:18px}.roster{gap:8px;display:grid}.roster-empty{color:#9e8a76;text-align:center;border:1px dashed #594238;padding:12px 8px;font:italic .82rem Georgia,serif}.roster-item{background:#18120f;border:1px solid #594238;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px;display:grid}.roster-thumb{object-fit:contain;background:#0f0c0a;width:42px;height:52px}.roster-copy{min-width:0}.roster-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;display:block;overflow:hidden}.roster-copy small{color:#9f8b77;margin-top:3px;font:.67rem/1.3 Arial,sans-serif;display:block}.roster-actions{gap:4px;display:flex}.icon-button{color:#d8c7b1;background:#251a16;border:1px solid #5e473b;width:29px;height:29px;font:700 .76rem Arial,sans-serif}.icon-button:hover{border-color:var(--gold);color:var(--gold-light)}.icon-button.remove:hover{color:#ef8c82;border-color:#b7564e}.layout-warning{color:#ffd9c7;background:#4c201c;border:1px solid #a1483d;margin:0 0 14px;padding:11px 12px;font:.75rem/1.45 Arial,sans-serif}.footer-actions{gap:8px;display:grid}.print-action{color:#fff3e4;background:linear-gradient(#a64036,#70221e);border-color:#c56a5c;margin-top:0;box-shadow:inset 0 -3px #461411,0 5px 14px #0005}.ghost-action{color:#bbaa96;background:0 0;border:1px solid #574138;width:100%;padding:10px;font:700 .75rem Arial,sans-serif}.ghost-action:hover{color:#f0dfca;border-color:#876553}.ghost-action.danger:hover{color:#f19b91;border-color:#a94e46}.preview-area{background:radial-gradient(circle at 50% -10%,#5b4130 0,#0000 37%),repeating-linear-gradient(90deg,#ffffff03 0 1px,#0000 1px 5px),#100d0b;min-width:0;padding:28px;overflow:auto}.preview-toolbar{width:var(--paper-width);justify-content:space-between;align-items:end;gap:20px;max-width:100%;margin:0 auto 16px;display:flex}.preview-toolbar h2{margin:0;font-size:1.3rem}.print-instructions{color:#bba995;text-align:right;max-width:360px;font:.75rem/1.45 Arial,sans-serif}.print-instructions strong,.print-instructions span{display:block}.print-instructions strong{color:#e7d3b4}.pages{justify-content:center;gap:26px;display:grid}.page{width:210mm;height:297mm;color:var(--ink);background:radial-gradient(circle at 15% 8%, #fff8df 0 5%, transparent 22%), repeating-linear-gradient(12deg, transparent 0 4px, #8c71300a 4px 5px), var(--parchment-light);position:relative;overflow:hidden;box-shadow:0 25px 70px #000b,0 0 0 1px #8b7352}.page:after{content:"";pointer-events:none;border:.2mm solid #775a2c33;position:absolute;inset:3mm}.page-inner{position:absolute}.empty-page{color:#846d4f;text-align:center;place-items:center;height:100%;display:grid}.empty-page>div{max-width:90mm}.empty-sigil{color:#a4834f;margin-bottom:5mm;font-size:24pt;display:block}.empty-page strong{margin-bottom:2mm;font-size:14pt;display:block}.empty-page span{font-size:9pt}.standee{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;border:.25mm solid #27211c;position:absolute;overflow:hidden}.standee.no-guides{border-color:#0000}.panel-side{background:#fff;width:100%;position:absolute;left:0;overflow:hidden}.panel-side img{object-fit:contain;object-position:center center;width:100%;position:absolute;left:0}.back-side{top:0}.back-side img{top:var(--bottom-space);filter:brightness(0);transform:scaleY(-1)}.front-side{top:var(--panel-height)}.front-side img{top:var(--label-space)}.fold-line{top:var(--panel-height);z-index:4;border-top:.3mm dashed #5f554b;position:absolute;left:0;right:0}.glue-tab{height:var(--tab-height);color:#635b52;letter-spacing:.08em;background:repeating-linear-gradient(135deg,#fff 0 2mm,#e9e4dc 2mm 4mm);border-top:.3mm dashed #5f554b;justify-content:center;align-items:center;font:700 5.7pt Arial,sans-serif;display:flex;position:absolute;bottom:0;left:0;right:0}.standee.no-guides .fold-line{display:none}.standee.no-guides .glue-tab{color:#0000;background:#fff;border-top-color:#0000}.character-label{z-index:3;white-space:nowrap;text-overflow:ellipsis;color:#1d1712;text-align:center;text-shadow:0 0 .7mm #fff;background:#fff9e8dc;border-top:.2mm solid #5a4935;border-bottom:.2mm solid #5a4935;padding:.7mm 1mm;font-weight:700;line-height:1.05;position:absolute;top:.7mm;left:1mm;right:1mm;overflow:hidden}.oversized-marker{z-index:8;color:#8b1f18;text-align:center;background:#fff6;border:1mm solid #b62920;place-items:center;font:700 8pt Arial,sans-serif;display:grid;position:absolute;inset:0}.overview-page{background:radial-gradient(circle at 75% 8%, #573927 0, transparent 27%), repeating-linear-gradient(90deg, #ffffff03 0 1px, transparent 1px 5px), var(--night);min-height:100vh}.site-header,.site-footer,.overview{width:min(1120px,100% - 40px);margin-inline:auto}.site-header{border-bottom:1px solid #5a4335;justify-content:space-between;align-items:center;gap:24px;min-height:96px;display:flex}.site-brand{align-items:center;gap:15px;text-decoration:none;display:flex}.site-brand small,.site-brand strong{display:block}.site-brand small{color:var(--gold-light);letter-spacing:.15em;text-transform:uppercase;margin-bottom:4px;font:700 .62rem Arial,sans-serif}.site-brand strong{font-size:1.35rem}.site-brand .brand-mark{width:44px;height:44px;font-size:20px}.github-link{color:#cfbda7;font:700 .76rem Arial,sans-serif;text-decoration:none}.github-link:hover{color:var(--gold-light)}.overview{padding:84px 0 100px}.hero{max-width:800px;padding-bottom:88px}.hero h1{letter-spacing:-.035em;margin:12px 0 24px;font-size:clamp(3rem,7vw,5.7rem);line-height:.94}.hero h1 span{color:var(--gold-light)}.hero>p:last-child{color:#c1ae98;max-width:650px;margin:0;font-size:1.08rem;line-height:1.7}.tool-section{border-top:1px solid #594133;padding-top:32px}.section-heading{justify-content:space-between;align-items:end;gap:30px;margin-bottom:28px;display:flex}.section-heading h2{margin:0;font-size:2rem}.section-heading>p{color:#a7937e;text-align:right;max-width:360px;margin:0;line-height:1.5}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.tool-card{background:linear-gradient(135deg, #ffffff08, transparent 38%), var(--night-panel);border:1px solid #62483b;min-height:330px;padding:32px;text-decoration:none;position:relative}.tool-card.available{transition:transform .18s,border-color .18s,box-shadow .18s}.tool-card.available:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 18px 45px #0007}.tool-card.forthcoming{opacity:.6;border-style:dashed}.tool-icon{width:58px;height:58px;color:var(--gold-light);background:#17100d;border:1px solid #8a673e;place-items:center;margin-bottom:36px;font-size:28px;display:grid}.tool-status{color:#bda98f;letter-spacing:.13em;text-transform:uppercase;font:700 .62rem Arial,sans-serif;position:absolute;top:35px;right:30px}.tool-card h3{margin:0 0 12px;font-size:1.65rem}.tool-card p{color:#b8a590;max-width:470px;margin-bottom:30px;line-height:1.6}.tool-action{color:var(--gold-light);letter-spacing:.04em;text-transform:uppercase;font:700 .76rem Arial,sans-serif;position:absolute;bottom:30px;left:32px}.site-footer{color:#8f7d6a;border-top:1px solid #49372e;justify-content:space-between;align-items:center;min-height:80px;font:.72rem Arial,sans-serif;display:flex}@media (width<=1050px){.app-shell{grid-template-columns:1fr}.workbench{border-bottom:1px solid #49372e;border-right:0}.preview-area{padding:20px 12px}}@media (width<=550px){.workbench{padding:22px 15px 28px}.two-columns{grid-template-columns:1fr;gap:0}.preview-toolbar{display:block}.print-instructions{text-align:left;margin-top:8px}.site-header{min-height:80px}.site-brand small{display:none}.overview{padding:58px 0 72px}.hero{padding-bottom:58px}.section-heading{display:block}.section-heading>p{text-align:left;margin-top:10px}.tool-grid{grid-template-columns:1fr}.tool-card{min-height:310px;padding:25px}.tool-action{left:25px}.site-footer{padding:24px 0;display:block}.site-footer span{margin:5px 0;display:block}}@media print{@page{size:A4 portrait;margin:0}html,body{background:#fff;margin:0;padding:0}.tool-nav,.workbench,.preview-toolbar{display:none!important}.app-shell{display:block}.preview-area{background:#fff;padding:0;overflow:visible}.pages{display:block}.page{box-shadow:none;break-after:page;page-break-after:always;margin:0}.page:last-child{break-after:auto;page-break-after:auto}.page:after{display:none}}
