@font-face{font-family:"Favorite Noto Serif";src:url("./assets/fonts/noto-serif-sc.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:"Favorite Noto Sans";src:url("./assets/fonts/noto-sans-sc.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{color-scheme:light;--paper:#f6f4ee;--white:#fffefa;--ink:#35313d;--muted:#85818a;--purple:#78638e;--dark:#3b3248;--line:#e6e1e8;--lavender:#eee9f3;--serif:"Favorite Noto Serif","Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;--sans:"Favorite Noto Sans","Microsoft YaHei","PingFang SC",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.12;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23877f72' filter='url(%23n)' opacity='.35' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,input{font:inherit}a,button,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:0 0}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}img{max-width:100%}[hidden]{display:none!important}:focus-visible{outline:3px solid #a48dc1;outline-offset:4px}h1:focus,h2:focus{outline:0}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--dark);color:#fff;padding:12px}.skip-link:focus{top:10px}.site-header{height:88px;max-width:1280px;margin:auto;padding:0 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e6e0e4}.brand{display:flex;gap:12px;align-items:center}.brand-logo{display:block;width:43px;height:43px;flex-shrink:0;object-fit:contain}.brand-name{font-weight:600;font-size:16px;letter-spacing:2px;line-height:1.4}.brand-name small{display:block;font-size:9px;letter-spacing:3px;font-weight:400;margin-top:5px;color:var(--muted)}.site-header nav{display:flex;gap:32px;align-items:center;font-size:12px}.nav-current{color:var(--purple);position:relative}.nav-current:after{content:"";width:4px;height:4px;position:absolute;bottom:-11px;left:50%;border-radius:50%;background:var(--purple)}.nav-link{padding:8px 0}.home-link span,.nav-link span{margin-left:5px;color:var(--muted)}.home-link{color:#8a858c}.page-shell{max-width:1184px;padding:0 36px;margin:auto}.hero{display:grid;grid-template-columns:1.07fr 1fr;min-height:388px;align-items:center;gap:20px;padding:35px 6px 22px}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:500;color:var(--purple)}.tiny-star{font-size:13px;margin-right:6px}.hero h1{font-family:var(--serif);font-weight:500;font-size:49px;line-height:1.6;letter-spacing:2px;margin:17px 0}.title-accent{color:var(--purple);position:relative;white-space:nowrap}.title-accent:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:6px;border-top:2px solid #b3a3bc;border-radius:50%;transform:rotate(-2deg)}.hero-description{font-size:13px;color:#817985;line-height:2.05;letter-spacing:.6px}.hero-note{display:flex;align-items:center;gap:12px;margin-top:23px;font-size:11px;color:#918795;letter-spacing:1px}.note-line{width:27px;height:1px;background:#b5a9bc}.hero-note svg{width:13px;height:13px;transform:rotate(-14deg)}.hero-art{position:relative;height:345px;isolation:isolate;margin-left:8px}.art-disc{position:absolute;width:285px;height:285px;left:21%;top:20px;border-radius:50%;background:#e4dce9;z-index:-2}.orbit{position:absolute;left:9%;top:5%;width:87%;height:89%;border:1px solid #d7ccd7;border-radius:50%;z-index:-1;transform:rotate(-28deg)}.orbit-two{left:4%;top:15%;width:94%;height:72%;border-style:dashed;border-color:#dcd1de;transform:rotate(24deg)}.art-kanji{font-family:var(--serif);font-size:210px;color:#f5f0f6;position:absolute;left:24%;top:-35px;z-index:-1;opacity:.55}.portrait-paper{position:absolute;background:#faf8f1;box-shadow:0 5px 18px #36234612;border:6px solid #faf8f1;width:189px;height:276px;overflow:hidden;top:23px}.portrait-paper img{display:block;height:100%;width:100%;object-fit:cover;object-position:top}.portrait-paper>span{position:absolute;bottom:0;left:0;right:0;line-height:25px;text-align:center;font-family:var(--serif);font-size:11px;letter-spacing:3px;background:#faf8f1}.paper-reimu{left:13%;transform:rotate(-10deg);background:#eadce0;z-index:2;top:29px}.paper-marisa{left:49%;transform:rotate(10deg);z-index:1;top:12px;background:#e3dbb8}.art-star{position:absolute;color:var(--purple);z-index:3}.star-one{font-size:30px;top:5px;left:10%;transform:rotate(-18deg)}.star-two{font-size:43px;bottom:24px;right:7%}.star-three{font-size:15px;top:77px;right:2%;color:#b5a36e}.art-label{position:absolute;z-index:4;left:3%;bottom:33px;background:#fffef9;border:1px solid #e4dce6;padding:10px 18px;transform:rotate(-6deg);box-shadow:0 4px 10px #352b3a08}.art-label span{font-family:var(--serif);font-size:14px;letter-spacing:2px}.art-label small{font-size:7px;display:block;letter-spacing:2px;color:var(--muted);margin-top:4px}.art-caption{position:absolute;right:30%;bottom:0;font-size:9px;letter-spacing:3px;color:#95899e}.art-caption span{letter-spacing:0}.journey{list-style:none;display:flex;align-items:center;justify-content:center;margin:15px 0 32px;padding:19px 0;border-top:1px solid #e4dfe3;border-bottom:1px solid #e4dfe3;gap:0;color:#aaa3ac;font-size:12px;letter-spacing:.6px}.journey li{display:flex;align-items:center;gap:9px}.journey li+li:before{content:"";display:inline-block;width:80px;height:1px;background:#dcd5df;margin:0 24px 0 15px}.journey li>span{font-family:Georgia,serif;font-size:14px;color:#a39ba9}.journey .is-current{color:var(--purple);font-weight:600}.journey .is-current>span{display:grid;place-items:center;background:var(--purple);color:#fff;border-radius:50%;width:26px;height:26px;font-size:12px;font-weight:400}.journey .is-done{color:var(--purple)}.setup-layout{display:grid;grid-template-columns:minmax(0,1fr) 294px;gap:25px;align-items:start}.settings-card{background:var(--white);border:1px solid #e8e3e8;border-radius:12px;padding:27px 29px 22px;box-shadow:0 3px 18px #39314602}.text-button{font-size:11px;padding:5px 0;color:#8c8095;white-space:nowrap;transition:color .2s}.text-button:hover{color:#4e3a62;text-decoration:underline;text-underline-offset:4px}.field-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.field-heading h3,.ranking-field legend{font-size:12px;font-weight:600}.work-heading-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px 16px;margin-left:auto}.work-heading-actions>span{color:#a298a5;font-size:10px}@media (max-width:520px){.works-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.work-heading-actions{display:contents}.work-heading-actions>span{grid-column:1/-1;grid-row:2}.work-heading-actions .text-button{grid-column:2;grid-row:1}}.preset-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.work-tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin-bottom:15px}.work-tabs button{font-size:12px;padding:0 2px 10px;color:#958b9b;position:relative;white-space:nowrap}.work-tabs button[aria-selected=true]{color:var(--purple);font-weight:600}.work-tabs button[aria-selected=true]:after{content:"";position:absolute;height:2px;width:100%;left:0;bottom:-1px;background:var(--purple)}.work-tabs button>span{font-size:9px;padding:0 5px;background:#f0ecf3;margin-left:4px;border-radius:8px;font-weight:400}.works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.work-option{position:relative;display:flex;align-items:center;gap:8px;cursor:pointer;background:#faf8fb;border:1px solid #eae4ed;padding:9px 10px;border-radius:6px;font-size:11px;line-height:1.45;transition:border .2s,background .2s}.work-option:has(input:checked){background:#f2edf6;border-color:#ded1e9}.work-option:hover{border-color:#b09bbf}.work-option input{position:absolute;opacity:0;width:1px;height:1px}.work-option:has(input:focus-visible){outline:3px solid #a48dc1;outline-offset:2px}.work-option .work-info{flex:1;min-width:0}.work-info>span{display:block;white-space:nowrap}.work-info small{display:block;font-size:8px;letter-spacing:.8px;color:#aba0b1;margin-top:2px}.work-check{width:12px;height:12px;border:1px solid #d8cddf;border-radius:3px;color:transparent;background:var(--white)}.work-check svg{display:block;width:10px;height:10px;stroke-width:2.5}.work-option input:checked~.work-check{background:#9580a9;border-color:#9580a9;color:#fff}.status-dot{width:5px;height:5px;border-radius:50%;display:inline-block;background:#a899b5;flex-shrink:0}.settings-divider{height:1px;background:#eeeaef;margin:23px 0 21px}.ranking-field{margin:0;padding:0;border:0;min-width:0}.ranking-field legend{margin-bottom:13px;padding:0}.mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mode-option{cursor:pointer;position:relative;padding:12px 10px;background:#fcfbfc;border:1px solid #e9e4ec;border-radius:7px;min-width:0}.mode-option:has(input:checked){border-color:#ad96c0;background:#f4eff8;box-shadow:inset 0 0 0 1px #ad96c030}.mode-option input{position:absolute;opacity:0}.mode-option:has(input:focus-visible){outline:3px solid #a48dc1;outline-offset:3px}.mode-top{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;white-space:nowrap}.mode-top svg{width:14px;height:14px;color:var(--purple)}.mode-option small{font-size:9px;color:#a296a9;display:block;margin-top:6px}.mode-number{color:var(--purple);font-family:Georgia,serif;font-size:16px;line-height:1}.recommend-label{font-size:8px;font-weight:400;color:#9b84ae;margin-left:auto}.roster-details{margin-top:22px;border-top:1px dashed #e5deea;border-bottom:1px dashed #e5deea}.roster-details summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;padding:13px 0;font-size:10px;color:#9b8da6}.roster-details summary::-webkit-details-marker{display:none}.roster-details summary>span:first-child{display:flex;gap:7px;align-items:center}.roster-details summary svg{width:13px;height:13px}.roster-details summary strong{font-weight:500;color:#7e688f}.details-arrow{font-size:16px;font-weight:300}.roster-details[open] .details-arrow{transform:rotate(45deg)}.roster-note{margin:0 0 12px;color:var(--muted);font-size:11px;line-height:1.8}.roster-tools{display:flex;gap:12px;align-items:center;margin:0 0 12px}.roster-tools input{background:#fff;border:1px solid var(--line);border-radius:5px;padding:8px 10px;width:100%;min-width:0;font-size:11px}.roster-tools .text-button{font-size:9px}.roster-list{max-height:350px;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px 5px 15px 3px;scrollbar-width:thin}.roster-character{display:flex;align-items:center;gap:6px;padding:5px;cursor:pointer;border:1px solid #e9e2ee;border-radius:5px;background:#fff;font-size:10px;line-height:1.5}.roster-character:has(input:not(:checked)){opacity:.5}.roster-character input{accent-color:var(--purple);margin:0;width:11px;height:11px}.roster-character img{width:25px;height:32px;object-fit:cover;object-position:top;border-radius:3px;background:#f0e9f5}.roster-character span{overflow-wrap:anywhere}.empty-note{text-align:center;color:var(--muted);font-size:12px;padding:15px 0}.invitation-column{position:sticky;top:22px}.invitation-card{background:var(--dark);color:#eee8f5;border-radius:12px;padding:26px 25px 18px;position:relative;overflow:hidden;isolation:isolate}.invitation-card:after,.invitation-card:before{content:"";width:180px;height:180px;border:1px solid #f3e4ff10;border-radius:50%;position:absolute;right:-63px;top:38px;z-index:-1}.invitation-card:after{width:220px;height:220px;right:-75px;top:18px}.invitation-card h2{font-family:var(--serif);font-size:25px;font-weight:400;line-height:1.65;letter-spacing:2px;margin-top:22px}.invited-count{display:flex;align-items:center;gap:16px}.invited-count strong{font-family:Georgia,serif;font-size:62px;font-weight:400;line-height:1.15;color:#f7f0df;letter-spacing:-2px}.invited-count>span{font-size:10px;color:#b9acbf;line-height:1.9;letter-spacing:1px}.avatar-stack{display:flex;align-items:center;margin:15px 0 24px;padding-left:3px}.avatar-stack img,.avatar-stack span{width:31px;height:31px;border-radius:50%;object-fit:cover;object-position:top;background:#e9e1e7;border:2px solid var(--dark);margin-left:-3px}.avatar-stack img:nth-child(2n){background:#e5dcbf}.avatar-stack>span{display:grid;place-items:center;background:#574862;font-size:13px;color:#cbbbce}.invitation-stats{display:flex;flex-direction:column;gap:9px;font-size:10px}.invitation-stats>div{display:flex;justify-content:space-between}.invitation-stats span{color:#b2a3bb}.invitation-stats strong{font-weight:400;color:#dfd3e8}.comparison-estimate{font-size:9px;color:#a998b5;margin-top:11px}.start-button{margin-top:23px;width:100%;background:#eee9db;color:#51445b;font-size:13px;letter-spacing:1px;display:flex;align-items:center;justify-content:center;gap:20px;border-radius:6px;padding:13px 10px;transition:background .2s,transform .2s}.start-button svg{width:17px;height:17px}.start-button:hover:not(:disabled){background:#fff9e9;transform:translateY(-2px)}.start-hint{font-size:9px;color:#ac9bb8;text-align:center;margin-top:12px}.little-note{display:flex;align-items:center;justify-content:center;gap:16px;color:#a598af;margin-top:25px}.little-note>span{font-size:25px}.little-note p{font-family:var(--serif);font-size:12px;line-height:2;letter-spacing:1px}.how-it-works{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:37px 8px 43px}.how-it-works>div{display:flex;gap:14px;align-items:baseline}.how-it-works>div>span{font-family:Georgia,serif;color:#ac99bc;font-size:16px}.how-it-works p strong{font-weight:500;font-size:11px;color:#817089;display:block;margin-bottom:5px}.how-it-works p small{font-size:10px;color:#a69bab}.resume-banner{display:flex;align-items:center;gap:14px;background:#eee7f2;border:1px solid #ded2e6;border-radius:8px;padding:15px 20px;margin-bottom:22px}.resume-banner>svg{color:var(--purple)}.resume-banner>div{flex:1}.resume-banner strong{display:block;font-size:12px;font-weight:500}.resume-banner span{font-size:10px;color:#8b7b97}.resume-banner .button{background:var(--white)}body[data-view=battle] .journey,body[data-view=result] .journey{margin-top:28px}.battle-view{max-width:830px;margin:auto;padding:0 0 45px}.battle-toolbar{display:flex;align-items:center;justify-content:space-between}.save-status{display:flex;align-items:center;gap:6px;font-size:10px;color:#96889e}.battle-heading{text-align:center;margin:24px 0 30px}.battle-heading h1,.result-heading h1{font-family:var(--serif);font-size:34px;font-weight:500;letter-spacing:2px;margin:11px 0 10px}.battle-heading p,.result-heading p{font-size:12px;color:#9a8fa1}.progress-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#9e90a7;margin:0 0 8px}.progress-meta strong{font-weight:500;color:#85718f;font-variant-numeric:tabular-nums}progress{height:3px;width:100%;display:block;border:0;border-radius:4px;background:#e8e0ec;appearance:none;accent-color:var(--purple)}progress::-webkit-progress-bar{background:#e8e0ec;border-radius:4px}progress::-webkit-progress-value{background:#a18ab3;border-radius:4px;transition:width .2s}progress::-moz-progress-bar{background:#a18ab3;border-radius:4px}.battle-arena{display:grid;grid-template-columns:minmax(0,1fr) 60px minmax(0,1fr);gap:22px;align-items:center;margin-top:23px}.character-card{position:relative;padding:0;border-radius:13px;border:1px solid #e3dbe8;background:#eee6f1;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s;text-align:center;display:flex;align-items:stretch;flex-direction:column}.character-card:after{content:"";position:absolute;inset:10px;border:1px solid #ffffff80;border-radius:7px;pointer-events:none}.character-card:hover{transform:translateY(-5px);border-color:#b3a0c3;box-shadow:0 15px 30px #35223c13}.character-card:active{transform:translateY(0)}.right-card{background:#efe7dc;border-color:#e5dbcf}.portrait-stage{height:315px;position:relative;overflow:hidden;display:grid;place-items:end center}.portrait-stage:before{content:"";position:absolute;width:235px;height:235px;border-radius:50%;background:#fff7;top:38px;left:50%;transform:translateX(-50%)}.portrait-stage img{height:310px;width:auto;max-width:100%;position:relative;object-fit:contain;object-position:bottom;filter:drop-shadow(0 7px 4px #6147760c)}.portrait-stage .portrait-fallback{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:58px;color:#baa8ca;letter-spacing:5px}.portrait-stage img~.portrait-fallback{display:none}.portrait-stage.image-failed img{display:none}.portrait-stage.image-failed .portrait-fallback{display:grid}.portrait-kicker{position:absolute;top:19px;left:20px;font-size:9px;letter-spacing:1px;color:#a48bb3;z-index:1}.character-info{position:relative;background:#fffcf7ef;padding:15px 15px 13px;z-index:1;min-height:126px;display:flex;flex-direction:column;align-items:center}.character-info h2{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.5}.character-info p{font-size:10px;letter-spacing:1px;color:#9c8ba5;margin-top:5px}.pick-label{display:flex;align-items:center;gap:6px;color:var(--purple);font-size:10px;letter-spacing:1px;margin-top:12px}.pick-label svg{width:12px;height:12px}.versus{align-self:center;display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:-75px}.versus>span{display:grid;place-items:center;border:1px solid #dacfdf;border-radius:50%;width:42px;height:42px;font-family:var(--serif);font-size:16px;color:#a08ba9}.versus small{font-family:Georgia,serif;font-style:italic;color:#b8aaba;font-size:10px;letter-spacing:2px}.battle-actions{display:flex;justify-content:center;gap:14px;margin-top:24px}.button{border:1px solid #dbd1e3;padding:10px 19px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:11px;background:#fffdf9;transition:background .2s,transform .2s}.button svg{width:15px;height:15px}.button:hover:not(:disabled){background:#eee6f5;transform:translateY(-1px)}.button-primary{background:var(--dark);color:#f5edf9;border-color:var(--dark)}.button-primary:hover:not(:disabled){background:#51435f}.button-tie{background:#eae2f1;color:#78628b;border-color:#dfd1e9;min-width:220px}.button-quiet{background:0 0;border-color:#e4dce9;color:#9d8da7}.button-small{padding:8px 15px;font-size:11px}.keyboard-hints{display:flex;justify-content:center;gap:20px;font-size:9px;color:#a79aac;margin-top:22px}.keyboard-hints kbd{font-family:var(--sans);font-size:9px;background:#fffbf7;border:1px solid #e0d8e5;border-bottom-width:2px;padding:1px 5px;min-width:20px;display:inline-block;text-align:center;border-radius:3px}.battle-footnote{font-size:9px;text-align:center;color:#b0a4b7;margin-top:14px}.result-view{max-width:850px;margin:auto;padding-bottom:40px}.result-heading{text-align:center;padding:24px 0 28px}.winner-card{background:var(--dark);color:var(--paper);border-radius:12px;display:grid;grid-template-columns:310px minmax(0,1fr);min-height:340px;overflow:hidden;position:relative}.winner-portrait{display:flex;align-items:end;justify-content:center;position:relative;padding-top:24px;isolation:isolate;overflow:hidden}.winner-portrait:before{content:"";position:absolute;top:50%;left:50%;width:260px;height:260px;border-radius:50%;border:1px solid #8b709e;background:#88729725;transform:translate(-50%,-50%);z-index:-1}.winner-portrait img{max-height:345px;width:auto;object-fit:contain;align-self:flex-end;position:relative}.winner-portrait .winner-initial{display:grid;place-items:center;min-height:250px;font-family:var(--serif);font-size:90px;color:#cbb7db}.winner-copy{position:relative;align-self:center;padding:32px 35px 32px 10px}.winner-copy .eyebrow{color:#bca7ce;font-size:9px}.winner-copy h2{font-family:var(--serif);font-size:35px;line-height:1.5;font-weight:400;letter-spacing:1px;margin:12px 0}.winner-copy>p{font-size:12px;color:#c0aeca}.winner-quote{font-family:var(--serif);font-size:13px!important;color:#e5d6ea!important;letter-spacing:1px;margin-top:22px;line-height:2}.winner-badge{display:inline-block;color:#dbcba8;border:1px solid #a4916860;padding:4px 11px;font-size:10px;margin-top:22px;border-radius:3px}.tied-winners{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;max-height:160px;overflow:auto}.tied-winners span{font-size:10px;color:#d2bfdf;padding:3px 8px;border:1px solid #766283;border-radius:4px}.result-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:25px 0 8px}.export-note{font-size:9px;text-align:center;color:#a397ad}.ranking-card{background:var(--white);border:1px solid var(--line);border-radius:10px;margin-top:28px;overflow:hidden}.ranking-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--line)}.ranking-heading h2{font-family:var(--serif);font-size:19px;font-weight:500}.ranking-heading>span{color:#a492af;font-size:10px}.ranking-list{list-style:none;margin:0;padding:0}.ranking-row{display:flex;gap:18px;align-items:center;padding:13px 25px;border-bottom:1px solid #eee9f1;min-height:75px}.ranking-row:last-child{border:0}.rank-number{font-family:Georgia,serif;font-size:22px;color:#baacbf;width:33px;flex-shrink:0;text-align:center}.ranking-row:nth-child(-n+3) .rank-number{color:#9573aa}.rank-avatar{width:36px;height:46px;object-fit:cover;object-position:top;border-radius:4px;background:#ede5f4}.rank-info{flex:1;min-width:0}.rank-info strong{font-size:12px;font-weight:500}.rank-info p{font-size:10px;color:#a294aa;margin-top:2px}.rank-work{font-size:9px;color:#a592af}.result-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.result-note{text-align:center;color:#9d8aa9;font-family:var(--serif);font-size:12px;line-height:2;letter-spacing:1px;margin-top:34px}.site-footer{max-width:1184px;padding:23px 36px 26px;border-top:1px solid #e3dce5;margin:0 auto;color:#a396ac;font-size:9px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px 20px}.site-footer>div{display:flex;gap:16px;align-items:center}.footer-brand{font-size:11px;color:#8f7d9b}.site-footer button{font-size:9px;padding:0;color:#9c8aa8}.site-footer p{flex-basis:100%;font-size:8px;letter-spacing:.4px;opacity:.8}.site-footer .footer-links{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 28px;margin-top:8px}.site-footer .footer-links a{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 2px;color:#8f7d9b;font-size:11px;line-height:1.4;white-space:nowrap;border-bottom:1px solid transparent;border-radius:2px;transition:color .2s,border-color .2s}.site-footer .footer-links a:hover{color:var(--purple);border-bottom-color:currentColor}.site-footer .footer-img{width:16px;height:16px;object-fit:contain;flex-shrink:0;border-radius:50%}.about-dialog,.confirm-dialog{border:1px solid #ded4e7;background:var(--white);border-radius:13px;box-shadow:0 25px 80px #281b3b33;color:var(--ink);padding:30px;max-width:590px;width:calc(100% - 32px);max-height:85dvh;overflow:auto}.about-dialog::backdrop,.confirm-dialog::backdrop{background:#31243f55;backdrop-filter:blur(5px)}.dialog-header{display:flex;align-items:center;justify-content:space-between}.dialog-close{font-size:26px;line-height:1;color:#aa92ba;min-width:30px;min-height:30px}.about-dialog h2,.confirm-dialog h2{font-family:var(--serif);font-weight:500;font-size:26px;margin-top:12px}.about-dialog h3{font-size:13px;font-weight:500;color:var(--purple);margin-top:24px}.about-dialog p,.confirm-dialog p{font-size:12px;color:#8d7e97;line-height:2;margin-top:9px}.about-dialog a{color:#826296;text-decoration:underline;text-decoration-color:#d8c9e2;text-underline-offset:3px}.credits-links{display:flex;flex-wrap:wrap;gap:20px;margin-top:23px;font-size:11px}.confirm-dialog{max-width:430px}.confirm-dialog>div{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.toast{position:fixed;z-index:100;bottom:25px;left:50%;transform:translateX(-50%);max-width:calc(100% - 30px);width:max-content;background:#3e324aed;color:#f8f1ff;padding:12px 23px;border-radius:7px;box-shadow:0 5px 25px #261a3320;font-size:12px}.noscript-message{padding:20px;background:#eee4f5;color:#734d8a;margin:20px 0}@media(min-width:1400px){.hero{min-height:407px}.hero h1{font-size:53px}.hero-art{margin-left:20px}}@media(max-width:1000px){.site-header{padding:0 28px}.page-shell{padding:0 28px}.hero{grid-template-columns:1.1fr 1fr}.hero h1{font-size:40px}.hero-art{transform:scale(.88);transform-origin:center right;margin-left:-55px}.hero-description{font-size:12px}.setup-layout{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.settings-card{padding:22px}.invitation-card{padding:24px 22px 17px}.works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-options{gap:6px}.mode-option{padding:10px 7px}.mode-top{font-size:10px;gap:4px}.mode-option small{font-size:8px}.recommend-label{display:none}.work-tabs{gap:22px}.roster-list{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-tools{flex-wrap:wrap;gap:8px}.roster-tools input{flex-basis:100%}.hero-note{font-size:10px}.site-footer{padding-left:28px;padding-right:28px}.how-it-works{gap:18px}.how-it-works>div{gap:8px}.how-it-works p small{font-size:9px}}@media(max-width:740px){.site-header{height:75px;padding:0 21px}.brand-name{font-size:14px;letter-spacing:1px}.brand-name small{font-size:8px;letter-spacing:2px}.brand-logo{width:36px;height:36px}.site-header nav{gap:18px;font-size:11px}.home-link{display:none}.nav-link{font-size:11px}.page-shell{padding:0 21px}.hero{padding:31px 0 12px;grid-template-columns:1fr;gap:0;min-height:0}.hero-copy{text-align:center}.hero .eyebrow{font-size:8px;letter-spacing:1.5px}.hero h1{font-size:39px;line-height:1.55;margin:16px 0}.hero-description{font-size:11px;line-height:2}.hero-note{justify-content:center;margin-top:15px}.hero-art{height:260px;width:340px;max-width:100%;margin:22px auto 0;transform:none}.art-disc{width:218px;height:218px;top:8px;left:19%}.portrait-paper{width:141px;height:211px;top:14px;border-width:5px}.paper-reimu{left:12%;top:24px}.paper-marisa{left:48%;top:10px}.portrait-paper>span{font-size:9px;line-height:22px}.orbit{height:88%}.orbit-two{height:78%;top:8%}.art-kanji{font-size:160px;top:-25px}.art-label{padding:7px 13px;left:0;bottom:24px}.art-label span{font-size:11px}.art-label small{font-size:6px;margin-top:2px}.star-one{font-size:23px;left:6%;top:3px}.star-two{font-size:32px;right:3%;bottom:17px}.star-three{right:0;top:53px}.art-caption{font-size:8px;bottom:-1px;right:20%;letter-spacing:2px}.journey{margin:17px 0 22px;padding:16px 0;justify-content:space-between;font-size:10px;letter-spacing:0}.journey li{gap:6px}.journey li+li:before{width:15px;margin:0 7px 0 0}.journey li>span{font-size:11px}.journey .is-current>span{width:21px;height:21px;font-size:10px}.setup-layout{grid-template-columns:1fr;gap:18px}.settings-card{padding:22px 19px 18px;border-radius:10px}.text-button{font-size:10px}.works-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.work-option{font-size:10px;padding:8px 7px;gap:5px}.work-info small{font-size:7px;letter-spacing:.5px}.work-check{width:10px;height:10px}.work-check svg{width:8px;height:8px}.work-tabs{gap:24px}.work-tabs button{font-size:11px}.work-tabs button>span{font-size:8px}.field-heading h3,.ranking-field legend{font-size:11px}.field-heading>span{font-size:9px}.mode-top{font-size:10px;gap:5px}.mode-option{padding:11px 7px}.mode-option small{font-size:8px}.ranking-field legend{margin-bottom:11px}.roster-details summary{font-size:9px}.roster-list{grid-template-columns:repeat(2,minmax(0,1fr))}.invitation-column{position:static}.invitation-card{padding:21px 23px;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;gap:0 22px;align-items:center}.invitation-card h2{font-size:23px;line-height:1.6;margin-top:16px;letter-spacing:1px}.avatar-stack,.little-note{display:none}.invited-count{grid-column:1/-1;grid-row:1;justify-content:flex-start;gap:10px;margin-top:0}.invited-count strong{font-size:51px}.invited-count>span{font-size:9px;letter-spacing:0}.invitation-stats{grid-column:1/-1;flex-direction:row;justify-content:space-between;border-top:1px solid #74618066;padding-top:15px;margin-top:19px;gap:8px;font-size:9px}.invitation-stats>div{gap:9px}.comparison-estimate{grid-column:1/-1;margin-top:8px;font-size:9px}.start-button{grid-column:1/-1;margin-top:16px;padding:13px;font-size:13px}.start-hint{grid-column:1/-1;margin-top:9px;font-size:9px}.how-it-works{grid-template-columns:1fr;gap:18px;padding:30px 8px}.how-it-works>div{gap:16px}.how-it-works p{display:flex;gap:12px;align-items:baseline}.how-it-works p strong{font-size:10px;flex-shrink:0}.how-it-works p small{font-size:9px}.how-it-works>div>span{font-size:13px}.site-footer{padding:22px 21px;gap:12px}.site-footer>div{gap:10px;flex-wrap:wrap}.site-footer>div:first-child{display:block}.site-footer>div:first-child>span:last-child{display:block;font-size:8px;margin-top:5px}.site-footer p{font-size:7px}.site-footer>div:nth-child(2){font-size:8px;gap:7px}.resume-banner{gap:10px;padding:13px;flex-wrap:wrap}.resume-banner strong{font-size:10px}.resume-banner span{font-size:9px}.resume-banner>.button{margin-left:auto;font-size:10px}.battle-heading{margin:24px 0}.battle-heading h1,.result-heading h1{font-size:26px;letter-spacing:1px}.battle-heading .eyebrow,.result-heading .eyebrow{font-size:8px}.battle-heading p{font-size:10px}.save-status{font-size:8px}.battle-arena{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:7px;margin-top:19px}.portrait-stage{height:230px}.portrait-stage img{height:225px;max-width:unset;max-height:100%;width:100%;object-fit:contain}.portrait-stage:before{height:140px;width:140px;top:30px}.portrait-kicker{font-size:7px;top:13px;left:12px}.character-card{border-radius:9px}.character-card:after{inset:6px;border-radius:5px}.character-info{padding:13px 8px;min-height:127px;justify-content:center}.character-info h2{font-size:18px}.character-info p{font-size:8px;letter-spacing:0;margin-top:5px}.pick-label{font-size:9px;letter-spacing:0;margin-top:10px}.versus{margin-top:-85px;gap:6px}.versus>span{width:23px;height:23px;font-size:11px}.versus small{font-size:7px;letter-spacing:1px}.battle-actions{gap:9px;margin-top:20px;display:grid;grid-template-columns:1fr 1.4fr}.battle-actions .button{min-width:0;font-size:10px;padding:12px 8px;gap:5px}.battle-actions svg{width:12px;height:12px}.keyboard-hints{display:none}.battle-footnote{font-size:8px;margin-top:18px}.progress-meta{font-size:9px}.portrait-stage .portrait-fallback{font-size:37px}.winner-card{grid-template-columns:135px 1fr;min-height:280px;border-radius:10px}.winner-portrait img{max-height:245px;min-width:150px;object-fit:contain}.winner-portrait:before{width:190px;height:190px}.winner-copy{padding:25px 18px 25px 7px}.winner-copy h2{font-size:26px;letter-spacing:0;margin:12px 0 8px}.winner-copy .eyebrow{font-size:7px;letter-spacing:1px}.winner-copy>p{font-size:10px}.winner-quote{font-size:10px!important;letter-spacing:0;margin-top:15px}.winner-badge{font-size:8px;margin-top:17px}.result-heading{padding:15px 0 24px}.result-heading p{font-size:10px}.result-actions{gap:8px}.result-actions .button{font-size:10px;padding:10px 12px}.export-note{font-size:8px}.ranking-heading{padding:17px}.ranking-heading h2{font-size:17px}.ranking-row{padding:10px 14px;gap:10px}.rank-number{font-size:20px;width:27px}.rank-info strong{font-size:11px}.rank-info p{font-size:8px}.rank-work{display:none}.rank-avatar{width:29px;height:39px}.ranking-heading>span{font-size:9px}.result-bottom .button{font-size:10px;padding:9px 12px}.result-note{font-size:11px}.about-dialog{padding:24px}.about-dialog h2{font-size:23px}}@media(max-width:375px){.page-shell{padding:0 15px}.site-header{padding:0 15px}.brand{gap:8px}.brand-name{font-size:13px}.site-header nav{gap:13px;font-size:10px}.nav-link{font-size:10px}.hero h1{font-size:34px}.hero-art{width:310px}.journey{font-size:9px}.journey li+li:before{width:9px;margin-right:3px}.settings-card{padding:20px 15px}.work-option{font-size:9px;padding:7px 5px;gap:3px}.mode-top{font-size:9px;gap:3px}.mode-top svg{width:12px}.mode-option small{font-size:7px}.mode-number{font-size:13px}.portrait-stage{height:195px}.portrait-stage img{height:192px}.character-info h2{font-size:16px}.character-info p{font-size:7px}.character-info{min-height:123px}.winner-card{grid-template-columns:110px 1fr}.winner-portrait img{min-width:135px;max-height:210px}.winner-copy h2{font-size:23px}.invitation-card h2{font-size:21px}.invited-count strong{font-size:45px}.how-it-works p{gap:8px}.how-it-works p small{font-size:8px}}@media(prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.export-note,.journey,.result-actions,.result-bottom,.site-footer,.site-header{display:none}.page-shell{padding:0;max-width:100%}.winner-card{print-color-adjust:exact}.ranking-row{break-inside:avoid}}@media(max-height:850px){body[data-view=battle] .site-header{height:64px}body[data-view=battle] .journey{margin:12px 0 13px;padding:12px 0}.battle-heading{margin:9px 0 12px}.battle-heading .eyebrow{font-size:8px}.battle-heading h1{font-size:26px;line-height:1.4;margin:6px 0}.battle-heading p{font-size:10px}.battle-arena{margin-top:14px}.portrait-stage{height:205px}.portrait-stage img{height:202px}.portrait-stage:before{width:170px;height:170px;top:18px}.character-info{min-height:102px;padding:10px}.character-info h2{font-size:21px}.character-info p{margin-top:3px}.pick-label{margin-top:8px}.battle-actions{margin-top:14px}.battle-actions .button{padding:9px 16px}.keyboard-hints{margin-top:12px}.battle-footnote{margin-top:9px}.battle-view{padding-bottom:22px}}@media(max-width:740px){body[data-view=battle] .site-header{height:65px}body[data-view=battle] .journey{margin:13px 0 15px;padding:13px 0}.battle-heading{margin:15px 0 18px}.battle-heading h1{font-size:25px;line-height:1.5;margin:8px 0}.battle-heading p{font-size:10px}.battle-arena{margin-top:16px}.portrait-stage{height:215px}.portrait-stage img{height:213px}.character-info{min-height:124px;padding:12px 8px}.character-info h2{font-size:18px;line-height:1.5}.character-info p{line-height:1.8;font-size:8px}.battle-actions .button{padding:12px 7px}.battle-footnote{margin-top:16px}.battle-view{padding-bottom:22px}}@media(max-width:375px){.portrait-stage{height:180px}.portrait-stage img{height:178px}.character-info h2{font-size:16px}.character-info{min-height:125px}}.field-heading>span,.mode-option small{color:#887791}.work-info small{color:#8d7d97}.comparison-estimate,.start-hint{color:#b5a5c1}.work-tabs button{min-height:36px}.work-info>span{white-space:normal;overflow-wrap:break-word}@media (max-width:740px){.hero{grid-template-columns:minmax(0,1fr);overflow:clip}.hero-copy{min-width:0}.hero-art{width:100%;max-width:340px;min-width:0;overflow:clip}.portrait-paper{width:44%;height:auto;aspect-ratio:2/3}}@media (max-width:375px){.hero h1{font-size:clamp(27px, 8.5vw, 32px);letter-spacing:1px}}.work-search{display:flex;align-items:center;gap:10px;margin:0 0 17px}.work-search input{width:100%;min-width:0;border:1px solid #e4dce9;border-radius:6px;padding:9px 11px;background:#fbf9fc;color:var(--ink);font-size:11px}.work-search input::placeholder{color:#a598ae}.work-search>span{font-size:9px;color:#8b769a;white-space:nowrap}.work-search>span:empty{display:none}.work-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:13px}.work-tabs button{font-size:11px;text-align:center;padding:0 0 10px;min-width:0}.work-tabs button>span{margin-left:3px;padding:0 4px}.work-group-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;color:#8b7798;font-size:10px}.work-group-tools label{display:flex;align-items:center;gap:7px;cursor:pointer;min-height:25px}.work-group-tools input{accent-color:var(--purple);margin:0;width:13px;height:13px}.work-group-tools>span{font-size:9px;color:#a08caa}.work-option{min-height:58px}.work-info small{line-height:1.5;letter-spacing:.25px;overflow-wrap:anywhere}.field-heading{gap:10px;flex-wrap:wrap}#work-empty{padding:22px 6px;font-size:11px}@media(max-width:1100px){.work-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 18px}}@media(max-width:740px){.work-search{margin-bottom:14px;gap:7px}.work-search input{font-size:10px;padding:10px}.work-search>span{font-size:8px}.work-tabs{gap:5px 12px}.work-tabs button{min-height:36px;font-size:11px;padding-top:3px}.work-group-tools{font-size:9px}.work-option{min-height:59px}.work-info small{font-size:7px}}@media(max-width:375px){.work-tabs{gap:5px 8px}.work-tabs button{font-size:10px}}.preset-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 8px}.preset-heading>span{color:#84718f;font-size:10px}.preset-heading small{margin-left:9px;font-size:9px;color:#a191aa}.preset-heading .text-button{padding:3px 0 3px 10px}.preset-description{font-size:10px;line-height:1.8;color:#917c9e;margin-bottom:13px}@media(max-width:740px){.preset-row{gap:7px 6px}.preset-description{font-size:9px}}.preset-chip{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:33px;padding:5px 10px;border:1px solid #e5dfe9;border-radius:5px;color:#8b7a97;font-size:10px;cursor:pointer;white-space:nowrap;transition:background .2s,border-color .2s}.preset-chip:hover{background:var(--lavender)}.preset-chip input{margin:0;width:12px;height:12px;accent-color:var(--purple);cursor:pointer}.preset-chip:has(input:checked){background:#eae0f2;border-color:#aa90bd;color:#654b7a;box-shadow:inset 0 0 0 1px #aa90bd25}.preset-chip:has(input:focus-visible){outline:3px solid #a48dc1;outline-offset:3px}.preset-description{overflow-wrap:anywhere}@media(max-width:740px){.preset-chip{min-height:36px;padding:6px 8px;gap:5px}}.storage-warning{font-size:11px;text-align:center;color:var(--ink);line-height:1.8;margin:17px 0 0}.dialog-header{justify-content:flex-end}.github-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;color:var(--ink)}.github-link svg{width:23px;height:23px;fill:currentColor;stroke:none}.github-link:hover{color:var(--purple);background:var(--lavender)}@media(max-width:520px){.site-header .nav-current{display:none}}.brand-name-latin{white-space:nowrap}@media(max-width:520px){.site-header .brand{gap:8px;min-width:0}.site-header .brand-name{font-size:13px;letter-spacing:.5px}.site-header .brand-name-latin{display:block;font-size:11px;letter-spacing:.3px}}.hero h1{letter-spacing:1px}.hero-description{font-size:14px;color:#746a7b}.hero-note,.journey{font-size:12px}.field-heading h3,.ranking-field legend{font-size:14px}.group-selection,.preset-description,.preset-heading>span,.text-button,.work-heading-actions>span,.work-tabs button{font-size:12px;color:#74627f}.preset-heading small,.recommend-label{font-size:11px;color:#74627f}.preset-chip{font-size:12px;color:#74627f}.work-option{font-size:13px;line-height:1.55}.work-info small{font-size:11px;letter-spacing:.3px;color:#776881}.mode-top{font-size:13px}.mode-option small{font-size:11px;color:#776881}.roster-description,.roster-details summary{font-size:12px;color:#74627f}.comparison-estimate,.invitation-stats,.start-hint{font-size:12px}.comparison-estimate,.invitation-stats span{color:#d2c4dd}.work-info>span{white-space:normal;overflow-wrap:anywhere}@media(max-width:740px){.works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-option{font-size:12px;padding:9px 8px;min-height:56px}.preset-chip{min-height:40px}.mode-top{font-size:12px;white-space:normal;flex-wrap:wrap}.mode-option small{font-size:11px}.recommend-label{margin-left:0}.work-tabs button{font-size:11px}.mode-option{padding:12px 8px}.work-search input{font-size:16px}}@media(max-width:375px){.mode-options{grid-template-columns:1fr}.mode-option{display:flex;justify-content:space-between;gap:8px;align-items:center}.mode-option small{margin-top:0}.mode-top{font-size:12px}.hero-note{font-size:11px}.journey{font-size:10px}}