@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600&display=swap');
:root{color-scheme:dark;--bg:#1d1925;--panel:#2a2436;--panel-deep:#231e2e;--ink:#c6c5b0;--muted:#8e899a;--cyan:#95bbba;--cyan-dim:#57777b;--line:#40394b;--green:#9ed76e;--orange:#dba56b;--red:#d1515b;--yellow:#f0df9b;--sans:'Noto Sans SC',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;--mono:'Space Grotesk',monospace}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:20px}body{margin:0;background:var(--bg);background-image:radial-gradient(ellipse at 50% 0,#3b30412e,transparent 70%);font:13px/1.6 var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}button svg{pointer-events:none}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}h1,h2,h3,h4,p{margin:0}::selection{background:#507176;color:#f0f0dc}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.icon-filters{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:-80px;left:16px;z-index:10;background:var(--cyan);color:var(--bg);padding:8px 16px}.skip-link:focus{top:10px}
.site-header{max-width:1260px;margin:auto;display:flex;align-items:center;justify-content:space-between;height:91px;padding:0 40px;border-bottom:1px solid #393142;gap:20px}.brand{display:flex;align-items:center;gap:13px;font-size:20px;letter-spacing:2px;font-weight:600;line-height:1.3}.brand small{font:8px var(--mono);display:block;letter-spacing:2px;color:#a29bab;margin-top:6px}.brand-mark{color:var(--cyan)}.brand-mark svg{height:33px;width:33px;stroke-width:1.3}.brand-subtitle{font-size:12px;letter-spacing:1px;font-weight:400;color:#aca3b5;border-left:1px solid #4c4259;margin-left:12px;padding-left:22px}.header-actions{display:flex;align-items:center;gap:27px}.version{font-size:10px;color:#9b93a6;letter-spacing:.8px;white-space:nowrap}.version i{display:inline-block;width:5px;height:5px;background:var(--green);margin-right:6px}.quiet-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#a9a3b4;padding:4px 0;font-size:11px;white-space:nowrap;transition:color .15s}.quiet-button:hover:not(:disabled){color:var(--cyan)}.quiet-button:disabled{opacity:.35}.quiet-button svg{width:13px;height:13px}.page-shell{max-width:1180px;margin:auto;padding:0 32px}.page-intro{display:flex;align-items:center;justify-content:space-between;padding:21px 2px 16px;color:#958d9e;font-size:11px;letter-spacing:1px}.terminal-label{font:9px var(--mono);letter-spacing:1.8px;color:#858696}.game-panel{position:relative;background:var(--panel);padding:31px 37px 27px;border:1px solid #51465f;box-shadow:0 16px 60px #0b061c24;clip-path:polygon(0 12px,12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px))}.game-panel::before{position:absolute;content:'';inset:7px;pointer-events:none;border:1px solid #39394a;clip-path:polygon(0 8px,8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px))}.corner{position:absolute;width:21px;height:21px;pointer-events:none;border-color:#7b9ea1}.corner-tl{top:8px;left:8px;border-top:2px solid;border-left:2px solid}.corner-tr{top:8px;right:8px;border-top:2px solid;border-right:2px solid}.corner-bl{bottom:8px;left:8px;border-bottom:2px solid;border-left:2px solid}.corner-br{bottom:8px;right:8px;border-bottom:2px solid;border-right:2px solid}.section-heading{display:flex;align-items:center;justify-content:center;gap:28px;margin:0 0 23px}.section-heading h1{font-size:27px;font-weight:500;letter-spacing:3px;white-space:nowrap;line-height:1.4}.heading-line{height:1px;max-width:145px;flex:1;background:linear-gradient(90deg,transparent,#575260)}.heading-line:last-child{transform:rotate(180deg)}.pool-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.filter-tabs{display:flex;align-items:center;gap:8px}.filter-tabs button{font-size:11px;color:#9a93a8;display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid transparent;white-space:nowrap}.filter-tabs button:hover{color:var(--ink);background:#363044}.filter-tabs button.active{background:#211d2a;border:1px solid #5e6972;color:var(--ink)}.filter-tabs button span{font:10px var(--mono);opacity:.6;margin-left:3px}.filter-tabs i{width:6px;height:6px;display:block}.positive-dot{background:var(--green)}.neutral-dot{background:var(--orange)}.negative-dot{background:var(--red)}.search-field{width:180px;height:30px;background:#211c2c;border-bottom:1px solid #51465f;display:flex;align-items:center;gap:7px;padding:0 10px}.search-field svg{width:13px;height:13px;color:#928c9f}.search-field input{width:100%;min-width:0;background:none;border:0;outline:0;font-size:11px}.search-field:focus-within{border-color:var(--cyan)}.search-field input::placeholder{color:#898092}.search-field kbd{font:10px var(--mono);color:#7e778c}.trait-pool{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px 11px;align-items:start;min-height:200px}.trait-tile{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-width:0;width:100%;padding:6px;color:#85acab;isolation:isolate;transition:transform .12s;touch-action:manipulation}.tile-frame{position:absolute;inset:0;width:100%;height:100%;fill:#252932;stroke:currentColor;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;shape-rendering:crispEdges;overflow:visible;pointer-events:none;z-index:-1}.trait-tile:hover:not(:disabled),.trait-tile.is-inspected:not(.is-selected):not(.is-excluded){color:#b3d1c4}.trait-tile:hover:not(:disabled){transform:translateY(-2px)}.trait-tile:hover .tile-frame{fill:#303440}.tone-positive{--trait-color:var(--green);--tint:url(#positive-tint)}.tone-neutral{--trait-color:var(--orange);--tint:url(#neutral-tint)}.tone-negative{--trait-color:var(--red);--tint:url(#negative-tint)}.game-icon{display:flex;align-items:center;justify-content:center;pointer-events:none;flex-shrink:0;width:80%;height:80%;max-width:57px;max-height:57px}.game-icon img{display:block;width:100%;height:auto;object-fit:contain;image-rendering:pixelated;filter:var(--tint);pointer-events:none}.trait-tile.is-selected{color:#4a4d5b}.trait-tile.is-selected .tile-frame{fill:#272332}.trait-tile.is-selected .game-icon{--tint:url(#muted-tint);opacity:.38}.trait-tile.is-excluded{color:#4b3e50}.trait-tile.is-excluded .tile-frame{fill:#272332}.trait-tile.is-excluded .game-icon{opacity:.16;--tint:url(#muted-tint)}.trait-tile.is-conflicted:not(.is-selected):not(.is-excluded){opacity:.55}.tile-badge{position:absolute;right:5px;bottom:7px;font-size:9px;line-height:1;display:grid;place-items:center;width:13px;height:13px;color:var(--yellow);background:#292434;border:1px solid #676353}.tile-badge svg{width:8px;height:8px;stroke-width:2}.excluded-badge{color:#bf7f86;border-color:#725363;font:13px/1 var(--mono)}.selected-badge{width:4px;height:4px;border:0;right:7px;bottom:9px;background:#797985}.pool-legend{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;color:#958a9f;margin:16px 0 17px;letter-spacing:.2px}.pool-legend>span:first-child{display:flex;align-items:center;gap:6px}.legend-selected{width:8px;height:8px;display:inline-block;border:1px solid #676473;background:#3e394c}.legend-divider{margin:0 4px;color:#675d76}#pool-counter{font:10px var(--mono);white-space:nowrap;color:#82788f}.trait-detail{min-height:79px;display:flex;align-items:center;gap:15px;background:#231e2e;border:1px solid #3c344a;border-left:2px solid #617977;padding:12px 15px}.detail-glyph{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center}.detail-glyph .game-icon{width:36px;height:36px}.detail-copy{flex:1;min-width:0}.detail-title{display:flex;align-items:baseline;gap:10px;margin-bottom:5px}.detail-title h3{font-size:13px;font-weight:500;color:var(--trait-color);letter-spacing:.5px}.detail-title>span{font-size:9px;color:#b2a1a7;white-space:nowrap}.detail-copy p{font-size:11px;color:#b0a7b8;line-height:1.7}.detail-copy .conflicts{font-size:9px;color:#99899d;margin-top:4px}.detail-actions{display:flex;gap:6px;flex-shrink:0}.small-action{display:flex;align-items:center;justify-content:center;gap:5px;min-width:53px;padding:6px 8px;border:1px solid #51495e;color:#b5afbf;font-size:10px;background:#2b2537}.small-action svg{width:12px;height:12px}.small-action:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan)}.small-action[aria-pressed=true]{color:var(--yellow);border-color:#8d815e;background:#39313c}.small-action[data-action=exclude][aria-pressed=true]{color:#e18c91;border-color:#97616f}.small-action:disabled{opacity:.4}.selected-section{margin-top:25px;border-top:1px solid var(--line);padding-top:24px}.selection-heading{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin-bottom:23px}.selection-heading h2{font-size:25px;font-weight:500;letter-spacing:3px}.ticket-id{font:10px var(--mono);letter-spacing:1px;color:#8b7f99}.selection-heading .quiet-button{justify-self:end;font-size:10px}.selected-traits{display:flex;align-items:flex-start;justify-content:center;gap:14px;min-height:120px;flex-wrap:wrap}.selected-item{width:76px;min-width:0;text-align:center;position:relative}.selected-item .trait-tile{width:70px;margin:0 auto;aspect-ratio:1}.selected-item .game-icon{width:82%;height:82%;max-width:57px;max-height:57px}.selected-name{font-size:10px;color:#c1b7ca;line-height:1.6;margin:7px -8px 5px;white-space:nowrap}.selected-name.long-name{font-size:9px}.selected-lock{display:flex;align-items:center;justify-content:center;gap:3px;font-size:9px;color:#82778f;margin:auto;min-width:44px;line-height:1.5;padding:2px 4px}.selected-lock svg{height:9px;width:9px}.selected-lock:hover{color:var(--cyan)}.selected-lock[aria-pressed=true]{color:var(--yellow)}.selected-item.is-locked .trait-tile{color:#b6bd98}.empty-slot{width:70px;height:76px;display:grid;place-items:center;border:1px dashed #51445e;background:#272132;color:#5d506c;font:25px var(--mono);clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px)}.slot-label{font-size:9px;color:#766780;margin-top:8px}.roll-status{text-align:center;font-size:10px;color:#8c809b;margin:13px 0 18px;min-height:16px;letter-spacing:.4px}.result-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:730px;margin:auto}.summary-stat{background:#221d2c;text-align:center;padding:10px 8px;font-size:15px;letter-spacing:.5px}.summary-stat strong{font:20px var(--mono);color:var(--yellow);margin-left:7px}.summary-stat small{color:#80758f;font-size:10px;margin-left:9px}.result-notice{background:#4e34312e;border:1px solid #70534e;color:#d9b19b;font-size:11px;line-height:1.8;padding:9px 14px;margin-top:14px}.result-notice.error{border-color:#8c4d61;color:#eaa1a8;background:#602b3f22}.roll-controls{border-top:1px solid var(--line);margin-top:22px;padding-top:19px}.settings-row{display:flex;align-items:center;justify-content:center;gap:25px;margin-bottom:22px;font-size:11px;color:#aaa0b4}.count-setting{display:flex;align-items:center;gap:12px}.stepper{display:flex;align-items:center;border:1px solid #534961;background:#211c2b;height:28px}.stepper button{height:26px;width:25px;padding:0;font:17px var(--mono);color:#aaa1b7}.stepper button:hover:not(:disabled){background:#393146;color:var(--cyan)}.stepper button:disabled{opacity:.3}.stepper input{width:23px;appearance:textfield;-moz-appearance:textfield;background:none;border:0;padding:0;color:var(--ink);font:15px var(--mono);text-align:center}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{appearance:none;margin:0}.check-setting{display:flex;align-items:center;gap:7px;cursor:pointer;position:relative;white-space:nowrap}.check-setting input{position:absolute;width:16px;height:16px;left:0;top:0;margin:0;opacity:0;cursor:pointer}.pixel-check{width:13px;height:13px;border:1px solid #797187;background:#231d2f;display:inline-block}.check-setting input:checked+.pixel-check{border-color:#93b7b3;background:#93b7b3;box-shadow:inset 0 0 0 3px #292333}.check-setting input:focus-visible+.pixel-check{outline:2px solid var(--yellow);outline-offset:4px}.preference-counts{display:flex;align-items:center;gap:8px;font-size:10px;white-space:nowrap}.preference-counts button{color:#9e92ac;padding:0}.preference-counts button:hover{color:var(--cyan)}.preference-counts>span{color:#685974}.settings-row>.quiet-button{font-size:10px}.roll-action-row{position:relative;display:flex;justify-content:center;align-items:center;gap:16px}.roll-button{height:49px;width:300px;max-width:100%;border:2px solid var(--cyan);outline:1px solid #84aaa8;outline-offset:-6px;display:flex;align-items:center;justify-content:center;gap:12px;background:#242330;color:var(--cyan);font-size:21px;font-weight:500;letter-spacing:2px;box-shadow:0 4px 0 #191825;transition:background .15s,transform .15s}.roll-button:hover:not(:disabled){background:#333b42;color:#d2e5d7;box-shadow:0 4px 0 #191825,0 0 25px #92bcb313}.roll-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 #191825}.roll-button:disabled{color:#8c909d;border-color:#65747d;outline-color:#65747d}.roll-button svg{width:21px;height:21px}.roll-button kbd{font:10px var(--mono);border:1px solid #647c80;padding:0 4px;line-height:17px;opacity:.7;margin-left:18px;letter-spacing:0}.control-hint{text-align:center;font-size:9px;color:#8d809b;margin-top:15px;line-height:1.8}.utility-row{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:14px}.utility-row .quiet-button{font-size:10px;color:#9f92ad}.utility-divider{width:1px;height:10px;background:#53445f}.skip-animation{position:absolute;left:calc(50% + 170px);white-space:nowrap;color:var(--yellow);font-size:10px;display:flex;align-items:center;gap:6px;padding:7px 8px;border:1px solid #5c5168}.skip-animation kbd{font:9px var(--mono);color:#9a8fa5}.loading{grid-column:1/-1;text-align:center;padding:80px 0;color:#aa9cb5}.empty-state{text-align:center;min-height:180px;padding:45px 10px;color:#a597b0;font-size:12px}.empty-state .quiet-button{margin-top:10px}.trait-tile.is-hot{color:#f2e2a2;transform:translateY(-2px);filter:drop-shadow(0 0 7px #e5cb7845)}.trait-tile.is-hot .tile-frame{fill:#535044}.trait-tile.is-hot .game-icon{opacity:1}.trait-tile.is-trail:not(.is-hot):not(.is-selected){color:#b5b69b}.trait-tile.just-landed{animation:land .35s ease-out}.selected-item.just-revealed{animation:reveal .3s ease-out}.is-rolling .empty-slot{color:#9b8ca7;border-color:#968282;animation:slot-pulse 1s ease-in-out infinite}.is-rolling .roll-status{color:var(--yellow)}.is-rolling .pool-legend{color:#b5a186}.is-rolling .trait-pool{cursor:progress}.is-rolling .trait-tile:disabled{opacity:1}.is-rolling .filter-tabs button,.is-rolling .search-field{opacity:.5}.is-rolling .detail-actions{opacity:.45}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:9px;color:#84778f;padding:18px 3px 29px}footer .quiet-button{font-size:9px}.footer-dot{margin:0 6px;color:#665672}#toast{position:fixed;left:50%;bottom:23px;transform:translateX(-50%);background:#302b3c;border:1px solid #789493;box-shadow:0 7px 30px #0d081d80;max-width:calc(100vw - 32px);padding:11px 18px;color:#d3d5c2;font-size:12px;z-index:20;white-space:normal}#toast.error{border-color:#b4797f;color:#efb4b6;background:#3d2b3d}dialog{width:calc(100% - 32px);max-width:530px;max-height:85vh;background:#2a2435;border:1px solid var(--cyan-dim);padding:25px;color:var(--ink);box-shadow:0 20px 90px #0009}dialog::backdrop{background:#15111cc9;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font:9px var(--mono);letter-spacing:1.5px;color:#96afb2}.icon-button{width:28px;height:28px;display:grid;place-items:center;color:#aba0ba}.icon-button:hover{color:var(--cyan)}.icon-button svg{width:16px;height:16px}dialog h2{font-size:22px;font-weight:500;margin-bottom:18px}dialog h3{font-size:13px;margin:16px 0 7px;color:#d3c8d9;font-weight:500}dialog p,dialog li{font-size:12px;line-height:1.9;color:#b3a6c2}dialog p{margin-bottom:12px}dialog ol,dialog ul{padding-left:20px}dialog li{margin:7px 0}dialog a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}dialog kbd{font:10px var(--mono);padding:1px 4px;border:1px solid #6b5c79;background:#211c29}dialog textarea{width:100%;min-height:230px;background:#211d2b;border:1px solid #71607f;padding:12px;color:var(--ink);font:12px/1.8 var(--sans)}.dialog-done{width:100%;border:1px solid var(--cyan-dim);padding:8px;color:var(--cyan);margin-top:12px}.dialog-done:hover{background:#343442}noscript{position:fixed;inset:0;background:#1d1925f0;z-index:30;display:grid;place-items:center}
@keyframes land{0%,50%{color:var(--yellow)}100%{color:#4a4d5b}}@keyframes reveal{from{opacity:.2;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}@keyframes slot-pulse{50%{opacity:.55}}
@media(min-width:1300px){.game-panel{padding:35px 43px 30px}.trait-pool{gap:13px 15px}.section-heading{margin-bottom:27px}.selected-section{margin-top:29px}.selected-traits{gap:20px}.selected-item{width:83px}.selected-item .trait-tile{width:76px}.settings-row{gap:32px}.game-icon{max-width:61px;max-height:61px}}
@media(max-width:1000px){.site-header{height:80px;padding:0 30px}.page-shell{padding:0 25px}.game-panel{padding:27px 28px 24px}.brand-subtitle{font-size:11px;margin-left:2px;padding-left:15px}.header-actions{gap:18px}.trait-pool{gap:9px 8px}.trait-detail{gap:10px;padding:11px 12px}.detail-actions{gap:5px}.small-action{padding:6px;min-width:49px;font-size:9px}.selected-traits{gap:11px}.selected-item{width:72px}.selected-name{font-size:9px}.settings-row{gap:18px}.section-heading h1{font-size:25px}.selection-heading h2{font-size:23px}.summary-stat{font-size:14px}.search-field{width:160px}}
@media(max-width:780px){.brand-subtitle{display:none}.version{font-size:9px}.site-header{padding:0 22px;height:72px}.brand{font-size:18px}.page-shell{padding:0 18px}.game-panel{padding:25px 23px 23px}.trait-pool{grid-template-columns:repeat(8,minmax(0,1fr));gap:9px 13px}.pool-toolbar{gap:10px;align-items:flex-start}.filter-tabs{gap:1px}.filter-tabs button{padding:5px 7px;font-size:10px;gap:5px}.filter-tabs button span{font-size:9px}.search-field{width:145px}.trait-detail{gap:10px}.detail-glyph{width:33px}.detail-glyph .game-icon{width:30px;height:30px}.detail-actions{flex-direction:column}.small-action{font-size:9px;padding:4px 7px;min-width:55px}.detail-title h3{font-size:12px}.detail-copy p{font-size:10px}.selected-traits{gap:10px}.selected-item{width:64px}.selected-item .trait-tile{width:61px}.selected-name{font-size:9px}.selected-name.long-name{font-size:8px}.selected-lock{font-size:8px}.empty-slot{width:61px;height:68px}.result-summary{gap:12px}.summary-stat{font-size:12px;padding:9px}.summary-stat strong{font-size:19px}.summary-stat small{display:none}.settings-row{flex-wrap:wrap;gap:13px 23px;max-width:500px;margin:0 auto 21px}.skip-animation{position:static}.is-rolling .roll-button{width:240px}.roll-button{font-size:20px;height:47px}.page-intro{font-size:9px}.terminal-label{font-size:8px;letter-spacing:1.2px}.pool-legend{font-size:9px}.pool-legend #pool-counter{font-size:9px}}
@media(max-width:480px){.site-header{height:68px;padding:0 16px}.brand{font-size:16px;letter-spacing:1.5px;gap:8px}.brand-mark svg{width:28px;height:28px}.brand small{font-size:6px;letter-spacing:1.5px}.header-actions{gap:13px}.version{font-size:8px;letter-spacing:0}.header-actions .quiet-button{font-size:0;gap:0}.header-actions .quiet-button svg{width:17px;height:17px}.page-shell{padding:0 11px}.page-intro{padding:14px 2px 12px;font-size:8px;letter-spacing:.3px}.terminal-label{font-size:7px;letter-spacing:1px}.game-panel{padding:24px 14px 20px}.section-heading{gap:18px;margin-bottom:18px}.section-heading h1{font-size:23px;letter-spacing:3px}.heading-line{max-width:64px}.pool-toolbar{gap:12px;flex-direction:column;align-items:stretch;margin-bottom:16px}.filter-tabs{justify-content:space-between;gap:3px}.filter-tabs button{font-size:9px;padding:5px 7px;gap:5px}.filter-tabs button span{font-size:8px;margin-left:1px}.search-field{width:100%;height:29px}.search-field input{font-size:10px}.trait-pool{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 7px;min-height:150px}.game-icon{width:79%;height:79%}.trait-tile{padding:4px}.pool-legend{font-size:8px;margin:13px 0}.legend-divider{margin:0 1px}.pool-legend>span:first-child{gap:4px}.pool-legend #pool-counter{font-size:8px}.trait-detail{padding:10px 9px;gap:8px;min-height:90px;flex-wrap:wrap}.detail-glyph{width:28px;height:28px;align-self:flex-start;margin-top:5px}.detail-glyph .game-icon{width:28px;height:28px}.detail-copy{min-width:calc(100% - 40px)}.detail-title{gap:7px;margin-bottom:5px;flex-wrap:wrap}.detail-title h3{font-size:12px}.detail-title>span{font-size:8px}.detail-copy p{font-size:10px}.detail-copy .conflicts{font-size:8px}.detail-actions{flex-direction:row;margin-left:36px}.small-action{font-size:9px;min-width:58px;padding:5px 8px}.selected-section{padding-top:20px;margin-top:20px}.selection-heading{margin-bottom:20px;gap:8px}.selection-heading h2{font-size:22px;letter-spacing:2px}.ticket-id{font-size:8px;letter-spacing:.5px}.selection-heading .quiet-button{font-size:9px}.selected-traits{gap:14px 11px;min-height:106px}.selected-item{width:65px}.selected-item .trait-tile{width:62px}.selected-name{font-size:9px;margin-top:5px}.selected-name.long-name{font-size:8px}.empty-slot{width:62px;height:69px}.roll-status{font-size:9px;line-height:1.8;margin:12px 0 14px}.result-summary{gap:8px}.summary-stat{font-size:10px;padding:10px 3px;letter-spacing:0}.summary-stat strong{font-size:16px;margin-left:4px}.roll-controls{margin-top:19px;padding-top:17px}.settings-row{gap:14px 18px;font-size:10px;justify-content:space-between;margin-bottom:21px}.count-setting{gap:9px}.preference-counts{font-size:9px;gap:9px}.settings-row>.quiet-button{font-size:9px}.check-setting{gap:5px}.roll-button{width:260px;font-size:19px;height:47px;gap:10px}.roll-button kbd{font-size:9px;margin-left:9px}.roll-button svg{width:18px;height:18px}.is-rolling .roll-action-row{flex-wrap:wrap;gap:9px}.is-rolling .roll-button{width:260px}.skip-animation{border:0;font-size:9px;padding:2px}.control-hint{font-size:8px;margin-top:13px}.utility-row{margin-top:11px}.utility-row .quiet-button{font-size:9px}.result-notice{font-size:10px;padding:8px 10px}footer{padding:16px 3px 23px;font-size:8px;gap:10px}footer .quiet-button{font-size:8px}.footer-dot{margin:0 3px}#toast{font-size:11px;padding:10px 14px;width:max-content}dialog{padding:21px}dialog h2{font-size:20px}dialog li,dialog p{font-size:11px}}
@media(max-width:360px){.trait-pool{gap:7px 5px}.game-panel{padding-left:12px;padding-right:12px}.filter-tabs button{padding:4px 5px}.selected-traits{gap:12px 7px}.selected-item{width:60px}.selected-item .trait-tile{width:58px}.empty-slot{width:58px;height:64px}.page-intro>span:last-child{font-size:7px}.pool-legend{letter-spacing:0;font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Conflict locks are separate from selected dimming and manual exclusions. */
.trait-tile.is-conflicted:not(.is-selected):not(.is-excluded){opacity:1;color:#6e8989;cursor:not-allowed}
.trait-tile.is-conflicted:hover:not(:disabled){transform:none}
.trait-tile.is-conflicted:not(.is-selected):not(.is-excluded) .tile-frame{fill:#272933}
.trait-tile.is-conflicted:not(.is-selected):not(.is-excluded) .game-icon{--tint:url(#conflict-tint);opacity:.85}
.conflict-lock{position:absolute;z-index:3;width:22px;height:25px;left:50%;top:50%;transform:translate(-50%,-50%);color:#d3c9aa;pointer-events:none;filter:drop-shadow(1px 1px 0 #292631)}
.conflict-lock::before{content:'';position:absolute;left:5px;top:0;width:12px;height:12px;border:3px solid currentColor;border-bottom:0;box-sizing:border-box}
.conflict-lock::after{content:'';position:absolute;left:1px;top:9px;width:20px;height:15px;background:currentColor}
.conflict-lock i{position:absolute;z-index:1;width:4px;height:6px;left:9px;top:13px;background:#625b55;clip-path:polygon(0 0,100% 0,100% 60%,75% 60%,75% 100%,25% 100%,25% 60%,0 60%)}
.tile-markers{pointer-events:none}
.detail-copy .blocked-message,.trait-tooltip .blocked-message{display:flex;gap:7px;align-items:flex-start;border-top:1px solid #514656;padding-top:9px;margin-top:10px;color:#dd8588;font-size:11px;line-height:1.75}
.blocked-message svg{height:14px;width:14px;flex-shrink:0;margin-top:2px;stroke-width:2}
.trait-detail.has-conflict{border-left-color:#ac7880}
.small-action[aria-disabled=true]:not([aria-pressed=true]){opacity:.5;cursor:not-allowed}
.legend-conflict{color:#c8bea4;display:inline-flex;margin-left:6px}
.legend-conflict svg{width:10px;height:10px;vertical-align:middle}
.trait-tooltip{position:fixed;z-index:40;width:310px;max-width:calc(100vw - 20px);background:#2a2436;color:#c6c5b0;border:1px solid #8fb6b4;box-shadow:0 8px 24px #100b1e66;padding:13px 16px;pointer-events:none}
.trait-tooltip h3{font-size:18px;line-height:1.45;font-weight:500;padding-bottom:10px;border-bottom:1px solid #514656;margin-bottom:11px;letter-spacing:.5px}
.tooltip-effect{font-size:12px;line-height:1.85;padding-left:13px;position:relative}
.tooltip-effect::before{content:'';position:absolute;width:4px;height:4px;left:0;top:9px;background:#95bbba}
.trait-tooltip .blocked-message{padding-top:11px;margin-top:13px;font-size:12px}
.conflict-feedback{animation:conflict-nudge .26s ease-out}
@keyframes conflict-nudge{0%,100%{transform:translateX(0)}25%{transform:translateX(-2px);color:#df8a8d}70%{transform:translateX(2px);color:#df8a8d}}
@media(max-width:480px){.conflict-lock{width:18px;height:21px}.conflict-lock::before{left:4px;width:10px;height:10px;border-width:2px}.conflict-lock::after{left:1px;top:8px;width:16px;height:12px}.conflict-lock i{width:3px;height:5px;left:7.5px;top:11px}.detail-copy .blocked-message{font-size:10px}.trait-tooltip{padding:11px 13px;width:285px}.trait-tooltip h3{font-size:17px}.trait-tooltip .blocked-message{font-size:11px}.pool-legend>span:first-child{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.conflict-feedback{animation:none}}

/* Empty slots use the same single, stepped outline as trait tiles. */
.empty-slot{height:auto;aspect-ratio:1;position:relative;isolation:isolate;border:0;clip-path:none;background:none}
.empty-slot .tile-frame{fill:#272132;stroke:#51445e;stroke-dasharray:3 3}
.is-rolling .empty-slot .tile-frame{fill:#30263b;stroke:#968282}

/* Make clearing a selected build an explicit, easy-to-find action. */
.clear-button{justify-self:end;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:112px;min-height:36px;padding:7px 13px;border:1px solid #bc7782;background:#512e40;color:#f5c6c3;box-shadow:0 2px 0 #201724;font-size:13px;font-weight:500;line-height:1.5;letter-spacing:.4px;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.clear-button svg{width:15px;height:15px;stroke-width:1.8}
.clear-button:hover:not(:disabled){background:#6d394e;border-color:#e69a9e;color:#fff0dd}
.clear-button:active:not(:disabled){transform:translateY(1px);box-shadow:none}
.clear-button:disabled{background:#2c2636;border-color:#504456;color:#84768e;box-shadow:none;cursor:not-allowed}
@media(max-width:480px){.selection-heading{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title clear" "ticket clear";column-gap:12px;row-gap:3px}.selection-heading h2{grid-area:title}.selection-heading .ticket-id{grid-area:ticket}.selection-heading .clear-button{grid-area:clear;min-height:40px;font-size:12px}}

.negative-setting{display:flex;align-items:center;gap:10px;white-space:nowrap}
.negative-setting select{height:28px;min-width:98px;padding:2px 7px;background:#211c2b;border:1px solid #534961;border-radius:0;color:var(--ink);font:11px var(--sans);cursor:pointer}
.negative-setting select:hover:not(:disabled){border-color:#8f7e9f}
.negative-setting select:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.negative-setting select:disabled{opacity:.45;cursor:default}
@media(max-width:1000px){.settings-row{flex-wrap:wrap}}
@media(max-width:480px){.negative-setting{gap:8px}.negative-setting select{height:30px;min-width:98px;font-size:11px}}

/* Creator contact station: 18px padding across screen sizes. */
.community-card{margin-top:18px;padding:18px;background:#252330;border:1px solid #586e75}
.community-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.community-avatar{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;background:#253138;border:1px solid #668c8d;color:var(--cyan);font-size:22px;font-weight:500;line-height:1}
.community-header h2{font-size:17px;font-weight:500;line-height:1.5;letter-spacing:.5px;color:#e1dcc9}
.community-header p{margin-top:4px;font-size:11px;line-height:1.7;color:#a99bb7}
.community-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.community-link{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:64px;padding:11px 12px;border:1px solid #625569;text-align:left;transition:background .15s,border-color .15s}
.community-link--bili{background:#382a3a;border-color:#795166}
.community-link--qq{background:#302b31;border-color:#716047}
.community-icon{display:grid;place-items:center;flex-shrink:0;width:24px;color:#dfa4bb}
.community-icon svg{width:22px;height:22px}
.community-link--qq .community-icon{color:var(--orange)}
.community-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.community-copy strong{font-size:12px;font-weight:500;line-height:1.5;color:#e3d3dc}
.community-copy small{font-size:11px;line-height:1.6;color:#b6a6b9}
.community-group-number{font:14px/1.4 'SFMono-Regular',Consolas,monospace;letter-spacing:.4px;color:#e1c2a5}
.community-trailing{flex-shrink:0;color:#c2a6b4}
.community-trailing svg{width:14px;height:14px}
.community-action-text{flex-shrink:0;font-size:11px;line-height:1.5;color:#d1b08b;white-space:nowrap}
.community-link--bili:hover{background:#493341;border-color:#caa7bc}
.community-link--qq:hover{background:#403437;border-color:#bda07b}
.community-link--qq.is-copied{border-color:#9dc09d}
.community-link--qq.is-copied .community-action-text{color:#b9d5b7}
.community-feedback{margin-top:10px;color:#b9d3bd;font-size:11px;line-height:1.7}
.group-copy-fallback{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:#d6c6dc}
.group-copy-fallback input{width:170px;max-width:100%;padding:6px 8px;background:#211d2b;border:1px solid #7a6687;border-radius:0;color:#ecd7c2;font:14px/1.5 'SFMono-Regular',Consolas,monospace}
@media(max-width:640px){.community-links{grid-template-columns:1fr;gap:10px}}
@media(max-width:480px){.community-card{margin-top:15px}.community-header{gap:10px;margin-bottom:13px}.community-header h2{font-size:15px}.community-link{min-height:61px;padding:10px;gap:8px}.group-copy-fallback input{font-size:16px}}

.community-avatar img{display:block;width:32px;height:32px;object-fit:contain;image-rendering:pixelated}
