:root{--ink:#1a1815;--muted:#716b62;--paper:#f7f3ea;--panel:#fffaf0;--panel-strong:#fff5df;--line:#ded3bf;--green:#3f6f5a;--green-dark:#27483c;--blue:#2f5d7c;--red:#a84736;--shadow:0 18px 55px rgba(41,31,18,0.18)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}.button,.icon-button{align-items:center;border:1px solid transparent;display:inline-flex;justify-content:center;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.button{border-radius:8px;gap:8px;min-height:42px;padding:0 16px;text-decoration:none;white-space:nowrap}.button:not(:disabled):hover,.icon-button:not(:disabled):hover{transform:translateY(-1px)}.button.primary{background:var(--green-dark);color:#fffaf0}.button.secondary{background:#ffffff;border-color:var(--line);color:var(--ink)}.button.danger{background:var(--red);color:#fffaf0}.icon-button{background:#fffaf0;border-color:var(--line);border-radius:8px;color:var(--ink);height:38px;min-width:38px;padding:0 10px;text-decoration:none}.icon-button.danger{color:var(--red)}.icon-button.is-active{background:rgba(63,111,90,.12);border-color:rgba(63,111,90,.24);color:var(--green-dark)}.bgg-icon{border-radius:4px;display:block;height:16px;width:16px}.bgg-attribution{align-items:center;display:inline-flex;line-height:0;text-decoration:none}.bgg-attribution:hover{opacity:.82}.bgg-powered-logo{display:block;height:24px;width:auto}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.error-text{color:var(--red);font-size:14px;margin:12px 0 0}.home-shell{align-items:center;display:flex;min-height:100vh;overflow:hidden;padding:clamp(28px,5vw,72px);position:relative}.home-shell:before{background:linear-gradient(90deg,rgba(247,243,234,.98),rgba(247,243,234,.84) 30%,rgba(247,243,234,.36) 58%,rgba(26,24,21,.18)),linear-gradient(180deg,rgba(26,24,21,.1),rgba(26,24,21,.42));content:"";inset:0;pointer-events:none;position:absolute;z-index:0}.brand-hero-picture{display:block;inset:0;overflow:hidden;position:absolute}.home-shell .brand-hero-picture{z-index:-1}.brand-hero-image{display:block;height:100%;object-fit:cover;object-position:center;width:100%}.bgg-credit,.home-panel{position:relative;z-index:1}.home-panel{color:var(--ink);display:grid;grid-gap:22px;gap:22px;max-width:min(620px,92vw);padding:clamp(12px,2vw,24px) 0}.home-topline{margin-bottom:clamp(14px,2.6vw,30px)}.home-kicker{align-items:center;color:#315f50;display:inline-flex;font-size:13px;font-weight:800;gap:8px;letter-spacing:.08em;text-transform:uppercase}.home-panel h1{font-size:clamp(54px,8.6vw,112px);letter-spacing:0;line-height:.9;margin:0;max-width:620px;text-wrap:balance}.home-copy{color:#4f493f;font-size:clamp(17px,1.55vw,22px);line-height:1.72;margin:0;max-width:500px}.access-form label,.field-control span{color:var(--muted);display:block;font-size:12px;font-weight:700;margin-bottom:8px}.access-row{display:flex;gap:10px}.access-row input{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);flex:1 1;font-size:22px;min-width:0;padding:11px 14px}.home-actions{align-items:center;display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}.language-select{align-items:center;color:var(--muted);display:inline-flex;gap:8px}.language-select span{font-size:12px;font-weight:700}.language-select select{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:38px;padding:0 10px}.bgg-credit{bottom:22px;color:var(--muted);font-size:13px;position:fixed;right:28px}.auth-shell,.boards-shell{min-height:100vh;padding:42px}.auth-shell{align-items:center;display:flex;justify-content:center;overflow:hidden;position:relative}.auth-shell:before{background:linear-gradient(90deg,rgba(247,243,234,.92),rgba(247,243,234,.72));filter:saturate(.92)}.auth-shell:after,.auth-shell:before{content:"";inset:0;position:absolute;z-index:1}.auth-shell:after{background:radial-gradient(circle at 50% 50%,rgba(255,250,240,.26),transparent 38%),linear-gradient(180deg,rgba(26,24,21,.08),rgba(26,24,21,.22))}.auth-shell .brand-hero-picture{filter:saturate(.92);z-index:0}.auth-panel{background:rgba(255,250,240,.9);border:1px solid rgba(222,211,191,.86);border-radius:8px;box-shadow:0 28px 84px rgba(41,31,18,.22);display:grid;grid-gap:18px;gap:18px;max-width:440px;padding:30px;position:relative;z-index:2;width:100%}.auth-shell .bgg-credit{z-index:2}.auth-panel h1,.boards-empty h2,.boards-header h1{margin:0}.auth-panel p,.board-list-card p,.boards-header p{color:var(--muted);line-height:1.5;margin:0}.auth-form{display:grid;grid-gap:14px;gap:14px}.auth-form label{display:grid;grid-gap:7px;gap:7px}.auth-form span{color:var(--muted);font-size:12px;font-weight:800}.auth-form input{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:42px;outline:0;padding:0 12px}.auth-form small{color:var(--muted);font-size:12px;line-height:1.4}.auth-code-row{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto}.auth-switch{font-size:14px}.auth-switch a{color:var(--green-dark);font-weight:800}.boards-shell{display:grid;grid-gap:22px;gap:22px;grid-template-rows:auto auto 1fr}.boards-header{align-items:center;display:flex;gap:18px;justify-content:space-between}.board-list-actions,.boards-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.boards-limit-hint{color:var(--muted);font-size:13px;font-weight:700;margin:-8px 0 0}.boards-grid{align-content:start;align-items:start;display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.board-list-card,.boards-empty{align-content:start;background:rgba(255,250,240,.88);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px rgba(41,31,18,.1);display:grid;grid-gap:18px;gap:18px;min-height:172px;padding:18px}.board-list-card h2{font-size:20px;margin:0 0 6px}.copy-hint{color:var(--green-dark);font-size:12px;font-weight:800}.toolbar-copy-hint{align-self:center}.boards-empty{align-items:center;color:var(--muted);justify-items:start}.admin-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.admin-sidebar{background:#1f2d28;color:#fffaf0;display:grid;grid-gap:22px;gap:22px;grid-template-rows:auto 1fr auto;padding:24px}.admin-account,.admin-brand,.admin-sidebar nav a{align-items:center;display:flex;gap:10px}.admin-brand,.admin-sidebar nav a{border-radius:8px;text-decoration:none}.admin-brand{font-size:18px;font-weight:900}.admin-sidebar nav{display:grid;grid-gap:8px;gap:8px;align-content:start}.admin-sidebar nav a{color:rgba(255,250,240,.86);padding:11px 12px}.admin-sidebar nav a:hover{background:rgba(255,250,240,.1)}.admin-account{align-items:flex-start;flex-direction:column;font-size:13px}.admin-account span{color:rgba(255,250,240,.62)}.admin-main{display:grid;grid-gap:22px;gap:22px;padding:30px}.admin-filter-bar,.admin-page-header,.admin-sticky-actions{align-items:center;display:flex;gap:14px;justify-content:space-between}.admin-edit-section h2,.admin-feature-card h2,.admin-list-card h2,.admin-page-header h1,.admin-table-card h2{margin:0}.admin-feature-card p,.admin-page-header p,.admin-readonly-text{color:var(--muted);line-height:1.5;margin:6px 0 0}.admin-analytics-grid,.admin-card-grid,.admin-metric-grid{display:grid;grid-gap:14px;gap:14px}.admin-card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.admin-detail-hero,.admin-edit-section,.admin-feature-card,.admin-list-card,.admin-metric-card,.admin-table-card{background:rgba(255,250,240,.9);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px rgba(41,31,18,.08);padding:18px}.admin-feature-card{color:inherit;display:grid;grid-gap:10px;gap:10px;text-decoration:none}.admin-feature-card input[type=file]{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--muted);min-height:42px;padding:9px 11px;width:100%}.admin-filter-bar{background:rgba(255,250,240,.86);border:1px solid var(--line);border-radius:8px;justify-content:flex-start;padding:14px}.admin-filter-bar label,.admin-form-grid label,.term-grid label{display:grid;grid-gap:7px;gap:7px}.admin-filter-bar span,.admin-form-grid span,.term-grid span{color:var(--muted);font-size:12px;font-weight:800}.admin-filter-bar input,.admin-filter-bar select,.admin-form-grid input,.admin-form-grid textarea,.admin-wide-textarea,.term-grid input{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:42px;outline:0;padding:9px 11px}.admin-filter-bar input{min-width:min(340px,42vw)}.admin-table-card{overflow:auto}.admin-pagination{align-items:center;background:rgba(255,250,240,.86);border:1px solid var(--line);border-radius:8px;display:flex;gap:14px;justify-content:space-between;padding:12px 14px}.admin-pagination span{color:var(--muted);font-size:13px;font-weight:800}.admin-pagination div{align-items:center;display:flex;gap:8px}.admin-table{border-collapse:collapse;min-width:920px;width:100%}.admin-table td,.admin-table th{border-bottom:1px solid rgba(222,211,191,.72);padding:12px 10px;text-align:left;vertical-align:top}.admin-table th{color:var(--muted);font-size:12px;white-space:nowrap}.admin-table td span{color:var(--muted);display:block;font-size:12px;margin-top:4px}.admin-inline-control{align-items:center;display:flex;gap:8px}.admin-inline-control input{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:36px;padding:7px 9px;width:72px}.admin-inline-control .button{min-height:36px;padding:0 10px;white-space:nowrap}.admin-detail-hero{display:grid;grid-gap:18px;gap:18px;grid-template-columns:180px minmax(0,1fr)}.admin-cover-preview{align-items:center;background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;display:flex;justify-content:center;min-height:220px;overflow:hidden}.admin-cover-preview img{display:block;max-height:280px;max-width:100%;object-fit:contain}.admin-stat-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));margin-bottom:12px}.admin-metric-card,.admin-stat-grid div{display:grid;grid-gap:5px;gap:5px}.admin-metric-card span,.admin-stat-grid span{color:var(--muted);font-size:12px}.admin-metric-card strong,.admin-stat-grid strong{font-size:22px}.admin-edit-section,.admin-game-detail{display:grid;grid-gap:16px;gap:16px}.admin-form-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-form-grid textarea,.admin-wide-textarea{min-height:96px;resize:vertical}.admin-wide-textarea{width:100%}.term-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.admin-sticky-actions{background:rgba(247,243,234,.86);bottom:0;justify-content:flex-end;padding:12px 0;position:-webkit-sticky;position:sticky}.success-text{color:var(--green-dark);font-size:14px;font-weight:800;margin:0}.admin-metric-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.admin-analytics-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.admin-list-card ul{display:grid;grid-gap:10px;gap:10px;list-style:none;margin:12px 0 0;padding:0}.admin-list-card li{align-items:center;border-bottom:1px solid rgba(222,211,191,.72);display:flex;gap:12px;justify-content:space-between;padding-bottom:10px}.admin-list-card li span:last-child{color:var(--muted);font-size:12px;white-space:nowrap}.board-dialog{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:16px;gap:16px;max-width:420px;padding:22px;width:min(420px,100%)}.board-dialog h2,.board-dialog p{margin:0}.board-dialog p{color:var(--muted);line-height:1.5}.board-dialog-form{display:grid;grid-gap:16px;gap:16px}.board-dialog-form label{display:grid;grid-gap:7px;gap:7px}.board-dialog-form span{color:var(--muted);font-size:12px;font-weight:800}.board-dialog-form input{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:42px;outline:0;padding:0 12px}.account-dialog{max-height:min(760px,calc(100vh - 44px));max-width:560px;overflow:auto;width:min(560px,100%)}.account-dialog-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.account-dialog-header h2,.account-section h3{margin:0}.account-dialog-header .icon-button{flex:0 0 auto}.account-section{border-top:1px solid rgba(222,211,191,.8);display:grid;grid-gap:12px;gap:12px;padding-top:16px}.account-section label{display:grid;grid-gap:7px;gap:7px}.account-section span{color:var(--muted);font-size:12px;font-weight:800}.account-section input{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:42px;outline:0;padding:0 12px}.danger-zone{background:rgba(166,65,48,.06);border:1px solid rgba(166,65,48,.2);border-radius:8px;padding:16px}.danger-zone h3{color:var(--red)}.dialog-actions{align-items:center;display:flex;gap:10px;justify-content:flex-end}.board-shell{display:grid;grid-template-rows:auto 1fr auto;height:100vh;overflow:hidden}.board-toolbar{align-items:center;background:rgba(255,250,240,.94);border-bottom:1px solid var(--line);display:flex;gap:18px;justify-content:space-between;padding:14px 18px;position:relative;z-index:10}.toolbar-actions,.toolbar-left{align-items:center;display:flex;gap:10px}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end}.shortcut-help{position:relative}.shortcut-panel{background:rgba(255,250,240,.98);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);color:var(--ink);display:grid;grid-gap:14px;gap:14px;min-width:310px;padding:16px;position:absolute;right:0;top:calc(100% + 10px);z-index:80}.shortcut-group h3,.shortcut-panel-heading h2{margin:0}.shortcut-panel-heading h2{font-size:15px}.shortcut-group{display:grid;grid-gap:8px;gap:8px}.shortcut-group h3{color:var(--muted);font-size:12px}.shortcut-list{display:grid;grid-gap:6px;gap:6px}.shortcut-row{align-items:center;display:flex;gap:16px;justify-content:space-between;min-height:24px}.shortcut-row span:first-child{font-size:13px;font-weight:700}.shortcut-keys{display:inline-flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.shortcut-panel kbd,.template-tool-item kbd{align-items:center;background:#fff;border:1px solid var(--line);border-bottom:1px solid rgba(26,24,21,.22);border-radius:5px;box-shadow:0 1px 0 rgba(26,24,21,.1);color:var(--ink);display:inline-flex;font-family:inherit;font-size:11px;font-weight:800;justify-content:center;line-height:1;min-height:20px;min-width:22px;padding:0 6px}.title-block{display:grid;grid-gap:4px;gap:4px}.title-block span{color:var(--muted);font-size:12px}.title-input{background:transparent;border:0;border-bottom:1px solid transparent;color:var(--ink);font-size:20px;font-weight:800;max-width:min(42vw,420px);outline:0;padding:0}.title-input:focus{border-bottom-color:var(--green)}.zoom-pill{color:var(--muted);font-size:13px;min-width:48px;text-align:center}.canvas-stage{background:linear-gradient(rgba(63,111,90,.08) 1px,transparent 0),linear-gradient(90deg,rgba(63,111,90,.08) 1px,transparent 0),#ede5d6;background-size:38px 38px;cursor:-webkit-grab;cursor:grab;overflow:hidden;position:relative;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;z-index:0}.canvas-stage.is-panning{cursor:-webkit-grabbing;cursor:grabbing}.canvas-stage.is-tool-active{cursor:crosshair}.canvas-grid{background:radial-gradient(circle at 12px 12px,rgba(26,24,21,.12) 1px,transparent 1.5px),transparent;background-size:76px 76px;inset:0;opacity:.75;pointer-events:none;position:absolute}.canvas-layer{left:0;position:absolute;top:0;transform-origin:0 0}.canvas-tool-rail{background:rgba(255,250,240,.96);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:6px;gap:6px;left:18px;padding:7px;position:fixed;top:92px;z-index:45}.tool-button{align-items:center;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--ink);display:inline-flex;height:38px;justify-content:center;width:38px}.tool-button.is-active,.tool-button:hover{background:rgba(63,111,90,.12);border-color:rgba(63,111,90,.2)}.tool-button.is-active{color:var(--green-dark)}.template-tool-wrapper{position:relative}.template-tool-menu{background:rgba(255,250,240,.98);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:4px;gap:4px;left:calc(100% + 10px);min-width:168px;padding:6px;position:absolute;top:0}.template-tool-item{align-items:center;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--ink);display:grid;grid-gap:8px;gap:8px;grid-template-columns:20px minmax(0,1fr) auto;min-height:34px;padding:7px 9px;text-align:left;white-space:nowrap}.template-tool-item.is-active,.template-tool-item:hover{background:rgba(63,111,90,.12);border-color:rgba(63,111,90,.2)}.template-tool-item.is-active{color:var(--green-dark)}.template-tool-item span{overflow:hidden;text-overflow:ellipsis}.tool-rail-separator{background:var(--line);height:1px;margin:3px 4px}.board-minimap{background:rgba(255,250,240,.94);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:6px;gap:6px;padding:8px;position:fixed;right:18px;top:92px;width:198px;z-index:44}.board-minimap-title{color:var(--muted);font-size:11px;font-weight:850;letter-spacing:0}.board-minimap-map{cursor:-webkit-grab;cursor:grab;display:block;height:126px;touch-action:none;width:180px}.board-minimap-map:active{cursor:-webkit-grabbing;cursor:grabbing}.board-minimap-bg{fill:rgba(238,229,211,.82)}.board-minimap-annotation{fill:rgba(63,111,90,.22);stroke:rgba(63,111,90,.44);stroke-width:1}.board-minimap-card{fill:rgba(26,24,21,.58)}.board-minimap-viewport{fill:rgba(255,250,240,.28);stroke:#b44934;stroke-width:2}.annotation-stylebar{align-items:center;background:rgba(255,250,240,.96);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:flex;gap:9px;left:74px;min-height:48px;padding:7px 8px;position:fixed;top:92px;z-index:46}.snap-guide{background:rgba(180,73,52,.86);box-shadow:0 0 0 1px rgba(255,250,240,.75);pointer-events:none;position:absolute;z-index:90000}.snap-guide-horizontal{min-height:1px}.snap-guide-vertical{min-width:1px}.stylebar-group{gap:5px}.stylebar-group,.topn-style-control{align-items:center;border-right:1px solid var(--line);display:inline-flex;padding-right:9px}.topn-style-control{color:var(--muted);font-size:12px;font-weight:850;gap:6px;white-space:nowrap}.topn-style-control input{background:#fff;border:1px solid var(--line);border-radius:7px;color:var(--ink);font:inherit;height:30px;padding:0 6px;width:56px}.topn-style-control.compact input{width:46px}.color-swatch{background:var(--swatch-color);border:2px solid rgba(255,250,240,.92);border-radius:999px;box-shadow:0 0 0 1px rgba(26,24,21,.18);height:20px;padding:0;width:20px}.color-swatch.is-active{box-shadow:0 0 0 1px rgba(26,24,21,.18),0 0 0 4px rgba(63,111,90,.16)}.style-chip{background:#fff;border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:12px;font-weight:800;min-height:30px;min-width:30px;padding:0 8px}.style-chip.wide{min-width:48px}.style-chip.is-active{background:var(--green-dark);border-color:var(--green-dark);color:#fffaf0}.icon-button.compact{border-radius:7px;height:30px;min-width:30px;padding:0}.annotation-object{position:absolute;transform-origin:0 0;-moz-user-select:none;user-select:none;-webkit-user-select:none}.annotation-object,.annotation-object.is-selected{z-index:var(--layer-z-index,20)}.annotation-box{background:var(--annotation-fill);border:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);border-radius:8px;color:var(--annotation-stroke);cursor:-webkit-grab;cursor:grab;overflow:visible}.annotation-box:active,.annotation-line-object:active{cursor:-webkit-grabbing;cursor:grabbing}.annotation-section,.annotation-sticky,.annotation-text{border-color:transparent}.annotation-text{background:transparent;min-height:34px}.annotation-sticky{box-shadow:0 14px 30px rgba(35,27,16,.14)}.annotation-section{border-color:rgba(63,111,90,.26);z-index:0}.annotation-rectangle{background:var(--annotation-fill);z-index:0}.annotation-text-content{font-size:var(--annotation-font-size);font-weight:800;height:100%;line-height:1.25;overflow:hidden;padding:10px 12px;-moz-user-select:none;user-select:none;-webkit-user-select:none;white-space:pre-wrap}.annotation-text-content::selection{background:transparent}.annotation-text .annotation-text-content{padding:0}.annotation-section .annotation-text-content{font-size:var(--annotation-font-size);letter-spacing:0;padding:14px 16px}.annotation-text-editor{background:rgba(255,250,240,.95);border:1px solid rgba(26,24,21,.2);border-radius:7px;color:var(--annotation-stroke);font-size:var(--annotation-font-size);font-weight:800;height:100%;line-height:1.25;outline:0;padding:10px 12px;resize:none;-moz-user-select:text;user-select:text;-webkit-user-select:text;width:100%}.annotation-line-object{cursor:-webkit-grab;cursor:grab;min-height:1px;min-width:1px;overflow:visible}.annotation-line-object:before{content:"";inset:-9px;position:absolute}.annotation-line-svg{display:block;height:100%;overflow:visible;pointer-events:none;width:100%}.annotation-line-svg line{stroke:var(--annotation-stroke);stroke-linecap:round;stroke-width:var(--annotation-line-width)}.annotation-line-svg marker path{fill:var(--annotation-stroke)}.annotation-quadrant-object{color:var(--annotation-stroke);cursor:-webkit-grab;cursor:grab;overflow:visible}.annotation-quadrant-object:active{cursor:-webkit-grabbing;cursor:grabbing}.annotation-quadrant-svg{display:block;height:100%;inset:0;overflow:visible;pointer-events:none;position:absolute;width:100%}.annotation-quadrant-svg line{stroke:var(--annotation-stroke);stroke-linecap:round;stroke-width:var(--annotation-line-width)}.annotation-quadrant-svg marker path{fill:var(--annotation-stroke)}.annotation-quadrant-svg text{fill:var(--annotation-stroke);font-size:calc(var(--annotation-font-size) * .72);font-weight:900;letter-spacing:0}.annotation-hot-object{cursor:-webkit-grab;cursor:grab;overflow:visible}.annotation-hot-object:active{cursor:-webkit-grabbing;cursor:grabbing}.hot-tier-table{background:#c8c8c8;border:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);display:grid;grid-template-rows:repeat(5,minmax(0,1fr));height:100%;overflow:hidden;width:100%}.hot-tier-row{display:grid;grid-template-columns:var(--hot-label-width) minmax(0,1fr);min-height:0}.hot-tier-row+.hot-tier-row{border-top:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke)}.hot-tier-label{align-items:center;border-right:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);color:#000;display:flex;font-size:var(--hot-label-font-size);font-weight:650;justify-content:center;letter-spacing:0;line-height:1;min-width:0;overflow:hidden;padding:0 10px;white-space:nowrap}.hot-tier-label.hot{background:#ee2f24}.hot-tier-label.top{background:#f4ca45}.hot-tier-label.elite{background:#fff600}.hot-tier-label.npc{background:#f7eed0}.hot-tier-label.lame{background:#f7f7f7}.hot-tier-list{background:#c8c8c8;min-width:0}.annotation-topn-object{color:var(--annotation-stroke);cursor:-webkit-grab;cursor:grab;overflow:visible}.annotation-table-object:active,.annotation-topn-object:active{cursor:-webkit-grabbing;cursor:grabbing}.annotation-table-object{color:var(--annotation-stroke);cursor:-webkit-grab;cursor:grab;overflow:visible}.topn-grid{background:rgba(255,250,240,.4);border:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);display:grid;grid-template-columns:repeat(var(--topn-columns),minmax(0,1fr));grid-template-rows:repeat(var(--topn-rows),minmax(0,1fr));height:100%;overflow:hidden;width:100%}.topn-cell{align-items:flex-start;background:rgba(255,250,240,.18);border-bottom:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);border-right:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);color:var(--annotation-stroke);display:flex;font-size:var(--annotation-font-size);font-weight:900;justify-content:flex-start;letter-spacing:0;line-height:1;min-height:0;min-width:0;padding:10px 12px}.topn-cell span{background:rgba(255,250,240,.82);border:1px solid rgba(26,24,21,.12);border-radius:999px;padding:5px 9px}.table-grid{background:rgba(255,250,240,.24);border:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);display:grid;grid-template-columns:repeat(var(--table-columns),minmax(0,1fr));grid-template-rows:repeat(var(--table-rows),minmax(0,1fr));height:100%;overflow:hidden;width:100%}.table-cell{border-bottom:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);border-right:calc(var(--annotation-line-width) * 1px) solid var(--annotation-stroke);min-height:0;min-width:0}.quadrant-text-cell{color:var(--annotation-stroke);display:flex;flex-direction:column;font-size:var(--annotation-font-size);font-weight:850;height:calc(50% - var(--quadrant-cell-inset) - var(--quadrant-axis-gap));justify-content:flex-start;line-height:1.2;min-height:0;position:absolute;width:calc(50% - var(--quadrant-cell-inset) - var(--quadrant-axis-gap))}.quadrant-text-cell.top-left{left:var(--quadrant-cell-inset);top:var(--quadrant-cell-inset)}.quadrant-text-cell.top-right{right:var(--quadrant-cell-inset);text-align:right;top:var(--quadrant-cell-inset)}.quadrant-text-cell.bottom-left{bottom:var(--quadrant-cell-inset);justify-content:flex-end;left:var(--quadrant-cell-inset)}.quadrant-text-cell.bottom-right{bottom:var(--quadrant-cell-inset);justify-content:flex-end;right:var(--quadrant-cell-inset);text-align:right}.quadrant-text-content{width:100%;min-height:calc(var(--annotation-font-size) * 1.35);overflow:hidden;white-space:pre-wrap}.quadrant-text-editor{background:rgba(255,250,240,.9);border:1px solid rgba(26,24,21,.18);border-radius:7px;color:var(--annotation-stroke);font:inherit;font-weight:850;height:auto;line-height:1.2;max-height:100%;min-height:calc(var(--annotation-font-size) * 3.2);outline:0;padding:8px 10px;resize:none;-moz-user-select:text;user-select:text;-webkit-user-select:text;width:100%}.annotation-line-handle,.annotation-resize-handle,.annotation-width-extend-handle{background:#fffaf0;border:2px solid var(--annotation-stroke);border-radius:999px;height:14px;padding:0;position:absolute;width:14px}.annotation-line-handle{transform:translate(-50%,-50%)}.annotation-resize-handle{bottom:-7px;cursor:nwse-resize;right:-7px}.annotation-width-extend-handle{cursor:ew-resize;right:-7px;top:50%;transform:translateY(-50%)}.annotation-box.is-selected:after,.annotation-hot-object.is-selected:after,.annotation-line-object.is-selected:after,.annotation-table-object.is-selected:after,.annotation-topn-object.is-selected:after{border:1px dashed rgba(26,24,21,.45);border-radius:10px;content:"";inset:-7px;pointer-events:none;position:absolute}.empty-canvas-cta{align-items:center;background:rgba(255,250,240,.9);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);color:var(--ink);display:inline-flex;gap:10px;left:50%;min-height:48px;padding:0 18px;position:absolute;top:50%;transform:translate(-50%,-50%)}.game-card{cursor:-webkit-grab;cursor:grab;position:absolute;transform-origin:0 0;-moz-user-select:none;user-select:none;-webkit-user-select:none;width:176px;z-index:var(--layer-z-index,1)}.game-card:active{cursor:-webkit-grabbing;cursor:grabbing}.game-card:after{content:"";display:none;height:540px;pointer-events:auto;position:absolute;right:-14px;top:-10px;width:14px}.game-card:focus-within,.game-card:hover{z-index:100000}.game-card:focus-within:after,.game-card:hover:after{display:block}.cover-frame{align-items:center;aspect-ratio:var(--cover-aspect-ratio,.72);background:var(--panel-strong);border:1px solid rgba(255,250,240,.8);border-radius:8px;box-shadow:0 18px 36px rgba(35,27,16,.26);display:flex;justify-content:center;overflow:hidden;position:relative}.cover-frame img{display:block;height:100%;object-fit:contain;width:100%}.cover-frame-uniform{background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(255,250,240,.9)),var(--panel-strong)}.cover-placeholder{align-items:center;color:var(--muted);display:flex;flex-direction:column;font-size:13px;gap:10px;height:100%;justify-content:center}.status-badge{background:rgba(26,24,21,.76);border:1px solid rgba(255,250,240,.45);border-radius:999px;bottom:10px;color:#fffaf0;font-size:12px;font-weight:800;left:10px;max-width:calc(100% - 20px);overflow:hidden;padding:5px 9px;position:absolute;text-overflow:ellipsis;white-space:nowrap}.card-caption{display:grid;grid-gap:2px;gap:2px;margin-top:9px}.card-caption strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-caption span{color:var(--muted);font-size:12px}.card-popover{background:rgba(255,250,240,.98);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:12px;gap:12px;left:calc(100% + 14px);max-height:520px;opacity:0;overflow:auto;padding:14px;pointer-events:none;position:absolute;top:0;transform:translateY(8px);transition:opacity .14s ease,transform .14s ease;width:300px;z-index:1001}.game-card:focus-within .card-popover,.game-card:hover .card-popover{opacity:1;pointer-events:auto;transform:translateY(0)}.popover-heading{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.popover-heading-actions{align-items:center;display:flex;flex-shrink:0;gap:6px}.popover-heading strong{display:block;font-size:16px;line-height:1.25}.popover-heading span{color:var(--muted);font-size:12px}.info-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.info-row{display:grid;grid-gap:2px;gap:2px}.info-row span{color:var(--muted);font-size:11px}.info-row strong{font-size:13px;line-height:1.35}.game-description{color:#4d463d;font-size:12px;line-height:1.55;margin:0;max-height:96px;overflow:auto}.field-control{display:grid;grid-gap:6px;gap:6px}.field-control input,.field-control select,.field-control textarea{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);outline:0;padding:9px 10px}.field-control input{min-width:0}.field-control textarea{min-height:78px;resize:vertical}.popover-actions{align-items:center;color:var(--muted);display:flex;gap:10px}.card-context-menu-backdrop{inset:0;position:fixed;z-index:80}.card-context-menu{background:rgba(255,250,240,.98);border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 40px rgba(35,27,16,.22);color:var(--ink);display:grid;grid-gap:4px;gap:4px;min-width:224px;padding:8px;position:fixed}.context-menu-label{color:var(--muted);font-size:11px;font-weight:800;padding:6px 8px 4px}.context-menu-item{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--ink);display:flex;gap:12px;justify-content:space-between;min-height:36px;padding:0 8px;text-align:left}.context-menu-item:hover{background:rgba(63,111,90,.1)}.context-menu-item.danger{color:var(--red)}.context-menu-separator{background:var(--line);height:1px;margin:4px 0}.board-footer{align-items:center;background:rgba(255,250,240,.94);border-top:1px solid var(--line);color:var(--muted);display:flex;font-size:12px;justify-content:space-between;padding:9px 18px}.board-save-status{align-items:center;display:inline-flex;gap:8px;min-width:0}.footer-retry{background:transparent;border:0;color:var(--green-dark);font-size:12px;font-weight:800;padding:0}.footer-retry:hover{text-decoration:underline}.dialog-backdrop{align-items:center;background:rgba(26,24,21,.42);display:flex;inset:0;justify-content:center;padding:22px;position:fixed;z-index:50}.search-dialog{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:18px;gap:18px;max-height:min(720px,calc(100vh - 44px));max-width:680px;overflow:hidden;padding:22px;width:min(680px,100%)}.dialog-heading{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.dialog-heading h2{font-size:24px;line-height:1.1;margin:0 0 8px}.dialog-heading p{color:var(--muted);font-size:14px;line-height:1.5;margin:0}.search-field{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;padding:0 12px}.search-field input{border:0;flex:1 1;min-height:46px;min-width:0;outline:0}.search-results{display:grid;grid-gap:8px;gap:8px;max-height:420px;overflow:auto}.search-bulk-actions{align-items:center;display:flex;gap:12px;justify-content:space-between}.search-bulk-actions span{color:var(--muted);font-size:13px;font-weight:800}.result-row{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto minmax(0,1fr) auto;padding:10px 12px;text-align:left}.result-row.is-selected,.result-row:hover{border-color:var(--green)}.result-row.is-selected{background:rgba(63,111,90,.08)}.result-select{align-items:center;display:inline-flex;justify-content:center}.result-select input{accent-color:var(--green-dark);height:18px;width:18px}.result-content{background:transparent;border:0;color:var(--ink);display:grid;grid-gap:3px;gap:3px;min-width:0;padding:2px 0;text-align:left}.result-content:disabled{cursor:not-allowed}.result-row strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-row em{font-style:normal}.result-row em,.result-row small{color:var(--muted);font-size:12px}.result-row small{line-height:1.35}.result-add-button{background:transparent;min-width:36px;padding:0}.result-empty{border:1px dashed var(--line);border-radius:8px;color:var(--muted);padding:24px;text-align:center}.dialog-attribution{color:var(--muted);font-size:12px;justify-self:end}.board-empty-state{align-items:center;background:var(--paper);color:var(--muted);display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:100vh;padding:28px;text-align:center}.board-empty-state h1{color:var(--ink);margin:0}.board-empty-state p{margin:0}@media (max-width:900px){.home-shell{align-items:flex-end;min-height:100vh;overflow:hidden;padding:28px}.home-shell:before{background:linear-gradient(180deg,rgba(247,243,234,.38),rgba(247,243,234,.98) 54%,rgba(247,243,234,1)),linear-gradient(90deg,rgba(26,24,21,.08),rgba(26,24,21,.2))}.brand-hero-image{object-position:64% top}.auth-shell,.boards-shell{padding:24px}.admin-pagination,.board-list-actions,.boards-actions,.boards-header{align-items:stretch;flex-direction:column}.admin-pagination div{justify-content:flex-start}.home-panel{max-width:100%;padding:36vh 0 18px}.home-panel h1{font-size:clamp(46px,18vw,72px)}.home-copy{font-size:16px}.access-row,.board-footer,.board-toolbar,.home-actions,.toolbar-actions,.toolbar-left{align-items:stretch;flex-direction:column}.toolbar-actions{align-items:center;flex-direction:row;justify-content:flex-start}.shortcut-panel{left:0;min-width:min(310px,calc(100vw - 28px));right:auto}.canvas-tool-rail{bottom:54px;display:flex;left:14px;max-width:calc(100vw - 28px);overflow-x:auto;top:auto}.board-minimap{right:14px;top:188px;transform:scale(.86);transform-origin:top right}.tool-rail-separator{height:auto;margin:4px 2px;width:1px}.annotation-stylebar{left:14px;max-width:calc(100vw - 28px);overflow-x:auto}.title-input{max-width:calc(100vw - 80px)}.card-popover{left:0;top:calc(100% + 12px)}.game-card:after{height:14px;left:-10px;right:auto;top:calc(100% - 2px);width:calc(100% + 20px)}}