:root{--ink:#101c17;--ink-2:#17261f;--panel:#1c2c24;--panel-2:#22362c;--hairline:#3c5346;--parchment:#efe4c8;--parchment-dim:#c9c0a2;--gold:#cda434;--gold-bright:#e6c465;--karu:#7a9a4a;--connous:#d9a441;--calida:#4a8fb0;--pera:#bb4a30;--ship:#4fae9c;--ducat:#c98a3f;--letters:#9a7fd1;--shadow: 0 10px 30px rgba(0,0,0,.35)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 15% -10%,rgba(205,164,52,.08),transparent 60%),radial-gradient(900px 500px at 110% 10%,rgba(74,143,176,.1),transparent 55%),linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 100%);color:var(--parchment);font-family:Spectral,serif;min-height:100vh;padding-bottom:60px}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}header{padding:36px 20px 22px;text-align:center;position:relative}.eyebrow{font-family:JetBrains Mono,monospace;letter-spacing:.28em;font-size:11px;color:var(--gold);text-transform:uppercase;opacity:.85}h1{font-family:Cinzel,serif;font-weight:700;font-size:clamp(28px,5vw,44px);margin:8px 0 6px;color:var(--parchment);letter-spacing:.01em}header p.sub{color:var(--parchment-dim);font-size:15px;font-style:italic;margin:0}.season-tag{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-family:JetBrains Mono,monospace;font-size:11.5px;letter-spacing:.04em;color:var(--gold-bright);background:#cda43414;border:1px solid var(--hairline);padding:6px 14px;border-radius:20px}.season-dates{color:var(--parchment-dim);font-weight:400}.seal-row{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:22px;flex-wrap:wrap}.seal{width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;flex:none}.seal svg{width:74px;height:74px;transform:rotate(-90deg)}.seal-track{fill:none;stroke:var(--hairline);stroke-width:6}.seal-fill{fill:none;stroke:var(--gold);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.seal-label{position:absolute;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;color:var(--gold-bright)}.seal-caption{text-align:left}.seal-caption .n{font-family:Cinzel,serif;font-size:15px;color:var(--parchment)}.seal-caption .d{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--parchment-dim)}.reset-btn{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;background:transparent;color:#e0a596;border:1px solid #7a3a2e;padding:10px 16px;border-radius:3px;cursor:pointer;transition:background .15s ease,color .15s ease}.reset-btn:hover{background:#3a1f1a;color:#ffcabb}nav{display:flex;gap:6px;overflow-x:auto;padding:26px 20px 0;max-width:1080px;margin:0 auto;scrollbar-width:none}nav::-webkit-scrollbar{display:none}.tab-btn{font-family:Cinzel,serif;font-weight:600;font-size:13px;letter-spacing:.03em;white-space:nowrap;background:var(--panel);color:var(--parchment-dim);border:1px solid var(--hairline);border-bottom:none;padding:12px 18px;border-radius:6px 6px 0 0;cursor:pointer;transition:all .15s ease}.tab-btn[data-accent=master].active{color:var(--gold-bright);border-color:var(--gold)}.tab-btn[data-accent=karu].active{color:var(--karu);border-color:var(--karu)}.tab-btn[data-accent=connous].active{color:var(--connous);border-color:var(--connous)}.tab-btn[data-accent=calida].active{color:var(--calida);border-color:var(--calida)}.tab-btn[data-accent=pera].active{color:var(--pera);border-color:var(--pera)}.tab-btn[data-accent=ships].active{color:var(--ship);border-color:var(--ship)}.tab-btn[data-accent=letters].active{color:var(--letters);border-color:var(--letters)}.tab-btn.active{background:var(--panel-2)}.tab-btn:not(.active):hover{color:var(--parchment)}main{background:var(--panel-2);border:1px solid var(--hairline);border-radius:0 6px 6px;max-width:1080px;margin:0 auto;padding:30px 26px 36px;box-shadow:var(--shadow)}.tab-panel{display:none}.tab-panel.active{display:block}.region-progress{display:flex;align-items:center;gap:14px;margin-bottom:26px}.bar-track{flex:1;height:8px;background:var(--ink);border-radius:4px;overflow:hidden;border:1px solid var(--hairline)}.bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.bar-text{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--parchment-dim);white-space:nowrap}.stamp{display:inline-block;font-family:Cinzel,serif;font-size:11px;letter-spacing:.14em;border:2px solid var(--gold);color:var(--gold-bright);padding:3px 10px;border-radius:3px;transform:rotate(-4deg);opacity:0;transition:opacity .4s ease;text-transform:uppercase}.stamp.show{opacity:1}.collect-section{margin-bottom:26px;border:1px solid var(--gold);border-radius:6px;overflow:hidden;background:var(--panel)}.collect-head{width:100%;display:flex;align-items:baseline;gap:10px;padding:12px 16px;background:#cda4341a;border:none;border-bottom:1px solid var(--hairline);cursor:pointer;text-align:left;font-family:inherit;color:inherit}.collect-toggle-icon{flex:none;color:var(--gold-bright);font-size:12px}.collect-head h2{margin:0;font-family:Cinzel,serif;font-size:14.5px;letter-spacing:.03em;color:var(--parchment)}.collect-sub{flex:1;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--parchment-dim)}.collect-head .qty{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--parchment-dim);flex:none}.collect-body{padding:0;max-height:50vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--gold) var(--ink)}.collect-body::-webkit-scrollbar{width:10px}.collect-body::-webkit-scrollbar-track{background:var(--ink)}.collect-body::-webkit-scrollbar-thumb{background:var(--gold);border-radius:5px;border:2px solid var(--ink)}.collect-body::-webkit-scrollbar-thumb:hover{background:var(--gold-bright)}.collect-empty{padding:16px;font-size:13.5px;color:var(--parchment-dim);font-style:italic}ul.collect-list .mat-name{color:var(--parchment)}.group{margin-bottom:22px;border:1px solid var(--hairline);border-radius:6px;overflow:hidden;background:var(--panel)}.group-head{display:flex;justify-content:space-between;align-items:baseline;padding:12px 16px;background:var(--ink-2);border-bottom:1px solid var(--hairline)}.group-head h2{margin:0;font-family:Cinzel,serif;font-size:14.5px;letter-spacing:.03em;color:var(--parchment)}.group-head .qty{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--parchment-dim)}.accent-bar{height:3px;width:100%}ul.mat-list{list-style:none;margin:0;padding:0}ul.mat-list li{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:11px 16px;border-bottom:1px solid rgba(60,83,70,.5);cursor:pointer}ul.mat-list li:last-child{border-bottom:none}ul.mat-list li:hover{background:#cda4340f}ul.mat-list li.checked .mat-name{color:var(--parchment-dim);text-decoration:line-through;text-decoration-color:var(--hairline)}ul.mat-list li.checked{background:#cda4340a}.chk{appearance:none;-webkit-appearance:none;width:19px;height:19px;border:1.5px solid var(--gold);border-radius:3px;background:transparent;cursor:pointer;flex:none;position:relative;transition:background .15s ease}.chk:checked{background:var(--gold)}.chk:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg)}.chk:indeterminate{background:#cda43459}.chk:indeterminate:after{content:"";position:absolute;left:3px;top:7.5px;width:11px;height:2.5px;background:var(--gold-bright)}.mat-icon{width:28px;height:28px;flex:none;padding:2px;border-radius:4px;background:#0003;border:1px solid var(--hairline);object-fit:contain}.mat-name{flex:1;font-size:14.5px}.mat-frac{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--gold-bright);white-space:nowrap}.mat-qty{font-family:JetBrains Mono,monospace;font-size:12.5px;color:var(--gold-bright);background:#cda4341a;padding:2px 8px;border-radius:3px;flex:none}.recipe-toggle{flex:none;font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.02em;background:transparent;color:var(--parchment-dim);border:1px solid var(--hairline);border-radius:3px;padding:3px 8px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.recipe-toggle:hover{color:var(--gold-bright);border-color:var(--gold)}.recipe-detail{flex:1 1 100%;order:1;margin-top:2px;padding:10px 12px;background:#0000002e;border:1px solid var(--hairline);border-radius:4px;font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--parchment-dim);cursor:default}.recipe-detail-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px}.recipe-skill-line{flex:1}.recipe-skill{color:var(--gold-bright);font-weight:600}.recipe-note{font-style:italic}.recipe-wiki-link{flex:none;color:var(--parchment-dim);text-decoration:none;font-size:10.5px;white-space:nowrap;border-bottom:1px dotted var(--hairline)}.recipe-wiki-link:hover{color:var(--gold-bright);border-bottom-color:var(--gold)}.recipe-skill-icon{width:18px;height:18px;vertical-align:-4px;margin-right:5px;border-radius:3px;object-fit:contain}.recipe-ing{display:flex;gap:8px;padding:2px 0}.recipe-ing-qty{flex:none;min-width:34px;color:var(--gold-bright)}.recipe-ing-name{color:var(--parchment-dim)}.good-block{margin-bottom:0}.good-title-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 16px;background:#00000026;border-top:1px solid var(--hairline)}.good-title-row:first-child{border-top:none}.good-title{font-family:Cinzel,serif;font-size:13px;color:var(--parchment)}.good-weekly{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--parchment-dim)}.talent-grid{columns:2 320px;column-gap:18px}.talent-grid .group{break-inside:avoid}footer{text-align:center;padding:26px 20px 10px;color:var(--parchment-dim);font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.05em}main.error-panel{border-radius:6px;text-align:center}.error-code{margin:0 0 12px;color:var(--gold);font-family:Cinzel,serif;font-size:40px;font-weight:700}.fishing-art{border-radius:6px;overflow:hidden}.fishing-art img{display:block;width:100%;height:auto;mix-blend-mode:color-dodge}.error-caption{margin:5px 0 0;color:var(--parchment-dim);font-family:JetBrains Mono,monospace;font-size:12px}.error-caption a{color:var(--gold-bright)}@media(max-width:640px){main{padding:22px 14px 28px;border-radius:0 4px 4px}.talent-grid{columns:1}.seal-row{flex-direction:column}}
