@font-face{font-family:AtlasSerif;src:local('Georgia');font-display:swap}
:root{--bg:#f6f5ef;--panel:#fffefa;--ink:#26362d;--muted:#7d837a;--line:#e4e4da;--green:#2d4938;--gold:#ae874c;--side:#18211c;--serif:AtlasSerif,Georgia,'Times New Roman',serif;--sans:Inter,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}button,.button{border:1px solid #d9ddd3;border-radius:6px;background:#fffefa;color:var(--ink);padding:9px 13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;line-height:1.4;transition:background .16s,border-color .16s}button:hover,.button:hover{background:#f1f1e7;border-color:#b4bcae}button:disabled{opacity:.5;cursor:wait}button.primary,.button.primary{background:var(--green);border-color:var(--green);color:#fffefa}button.primary:hover,.button.primary:hover{background:#203c2b}a{color:inherit}a:hover{color:#9b773d}button .icon,.button .icon{width:17px;height:17px}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}.quiet{background:transparent;border-color:transparent}.text-button{border:0;background:none;padding:0;justify-content:initial;font-size:12px;color:var(--green);border-radius:2px}.text-button:hover{background:transparent;color:var(--gold)}.wide{width:100%}.muted{color:var(--muted);font-size:12px}.danger-text{color:#a64b38}.badge{display:inline-block;max-width:100%;padding:3px 8px;border-radius:4px;background:#f2ecdf;color:#907143;font-size:10px;font-weight:600;letter-spacing:.3px}.badge.green{background:#edf2e9;color:#53734a}.badge.danger{background:#faeae3;color:#a2543e}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2px;color:var(--gold);line-height:1.5}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#62845d;margin-right:6px}h1,h2,h3,p{margin-top:0}h1{font:normal 37px/1.2 var(--serif);letter-spacing:-1px;margin:8px 0 10px}h2{font:normal 23px/1.3 var(--serif);margin-bottom:13px}h3{font-size:12px;font-weight:650;margin:20px 0 8px}p{margin-bottom:14px}small{font-size:11px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:fixed;top:-60px;left:20px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid #a4b69c;outline-offset:1px}
#sidebar{width:224px;position:fixed;inset:0 auto 0 0;background:var(--side);color:#bdc5bb;padding:30px 20px 24px;display:flex;flex-direction:column;z-index:30;border-right:1px solid #27342b}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;margin:0 0 50px;color:#e6dcc1}.brand img{width:40px;height:48px}.brand>span{font-family:var(--serif);font-size:25px;letter-spacing:3px;line-height:1.1}.brand small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:2px;color:#99a390;margin-top:9px}.side-label{font-size:9px;letter-spacing:1.8px;color:#758474;margin:0 8px 12px}#campaign-select{width:100%;color:#e3e5da;border-color:#3c4b3e;background:#232e26;padding:10px 8px;font-size:12px;margin-bottom:27px;border-radius:5px}#nav{display:flex;flex-direction:column;gap:5px}#nav a{display:flex;align-items:center;gap:12px;position:relative;text-decoration:none;padding:12px 12px;border-radius:5px;font-size:12px;color:#a8b5a5}#nav .icon{width:18px;height:18px;color:#91a08c}#nav a.active{background:#2b3a2e;color:#e4dab7}#nav a.active .icon{color:#c6ab72}#nav a.active:before{content:'';position:absolute;left:-20px;width:3px;height:23px;background:#b89b61;border-radius:0 3px 3px 0}#nav small{margin-left:auto;font-size:10px;color:#91a08c}#nav a:hover{background:#253328;color:#e4dab7}.nav-separator{height:1px;background:#303b31;margin:18px 7px}.side-bottom{margin-top:auto;padding:35px 9px 0}.moon{font-size:16px;color:#9e8959;display:flex;align-items:center;justify-content:space-between;gap:6px}.moon span{font-family:var(--serif);font-size:12px;color:#c1b79b}.side-bottom p{font-size:11px;color:#7f8c7c;margin:17px 0}.side-bottom button{font-size:10px;color:#b9b99f}#shell{margin-left:224px;min-height:100vh}.topbar{height:69px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:#fbfaf5;font-size:11px;color:#7a8278}.top-actions{display:flex;align-items:center;gap:22px}#save-state{color:#71826c;font-size:10px}#save-state.save-error{color:#ae5037}.top-actions button{font-size:11px}#mobile-menu{display:none}main{max-width:1900px;margin:0 auto;padding:33px 34px 35px;min-height:calc(100vh - 135px)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-heading p{font-size:12px;color:var(--muted);margin:0}.heading-actions{display:flex;gap:10px;align-items:center}.heading-actions button{font-size:11px;white-space:nowrap;padding:11px 15px}#shell>footer{display:flex;align-items:center;gap:16px;min-height:65px;border-top:1px solid var(--line);margin:0 34px;font-size:10px;color:#999f93;letter-spacing:1px}#shell>footer>span{letter-spacing:0}#shell>footer button{margin-left:auto;color:#909887;font-size:10px;letter-spacing:0}
.campaign-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:11px}.campaign-strip>div{display:flex;align-items:center;gap:10px}.campaign-strip .icon{color:var(--gold);width:17px}.campaign-strip strong{font-weight:600}.campaign-strip .muted{padding-left:12px;border-left:1px solid #d7d9cd;font-size:11px}.date-pill{font-size:10px;border:1px solid #dedfce;border-radius:20px;color:#798269;padding:5px 11px;white-space:nowrap}.atlas-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:20px;align-items:start}.atlas-left{min-width:0}.atlas-panel{border:1px solid #d7d8c8;background:#ede7d6;border-radius:8px;overflow:hidden;box-shadow:0 3px 12px #28352008}.atlas-toolbar{display:flex;align-items:center;justify-content:space-between;gap:5px;background:#fffefa;padding:11px 12px;border-bottom:1px solid var(--line);font-size:10px}.toolbar-start{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.toolbar-start>.icon{width:15px;height:15px;color:#8e956f}.toolbar-start select{border:0;background:transparent;color:#5f6c58;font-size:10px;max-width:185px;padding:0;outline-offset:0}.toolbar-divider{height:14px;border-left:1px solid var(--line);margin:0 3px}.toggle{display:flex;align-items:center;gap:3px;cursor:pointer;color:#7f8879;font-size:10px}.toggle input{accent-color:#596f46;width:11px;height:11px;margin:0 2px}.zoom-controls{display:flex;align-items:center;gap:7px;color:#768169;flex-shrink:0}.zoom-controls button{border:0;background:none;padding:0 3px;font-size:16px}.zoom-controls button[data-zoom=fit]{font-size:9px;border-left:1px solid var(--line);padding-left:9px}.zoom-controls span{font-size:9px;min-width:29px;text-align:center}.map-viewport{position:relative;overflow:auto;max-height:680px;min-height:250px;background:#222c23;scrollbar-width:thin}.map-canvas{position:relative;min-width:100%;line-height:0}.map-canvas>#world-map{display:block;width:100%;height:auto;user-select:none}.map-token{position:absolute;width:38px;height:38px;padding:0;border-radius:50%;background:#2e3b2a;border:2px solid #e8d5a2;box-shadow:0 2px 4px #000a,0 0 0 3px #282d2860;transform:translate(-50%,-50%);z-index:3;touch-action:none;overflow:visible;transition:box-shadow .15s;cursor:grab}.map-token .avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 18%;pointer-events:none}.map-token .initials{font-size:9px;color:#e9d8ad;line-height:34px;display:block;overflow:hidden}.map-token:hover,.map-token:focus-visible{z-index:8;box-shadow:0 0 0 5px #edce7c88,0 5px 9px #0009}.map-token.selected{border-color:#fff1b5;box-shadow:0 0 0 4px #d7ac5ea0,0 2px 8px #0009;z-index:5}.map-token.dragging{cursor:grabbing;z-index:10}.crown{position:absolute;top:-13px;left:9px;font-size:16px;color:#ffdc77;text-shadow:0 1px 2px #1e1e13;line-height:1}.map-caption{position:sticky;bottom:12px;left:0;width:max-content;max-width:95%;margin:0 auto;height:0;transform:translateY(-22px);color:#eee8d8;text-shadow:0 1px 3px #000;font-size:9px;pointer-events:none;display:flex;align-items:center;gap:6px;background:#17251bd4;padding:13px 15px;border-radius:20px;line-height:1.3}.map-caption .icon{width:13px;height:13px}.map-footnote{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px;background:#fffefa;font-size:9px;color:#929983}.location-pin{position:absolute;transform:translate(-50%,-50%);font-size:21px;padding:0;background:#fff6d5;border:1px solid #9b7f45;color:#5f4c2c;line-height:1;width:24px;height:24px;border-radius:50%;z-index:2}.location-pin span{position:absolute;left:26px;top:3px;font-size:9px;white-space:nowrap;background:#fff6d5;color:#4a472e;padding:4px;border:1px solid #aa946a;border-radius:3px;pointer-events:none}.location-pin:hover{z-index:12}.atlas-panel:fullscreen{overflow:auto;background:#202b24}.atlas-panel:fullscreen .map-viewport{max-height:calc(100vh - 95px)}
.inspector{border:1px solid var(--line);background:var(--panel);border-radius:8px;overflow:hidden}.inspector-top{padding:15px 16px;display:flex;justify-content:space-between;align-items:center}.inspector-top .eyebrow{font-size:9px;letter-spacing:1.5px}.inspector-top button{font-size:10px}.portrait-button{display:block;width:100%;height:258px;position:relative;padding:0;border:0;border-radius:0;overflow:hidden;background:#263829;text-align:left}.portrait{width:100%;height:100%;object-fit:cover;object-position:50% 16%;display:block}.portrait.initials{display:flex;justify-content:center;align-items:center;font:70px var(--serif);color:#b9ad8b}.portrait-shade{position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#132318f0)}.portrait-caption{position:absolute;bottom:13px;left:16px;right:10px;color:#fff7df}.portrait-caption small{display:block;font-size:8px;letter-spacing:1px;color:#d0c9ae;margin-bottom:5px}.portrait-caption h2{font-size:24px;line-height:1.15;margin:0}.inspector-body{padding:16px}.location-line{display:flex;align-items:center;gap:6px;color:#758168;font-size:11px}.location-line .icon{width:14px;height:14px}.rank-row{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:13px 0 18px;border-bottom:1px solid var(--line);padding-bottom:15px}.rank-row>span{font-size:8px;letter-spacing:1.3px;color:#98a08b}.rank-row strong{font-size:11px;color:#98783c;font-weight:500;text-align:right}.inspector h3{text-transform:uppercase;font-size:9px;letter-spacing:1.4px;color:#999f91;margin:17px 0 8px}.inspector p{font-size:11px;color:#6d7869;line-height:1.8}.summary-preview{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.inspector .wide{margin-top:12px;font-size:10px;justify-content:space-between}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.stats-grid a{border:1px solid var(--line);border-radius:7px;background:var(--panel);padding:17px;text-decoration:none;transition:transform .15s}.stats-grid a:hover{transform:translateY(-2px)}.stats-grid a>span{font-size:8px;letter-spacing:1.2px;color:#959c8e;display:flex;align-items:center;gap:6px}.stats-grid .icon{width:14px;height:14px;color:#a78d5f}.stats-grid strong{font:32px/1.5 var(--serif);display:block;margin-top:8px;color:#3e533c}.stats-grid em{font-size:16px;color:#9ca28f;font-style:normal}.stats-grid small{font-size:9px;color:#929b89}.panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:23px}.below-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.below-grid h2{font-size:20px;margin-top:10px}.below-grid p{font-size:11px;color:#7b846f;line-height:1.8}.next-chapter{background:linear-gradient(120deg,#edf0e5,#f8f7ee)}.next-chapter a{font-size:10px;display:inline-flex;gap:12px;align-items:center;text-decoration:none}.next-chapter .icon{width:15px}.section-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.section-line h2{margin:0;font-size:21px}.section-line>.muted{font-size:8px;letter-spacing:1px}.history-row{display:flex;gap:12px;font-size:11px;border-top:1px solid var(--line);padding:12px 0;color:#6f7d69}.history-row small{display:block;font-size:9px;color:#a0a694;margin-top:3px}.history-dot{width:6px;height:6px;background:#c6b68e;border-radius:50%;margin-top:5px;flex-shrink:0}
.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.search-box{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:0 13px;width:430px;max-width:100%;color:#9ca18e}.search-box .icon{width:16px}.search-box input{background:transparent;border:0;padding:12px 0;color:var(--ink);width:100%;font-size:12px}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:20px}.character-card{border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}.character-cover{display:block;width:100%;padding:0;border:0;border-radius:0;height:260px;position:relative;background:#27362a;overflow:hidden}.card-portrait{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transition:transform .25s}.character-cover:hover .card-portrait{transform:scale(1.04)}.card-portrait.initials{display:flex;align-items:center;justify-content:center;font:70px var(--serif);background:linear-gradient(140deg,#233b2c,#55634a);color:#c1b385}.card-rank{position:absolute;bottom:12px;right:12px;max-width:90%;padding:4px 9px;border-radius:4px;background:#172c24de;color:#e9d5a9;font-size:9px}.card-content{padding:18px}.card-content>small{font-size:9px;color:#989b87;text-transform:uppercase;letter-spacing:.6px}.card-content h2{margin:4px 0 8px;font-size:23px}.card-content h2 button{font:inherit;color:var(--ink)}.card-summary{font-size:11px;line-height:1.8;color:#79816f;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;height:60px}.card-footer{border-top:1px solid var(--line);padding-top:13px;display:flex;gap:8px;align-items:center;justify-content:space-between}.card-footer span{font-size:9px;color:#8d967e}.card-footer button{font-size:10px;white-space:nowrap}.chapter-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:26px}.chapter-index{padding-top:15px}.chapter-index>.eyebrow{margin-bottom:20px;font-size:9px}.chapter-item{display:flex;align-items:flex-start;gap:12px;text-align:left;width:100%;border-color:transparent;padding:16px 10px;background:transparent;margin-bottom:8px}.chapter-item.active{background:#e9ede0;border:1px solid #d5dcc9}.chapter-number{font:22px var(--serif);color:#b3a67d}.chapter-item strong{font-size:12px;font-weight:500;display:block;line-height:1.5}.chapter-item small{font-size:10px;display:block;color:#959b89;margin:4px 0 7px}.chapter-item .badge{font-size:8px}.chapter-paper{border:1px solid var(--line);background:#fffefa;padding:35px 42px;border-radius:8px;min-height:600px}.chapter-paper>.section-line button{font-size:10px}.chapter-paper>.section-line .eyebrow{font-size:9px}.chapter-paper h2{font-size:33px;margin-top:23px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9;color:#65715f}.chapter-paper>.prose{font-family:var(--serif);font-size:17px;line-height:1.9;color:#4f5e4d;margin-top:27px}.linked-characters{border-top:1px solid var(--line);margin-top:30px;padding-top:22px}.linked-characters>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.character-chip{display:inline-flex;gap:7px;align-items:center;font-size:10px;padding:5px 9px 5px 5px;border-radius:20px}.character-chip .avatar{width:25px;height:25px;object-fit:cover;object-position:50% 17%;border-radius:50%;font-size:9px}.initials{background:#354b37;color:#e4d9b8;display:inline-flex;justify-content:center;align-items:center}.record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.record-card h2{font-size:26px;margin-bottom:18px}.record-card .prose{font-size:12px}.tournament-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,1.1fr);gap:25px}.tournament-layout>.panel{align-self:start}.tournament-layout .prose{margin-bottom:20px}.versus{display:flex;align-items:center;gap:16px;justify-content:space-between;margin:25px 0}.versus strong{font-family:var(--serif);font-size:20px;font-weight:500}.versus span{font-size:26px;color:var(--gold)}.match{margin-bottom:15px}.match p{font-size:12px;margin:12px 0 0;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-grid h2{font-size:25px}.settings-grid p{font-size:12px;color:#7d8673}.settings-grid button,.settings-grid .button{font-size:11px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin:17px 0}.settings-grid .text-button{margin-top:12px}.settings-grid hr{border:0;border-top:1px solid var(--line);margin:25px 0}.map-list-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.map-list-item img{width:80px;height:56px;object-fit:cover;border-radius:4px}.map-list-item div{flex:1}.map-list-item strong{font-size:12px;font-weight:500}.map-list-item small{display:block;color:#939a85}.location-list{max-height:360px;overflow:auto}.location-list button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:6px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;font-size:11px;padding:12px 0;text-align:left}.location-list small{font-size:9px;color:#969d8b;white-space:nowrap}.location-list .icon{width:13px;height:13px;color:var(--gold);margin-right:5px}.linux-panel{grid-column:1/-1;display:flex;gap:25px;align-items:center;justify-content:space-between;background:#e9ede1}.linux-panel>div>.icon{float:left;margin-right:13px;color:#7a8a68}.linux-panel h2{font-size:23px}.linux-panel p{margin:0;max-width:750px}.linux-panel a{white-space:nowrap}code{font-family:'Cascadia Code',monospace;font-size:11px;background:#e4e9db;padding:2px 5px;border-radius:3px}.empty{text-align:center;padding:70px 25px;color:#8d967f}.empty>.icon{width:32px;height:32px;color:#b5a678;margin-bottom:15px}.empty h2{font-size:26px;color:#617459}.empty p{font-size:12px;max-width:430px;margin:0 auto 20px}.loading{padding:100px 20px;text-align:center;color:#8c967f}.startup-error{max-width:700px;margin:50px auto}
dialog{border:1px solid #d9ddcd;border-radius:10px;padding:0;background:#fffefa;color:var(--ink);max-width:min(620px,calc(100% - 30px));width:620px;max-height:91vh;box-shadow:0 20px 90px #07140f55}dialog.wide-dialog{width:980px;max-width:min(980px,calc(100% - 30px))}dialog::backdrop{background:#13251ed1;backdrop-filter:blur(4px)}.dialog-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;background:#fffefa;z-index:2;border-bottom:1px solid var(--line);padding:22px 27px}.dialog-header h2{margin:6px 0 0;font-size:27px}.dialog-header .eyebrow{font-size:8px}.dialog-header .close-dialog{font-size:26px;line-height:1;padding:0 7px}.dialog-body{padding:27px}.dialog-footer{position:sticky;bottom:0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 27px;background:#fffefa;z-index:2}.dialog-footer>div{display:flex;align-items:center;gap:9px}.dialog-footer button{font-size:11px}.dialog-footer small{font-size:9px;color:#959c85}.form-error{color:#ad513b;font-size:12px;margin:0;padding:0 27px 10px;background:#fffefa}.form-error:empty{padding:0}.field{display:block;margin-bottom:18px}.field>span{display:block;font-size:11px;font-weight:500;color:#6a795f;margin-bottom:7px}.field input,.field select,.field textarea{display:block;width:100%;border:1px solid #d9ddcf;border-radius:5px;background:#fcfcf7;padding:10px 12px;font-size:12px;color:#3c4e36}.field input[type=file]{font-size:10px;padding:8px}.field textarea{resize:vertical;line-height:1.8}.field input[type=number]{padding:10px 7px}.field small{display:block;font-size:9px;color:#959b87;margin-top:6px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.attribute-form{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:15px}.attribute-form .field{margin-bottom:6px}.attribute-form+small{display:block;margin-bottom:22px;font-size:10px}.character-checks{border:1px solid var(--line);border-radius:6px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px}.character-checks legend{font-size:11px;color:#7b8c70;padding:0 6px}.character-checks label{display:flex;align-items:center;gap:6px;font-size:11px}.character-checks input{accent-color:var(--green)}.full-character{display:grid;grid-template-columns:350px minmax(0,1fr);gap:28px}.full-card{width:100%;height:auto;border-radius:5px;box-shadow:0 5px 15px #22301812}.full-card.initials{height:400px;font:80px var(--serif)}.full-character h3{font-family:var(--serif);font-size:22px;font-weight:400;margin-top:24px}.full-character .prose{font-size:12px}.full-character .section-line .badge{font-size:9px}.full-character .section-line button{font-size:10px;white-space:nowrap}.facts{display:grid;grid-template-columns:70px 1fr;font-size:11px;margin:20px 0;row-gap:10px}.facts dt{color:#8f9780}.facts dd{margin:0}.attribute-display{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:0 0 17px}.attribute-display>div{background:#edf0e5;border-radius:4px;padding:6px 9px}.attribute-display small{display:block;font-size:8px;color:#8b957d}.attribute-display strong{font-size:11px;font-weight:500}.master-note{background:#f0edde;border:1px solid #e4dbc1;border-left:3px solid #baa06a;padding:15px;border-radius:4px;font-size:12px;margin:15px 0;color:#7b765c}.master-note p{margin:7px 0 0}.chapter-link{display:flex;justify-content:flex-start;font-size:11px;width:100%;margin:6px 0;text-align:left}.chapter-link .icon{width:14px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.help-grid h3{font:23px var(--serif);margin:5px 0 12px}.help-grid p{font-size:12px;color:#7a846e}#toast{position:fixed;bottom:25px;left:calc(50% + 112px);transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:1000;background:#243f2d;color:#fff8df;border:1px solid #78906a;border-radius:7px;padding:13px 20px;font-size:12px;box-shadow:0 6px 25px #07180c20;max-width:min(650px,90vw);transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{background:#8d4236;border-color:#b96f55}#hover-card{position:fixed;width:250px;background:#18291f;color:#e7ddc0;border:1px solid #c0a16b;border-radius:7px;padding:8px;z-index:80;box-shadow:0 6px 22px #07100f55;pointer-events:none}#hover-card[hidden]{display:none}#hover-card img{width:100%;max-height:345px;object-fit:contain;background:#101912;border-radius:3px}#hover-card strong{display:block;font:20px var(--serif);margin:8px 4px 4px}#hover-card small{font-size:10px;display:block;margin:3px 4px 6px;color:#b8bfaa}
@media(min-width:1700px){.atlas-layout{grid-template-columns:minmax(0,1fr) 310px}.portrait-button{height:300px}.map-viewport{max-height:850px}.inspector p{font-size:12px}.summary-preview{-webkit-line-clamp:5}.map-token{width:44px;height:44px}}
@media(max-width:1250px){#sidebar{width:195px;padding:25px 14px}#nav a.active:before{left:-14px}.brand{gap:6px}.brand>span{font-size:22px}.brand img{width:34px}#shell{margin-left:195px}.topbar{padding:0 23px}main{padding:27px 23px}.atlas-layout{grid-template-columns:minmax(0,1fr) 235px;gap:15px}.atlas-toolbar{align-items:flex-start;flex-wrap:wrap}.zoom-controls{margin-left:auto}.portrait-button{height:235px}.map-token{width:30px;height:30px}.map-token .initials{font-size:8px;line-height:26px}.crown{left:5px}.map-footnote{font-size:8px;flex-wrap:wrap}.stats-grid a{padding:13px}.stats-grid{gap:9px}.stats-grid a>span{font-size:7px;letter-spacing:.8px}.campaign-strip .muted{display:none}.chapter-layout{grid-template-columns:220px minmax(0,1fr);gap:17px}.chapter-paper{padding:26px}.full-character{grid-template-columns:310px 1fr}#toast{left:calc(50% + 97px)}}
@media(max-width:1000px){.atlas-layout{grid-template-columns:minmax(0,1fr)}.inspector{display:none}.map-viewport{max-height:720px}.map-token{width:38px;height:38px}.map-token .initials{font-size:9px;line-height:34px}.crown{left:9px}.record-grid,.settings-grid,.tournament-layout{grid-template-columns:1fr}.linux-panel{display:block}.linux-panel a{margin-top:20px}.full-character{grid-template-columns:280px 1fr}.character-grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr))}.chapter-layout{grid-template-columns:1fr}.chapter-index{display:flex;overflow:auto;gap:10px;padding:0}.chapter-index>.eyebrow{display:none}.chapter-item{min-width:200px;width:200px}.below-grid{grid-template-columns:1fr 1fr}.page-heading{gap:12px}h1{font-size:32px}.page-heading p{font-size:11px}}
@media(max-width:760px){#sidebar{transform:translateX(-100%);transition:transform .2s;width:224px;box-shadow:5px 0 30px #13211830}.menu-open #sidebar{transform:translateX(0)}#shell{margin:0}.topbar{height:58px;padding:0 17px;position:sticky;top:0;z-index:20}#breadcrumb{max-width:45%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:9px}.top-actions{gap:8px}#save-state{font-size:8px;max-width:160px}.top-actions button{padding:6px;font-size:10px}#mobile-menu{display:inline-flex}.page-heading{margin-bottom:20px;align-items:flex-start}.page-heading h1{font-size:30px}.heading-actions button{font-size:0;padding:11px}.heading-actions .icon{width:18px;height:18px}main{padding:25px 16px}.campaign-strip{font-size:10px;flex-wrap:wrap;gap:8px}.date-pill{font-size:9px}.atlas-toolbar{padding:10px}.toolbar-start{gap:5px}.toolbar-start select{max-width:165px}.map-caption{font-size:8px;padding:12px 10px;white-space:normal;max-width:94%;transform:translateY(-21px)}.map-caption .icon{display:none}.map-token{width:29px;height:29px}.map-token .initials{line-height:25px;font-size:7px}.crown{left:5px;top:-11px;font-size:13px}.map-footnote span:last-child{display:none}.stats-grid{gap:8px;margin-top:12px}.stats-grid a{padding:12px 9px}.stats-grid a>span{font-size:7px;letter-spacing:.4px}.stats-grid .icon{display:none}.stats-grid strong{font-size:27px}.stats-grid small{font-size:8px}.below-grid{grid-template-columns:1fr;gap:14px;margin-top:17px}.panel{padding:20px}.list-toolbar{align-items:flex-start;flex-direction:column}.search-box{width:100%}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.character-cover{height:210px}.card-content{padding:13px}.card-content h2{font-size:21px}.card-content>small{font-size:7px}.card-rank{font-size:8px;bottom:8px;right:8px;padding:3px 5px}.card-footer span{font-size:8px}.card-footer button{font-size:9px}.card-summary{font-size:10px;height:54px}.chapter-paper{padding:25px 21px}.chapter-paper h2{font-size:29px}.chapter-paper>.prose{font-size:16px}.record-card h2{font-size:24px}.record-card .prose{font-size:12px}#shell>footer{margin:0 16px;flex-wrap:wrap;gap:5px 12px;padding:12px 0;font-size:8px}#shell>footer button{width:100%;margin:0;font-size:9px}.full-character{grid-template-columns:1fr}.full-character>div:first-child{max-width:330px;margin:auto}.full-character .section-line{margin-top:0}.dialog-header{padding:17px 20px}.dialog-header h2{font-size:24px}.dialog-body{padding:20px}.dialog-footer{padding:14px 18px;align-items:flex-start}.dialog-footer>div{flex-wrap:wrap}.dialog-footer small{display:none}.dialog-footer button{font-size:10px;padding:9px 10px}.form-two{gap:0 12px}.character-checks{grid-template-columns:1fr 1fr}.attribute-form{gap:6px}.attribute-form .field>span{font-size:8px}.attribute-form .field input{font-size:10px}.help-grid{grid-template-columns:1fr;gap:12px}#toast{left:50%}.button-row{gap:8px}.linux-panel a{white-space:normal}.form-two .field>span{font-size:10px}.map-viewport{min-height:200px}.record-grid{gap:13px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Regional atlas: image and polygon share the same normalized coordinate space. */
.atlas-context{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f9f8f0;border-bottom:1px solid var(--line);padding:12px 14px;font-size:10px;color:#7a846e}.atlas-context>div{display:flex;align-items:center;gap:10px;min-width:0}.atlas-context strong{font-size:10px;font-weight:550}.atlas-context .text-button{font-size:10px}.atlas-context .eyebrow{font-size:8px}.context-separator{color:#c2c5b6}.region-layer,.drawing-layer{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible}.region-layer{pointer-events:none}.region-layer polygon{pointer-events:all;cursor:pointer;fill:#e6cf85;fill-opacity:.005;stroke:#e6cf85;stroke-width:.12;stroke-opacity:.35;vector-effect:non-scaling-stroke;transition:fill-opacity .15s,stroke-opacity .15s}.region-layer polygon:hover,.region-layer polygon:focus-visible{fill-opacity:.22;stroke:#fff0a0;stroke-width:2;stroke-opacity:1;outline:none}.region-layer polygon:focus-visible{stroke-dasharray:7 3}.region-count{position:absolute;z-index:2;transform:translate(-50%,-190%);border:1px solid #d7c17b;background:#193d2dde;color:#f5e4b6;line-height:1.2;padding:5px 8px;gap:5px;border-radius:14px;font-size:10px;box-shadow:0 2px 5px #18201350}.region-count .icon{width:12px;height:12px}.region-count:hover{background:#2d5740;color:#fff7ce;border-color:#fff1ad}.drawing-layer{pointer-events:none;z-index:6}.drawing-layer polygon{fill:#e7cb72;fill-opacity:.2;stroke:#fff0ab;stroke-width:.3;stroke-dasharray:1 .5}.drawing-layer circle{fill:#f9f1c9;stroke:#3a502a;stroke-width:.12}.is-drawing{cursor:crosshair}.drawing-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;background:#e9ebdc;color:#647257;padding:12px;font-size:10px;border-bottom:1px solid #c5cfb9}.drawing-toolbar>div{display:flex;gap:7px}.drawing-toolbar button{font-size:9px;padding:6px 9px}.region-strip{display:flex;gap:10px;overflow-x:auto;padding:12px 0 5px;scrollbar-width:thin}.region-tile{flex:0 0 210px;padding:7px;text-align:left;justify-content:flex-start;gap:9px}.region-tile img{width:65px;height:47px;object-fit:cover;border-radius:3px}.region-tile>span{min-width:0}.region-tile strong{display:block;font-size:10px;font-weight:550;line-height:1.4}.region-tile small{display:block;font-size:8px;color:#8c977e;margin-top:4px}.active-region{margin-top:15px;background:#fbfaf2;padding:21px}.active-region .section-line{margin-bottom:10px;flex-wrap:wrap}.active-region h2{font-size:24px;margin:6px 0}.active-region p{font-size:12px;color:#728065;line-height:1.8}.active-region h3{font-size:10px;letter-spacing:.3px;margin:9px 0}.region-members{display:flex;gap:7px;flex-wrap:wrap}.character-region{font-size:9px;color:#a1834c;border-left:2px solid #c9b37d;padding-left:8px;margin:10px 0}.region-filter select{font-size:11px;color:#5b7150;border:1px solid var(--line);border-radius:5px;background:var(--panel);padding:11px 9px;max-width:245px}.regions-settings{grid-column:1/-1}.region-setting-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.region-setting-row>.text-button{flex:1;font-size:12px;margin:0!important}.region-setting-row>span{font-size:10px;color:#959d87}.region-setting-row>button:last-child{font-size:10px}.region-advanced{margin:15px 0}.region-advanced>summary{cursor:pointer;font-size:12px;color:#7e8d6f;padding:12px 0}.region-advanced .character-checks{max-height:280px;overflow:auto}.region-hover{width:310px!important}.region-hover>img{width:100%;height:140px;max-height:140px!important;object-fit:cover!important}.region-hover>p{font-size:11px;line-height:1.75;color:#c5cfb4;padding:0 5px;margin:9px 0}.region-hover>strong{font-size:21px!important;line-height:1.3}.hover-cta{font-size:9px;letter-spacing:.5px;color:#d2b978;border-top:1px solid #3e5037;padding:10px 5px 2px}.map-token{z-index:4}.map-token.selected{z-index:5}.map-token:hover{z-index:8}
@media(max-width:760px){.atlas-context{flex-wrap:wrap;align-items:flex-start;padding:10px}.atlas-context>div{flex-wrap:wrap;gap:6px}.atlas-context strong{font-size:9px}.atlas-context .text-button{font-size:9px}.atlas-context>.text-button{margin-left:auto}.region-count{font-size:8px;padding:4px 6px;transform:translate(-50%,-180%)}.region-count .icon{width:9px;height:9px}.region-tile{flex-basis:190px}.drawing-toolbar{flex-direction:column;align-items:flex-start}.drawing-toolbar>div{flex-wrap:wrap}.active-region{padding:17px}.active-region h2{font-size:23px}.region-hover{width:min(285px,90vw)!important}.region-hover>img{height:110px;max-height:110px!important}.region-hover>p{font-size:10px}.region-filter{width:100%}.region-filter select{max-width:none;width:100%}.region-setting-row>.text-button{font-size:10px}.region-setting-row>span{font-size:8px}.regions-settings .section-line{flex-wrap:wrap}}
