:root{--bg: #060810;--panel: #11151f;--panel-2: #161c28;--border: #1f2530;--border-2: #2a3550;--text: #e6eaf2;--sub: #aab2c0;--muted: #88aacc;--muted-2: #557799;--primary: #66aaff;--accent: #ffd28a;--success: #88ff88;--warn: #ff8888;--hot: #ff8844;--font-sans: "Hiragino Sans", "Yu Gothic UI", "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Menlo", "Consolas", "SF Mono", ui-monospace, monospace;--r-sm: 3px;--r-md: 5px;--r-lg: 8px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.6;letter-spacing:.01em;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;color:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1f2530;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#2a3550}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.app{min-height:100vh;display:flex;flex-direction:column}.app.mobile-frame{background:radial-gradient(ellipse at top,#0a0d18,#060810,#03050a);align-items:center;padding:24px 0}.app.mobile-frame .mobile-shell{width:390px;min-height:844px;max-height:calc(100vh - 48px);background:var(--bg);border-radius:32px;border:1px solid #1f2530;box-shadow:0 24px 80px #000000b3,0 0 0 8px #0a0c14;overflow:hidden;display:flex;flex-direction:column}.page{flex:1;width:100%}.container{max-width:1280px;margin:0 auto;padding:0 24px}.container-narrow{max-width:980px;margin:0 auto;padding:0 24px}.gheader{position:sticky;top:0;z-index:50;background:#11151fd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.gheader-row{display:flex;align-items:center;gap:20px;height:56px}.glogo{display:inline-flex;align-items:baseline;gap:2px;text-decoration:none;font-weight:800;letter-spacing:.01em;white-space:nowrap}.glogo:hover{text-decoration:none}.glogo .logo-p{color:var(--accent);font-size:22px;font-family:var(--font-mono);font-weight:700;letter-spacing:-.02em}.glogo .logo-brand{color:var(--text);font-size:14px;font-weight:600;margin-left:4px}.glogo .logo-sub{color:var(--muted-2);font-size:11px;font-family:var(--font-mono);margin-left:6px}.gnav{display:flex;gap:4px;align-items:center}.gnav a,.gnav .navitem{color:var(--sub);padding:6px 10px;border-radius:var(--r-sm);font-size:13px;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:color .15s,background .15s}.gnav a:hover,.gnav .navitem:hover{color:var(--text);background:#ffffff0a;text-decoration:none}.gnav a.active,.gnav .navitem.active{color:var(--accent)}.gsearch{flex:1;max-width:480px;position:relative}.gsearch input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:7px 12px 7px 32px;color:var(--text);font-family:inherit;font-size:13px;outline:none;transition:border-color .15s,background .15s}.gsearch input:focus{border-color:var(--primary);background:var(--panel-2)}.gsearch input::placeholder{color:var(--muted-2)}.gsearch .sicon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted-2);pointer-events:none;font-family:var(--font-mono);font-size:12px}.gsearch-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:6px;box-shadow:0 12px 40px #0009;z-index:60}.gsearch-suggest .sgroup-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);padding:6px 8px 2px;font-family:var(--font-mono)}.gsearch-suggest .sitem{padding:6px 8px;border-radius:var(--r-sm);cursor:pointer;display:flex;align-items:center;gap:10px;font-size:13px}.gsearch-suggest .sitem:hover{background:#66aaff14}.gsearch-suggest .sitem .sthumb{width:28px;height:28px;border-radius:3px;flex-shrink:0}.gsearch-suggest .sitem .smeta{font-size:11px;color:var(--muted-2);margin-left:auto;font-family:var(--font-mono)}.gright{margin-left:auto;display:flex;align-items:center;gap:8px}.gbtn-notif{position:relative;background:none;border:1px solid var(--border);width:32px;height:32px;border-radius:var(--r-md);color:var(--sub);display:inline-flex;align-items:center;justify-content:center}.gbtn-notif:hover{background:var(--panel-2);color:var(--text)}.gbtn-notif .dot{position:absolute;top:4px;right:5px;width:6px;height:6px;background:var(--hot);border-radius:50%;border:1.5px solid var(--panel)}.gavatar{display:inline-flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer}.gavatar:hover{border-color:var(--border-2)}.gavatar .avimg{width:24px;height:24px;border-radius:3px;background:linear-gradient(135deg,var(--accent),var(--primary));display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:11px;color:var(--bg)}.gavatar .avname{font-size:12px;color:var(--text)}.gavatar .avchev{font-family:var(--font-mono);color:var(--muted-2);font-size:10px}.gdrop{position:absolute;top:100%;right:0;margin-top:6px;min-width:220px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:6px;box-shadow:0 12px 40px #0009}.gdrop-section{padding:4px 0;border-top:1px solid var(--border)}.gdrop-section:first-child{border-top:0}.gdrop-header{padding:8px 8px 4px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-family:var(--font-mono)}.gdrop .gdrop-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-sm);font-size:13px;color:var(--text);cursor:pointer;text-decoration:none}.gdrop .gdrop-item:hover{background:#66aaff14;text-decoration:none}.gdrop .gdrop-item .ic{color:var(--muted-2);font-family:var(--font-mono);width:14px;text-align:center}.gdrop .gdrop-item .meta{margin-left:auto;color:var(--muted-2);font-family:var(--font-mono);font-size:11px}.ph{position:relative;width:100%;background:var(--panel-2);border-radius:var(--r-md);overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted-2);font-family:var(--font-mono);font-size:11px;text-align:center;user-select:none}.ph svg{position:absolute;inset:0;width:100%;height:100%}.ph .ph-caption{position:relative;z-index:1;padding:4px 8px;background:#0608108c;border:1px solid rgba(170,178,192,.15);border-radius:2px;letter-spacing:.05em;color:var(--sub)}.ph .ph-tone-romance{background:linear-gradient(135deg,#1a1320,#2a1830)}.ph .ph-tone-mystery{background:linear-gradient(135deg,#0e1620,#1c2c3e)}.ph .ph-tone-comedy{background:linear-gradient(135deg,#1f1a10,#322a18)}.ph .ph-tone-horror{background:linear-gradient(135deg,#14080a,#200a14)}.ph .ph-tone-fantasy{background:linear-gradient(135deg,#100e22,#1c1838)}.ph .ph-tone-scifi{background:linear-gradient(135deg,#061018,#0a1828)}.ph .ph-tone-slice{background:linear-gradient(135deg,#0f1a14,#182820)}.ph .ph-tone-other{background:linear-gradient(135deg,#14141c,#1c1c28)}.wcard{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;text-decoration:none;color:inherit;position:relative}.wcard:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:0 8px 24px #00000080;text-decoration:none}.wcard .wthumb{aspect-ratio:16/9;position:relative}.wcard .wbadges{position:absolute;top:6px;left:6px;display:flex;gap:4px;z-index:2}.wcard .wprice{position:absolute;top:6px;right:6px;z-index:2}.wcard .wbody{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px}.wcard .wtitle{color:var(--accent);font-weight:700;font-size:14px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wcard .wauthor{color:var(--muted);font-size:11px;font-family:var(--font-mono)}.wcard .wmeta{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:11px;color:var(--sub)}.wcard .wmeta .stars{color:var(--accent)}.wcard .wmeta .mono{font-family:var(--font-mono);color:var(--muted-2)}.wcard.wide{flex-direction:row;background:transparent;border:0;align-items:center;gap:12px}.wcard.wide .wthumb{width:96px;height:54px;aspect-ratio:auto;flex-shrink:0}.wcard.wide .wbody{padding:0;flex:1}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:3px;font-size:10px;font-family:var(--font-mono);font-weight:600;letter-spacing:.02em;line-height:1.4;white-space:nowrap}.badge-genre{background:#66aaff2e;color:var(--primary);border:1px solid rgba(102,170,255,.3)}.badge-age{background:#ff88881f;color:var(--warn);border:1px solid rgba(255,136,136,.3)}.badge-age-all{background:#88ff881a;color:var(--success);border:1px solid rgba(136,255,136,.25)}.badge-new{background:#ff88442e;color:var(--hot);border:1px solid rgba(255,136,68,.35)}.badge-pick{background:var(--accent);color:#1a1308;border:0;padding:3px 8px;font-weight:700}.badge-price{background:#060810d9;color:var(--accent);border:1px solid rgba(255,210,138,.4);padding:3px 7px;font-weight:700}.badge-free{background:#88ff882e;color:var(--success);border:1px solid rgba(136,255,136,.35);padding:3px 7px;font-weight:700}.badge-state{background:var(--panel-2);color:var(--sub);border:1px solid var(--border)}.badge-state.published{color:var(--success);border-color:#88ff884d}.badge-state.draft{color:var(--muted);border-color:#88aacc4d}.badge-state.private{color:var(--sub)}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:11px;background:var(--panel-2);color:var(--sub);border:1px solid var(--border);cursor:pointer;transition:border-color .15s,color .15s}.tag:hover{border-color:var(--primary);color:var(--text)}.tag.tag-active{background:#66aaff2e;color:var(--primary);border-color:#6af6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--panel);border-color:var(--border-2);text-decoration:none}.btn-primary{background:var(--primary);color:#06121f;border-color:var(--primary);font-weight:700}.btn-primary:hover{background:#88bdff;border-color:#88bdff;color:#06121f}.btn-accent{background:var(--accent);color:#1a1308;border-color:var(--accent);font-weight:700}.btn-accent:hover{background:#ffe0a8;border-color:#ffe0a8}.btn-ghost{background:transparent}.btn-ghost:hover{background:var(--panel-2)}.btn-icon{padding:8px 10px}.btn-sm{padding:5px 10px;font-size:12px}.btn-lg{padding:12px 22px;font-size:15px}.btn-block{width:100%}.section{margin:40px 0}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;gap:16px}.section-head h2{margin:0;font-size:16px;font-weight:700;letter-spacing:.02em;display:flex;align-items:baseline;gap:10px}.section-head h2:before{content:"▎";color:var(--accent);margin-right:-4px}.section-head h2 .sh-en{font-family:var(--font-mono);font-size:11px;color:var(--muted-2);font-weight:400;text-transform:uppercase;letter-spacing:.15em}.section-head .sh-more{font-size:12px;color:var(--muted);font-family:var(--font-mono);text-decoration:none}.section-head .sh-more:hover{color:var(--primary)}.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.hscroll{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;margin:0 -24px;padding-left:24px;padding-right:24px}.hscroll>*{flex:0 0 220px;scroll-snap-align:start}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;position:relative}.hero-image{aspect-ratio:16/9;position:relative}.hero-body{padding:28px 28px 24px 8px;display:flex;flex-direction:column;justify-content:center;gap:12px}.hero .pickup-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.15em}.hero h1{margin:0;font-size:28px;line-height:1.25;color:var(--accent);font-weight:800;letter-spacing:.02em}.hero .hero-author{color:var(--muted);font-size:13px;font-family:var(--font-mono)}.hero .hero-desc{color:var(--sub);font-size:13px;line-height:1.7}.hero .hero-meta{display:flex;gap:10px;font-size:12px;color:var(--sub);font-family:var(--font-mono)}.hero .hero-meta .stars{color:var(--accent)}.hero .hero-actions{display:flex;gap:8px;margin-top:8px}.rank-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px}.rank-item{display:grid;grid-template-columns:40px 80px 1fr auto;gap:14px;padding:8px 8px 8px 0;border-bottom:1px solid var(--border);align-items:center;cursor:pointer;border-radius:var(--r-sm);text-decoration:none;color:inherit}.rank-item:hover{background:#66aaff0a;text-decoration:none}.rank-num{font-family:var(--font-mono);font-size:24px;font-weight:800;color:var(--muted-2);text-align:center;letter-spacing:-.04em}.rank-item.top-1 .rank-num{color:var(--accent)}.rank-item.top-2 .rank-num{color:#d9c5a0}.rank-item.top-3 .rank-num{color:#c89b6e}.rank-thumb{aspect-ratio:16/9}.rank-body{display:flex;flex-direction:column;gap:2px;min-width:0}.rank-title{color:var(--accent);font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-author{color:var(--muted);font-size:11px;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-stats{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--sub);font-family:var(--font-mono);flex-direction:column;align-items:flex-end}.rank-stats .delta{font-size:10px;padding:1px 5px;border-radius:2px}.rank-stats .delta.up{color:var(--success);background:#88ff881a}.rank-stats .delta.dn{color:var(--warn);background:#ff88881a}.rank-stats .delta.flat{color:var(--muted-2)}.genre-tabs{display:flex;gap:2px;background:var(--panel-2);padding:4px;border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;width:fit-content}.genre-tabs .gtab{padding:6px 12px;border-radius:var(--r-sm);font-size:12px;color:var(--sub);cursor:pointer;background:transparent;border:0;font-family:inherit}.genre-tabs .gtab:hover{color:var(--text)}.genre-tabs .gtab.active{background:var(--accent);color:#1a1308;font-weight:700}.gfooter{margin-top:80px;padding:32px 0 60px;border-top:1px solid var(--border);background:var(--panel)}.gfooter .container{display:flex;gap:40px;align-items:flex-start;flex-wrap:wrap}.gfooter .fbrand{font-family:var(--font-mono);color:var(--accent);font-size:18px;font-weight:700}.gfooter .fdesc{color:var(--muted-2);font-size:11px;margin-top:4px;font-family:var(--font-mono)}.gfooter .fcol{min-width:140px}.gfooter .fcol h4{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted-2);font-family:var(--font-mono)}.gfooter .fcol a{display:block;color:var(--sub);font-size:12px;padding:3px 0}.gfooter .fcol a:hover{color:var(--primary)}.gfooter .fnote{width:100%;border-top:1px solid var(--border);margin-top:24px;padding-top:14px;color:var(--muted-2);font-family:var(--font-mono);font-size:10px;display:flex;justify-content:space-between;gap:20px}.work-layout{display:grid;grid-template-columns:1fr 320px;gap:32px;margin:28px 0}.work-hero{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.work-hero .wh-thumb{aspect-ratio:16/9;position:relative}.work-hero .wh-body{padding:24px}.work-hero h1{margin:0 0 6px;color:var(--accent);font-size:30px;font-weight:800;line-height:1.25;letter-spacing:.02em}.work-hero .wh-author{color:var(--muted);font-family:var(--font-mono);font-size:13px;margin-bottom:16px}.work-hero .wh-author a{color:var(--primary)}.work-hero .wh-meta-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.work-hero .wh-rating{display:inline-flex;align-items:center;gap:8px}.work-hero .wh-rating .stars{color:var(--accent);font-size:16px}.work-hero .wh-rating .score{color:var(--accent);font-family:var(--font-mono);font-weight:700;font-size:16px}.work-hero .wh-rating .count{color:var(--muted-2);font-size:11px;font-family:var(--font-mono)}.work-hero .wh-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0}.gallery .ph{aspect-ratio:16/9;cursor:pointer}.gallery .ph:hover{outline:2px solid var(--primary);outline-offset:1px}.desc-md{color:var(--text);line-height:1.85;font-size:14px}.desc-md p{margin:0 0 14px}.desc-md h2{color:var(--accent);font-size:18px;margin-top:28px;margin-bottom:10px}.desc-md h3{color:var(--accent);font-size:15px;margin-top:20px;margin-bottom:6px}.desc-md strong{color:var(--accent)}.desc-md em{color:var(--primary);font-style:normal}.desc-md code{font-family:var(--font-mono);color:var(--success);background:#88ff8814;padding:1px 5px;border-radius:2px;font-size:12px}.desc-md ul{padding-left:18px}.desc-md li{margin-bottom:4px}.desc-md blockquote{border-left:3px solid var(--accent);margin:14px 0;padding:6px 14px;color:var(--sub);background:#ffd28a0d;border-radius:0 var(--r-sm) var(--r-sm) 0}.sidebar-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:18px;margin-bottom:16px}.sidebar-panel h3{margin:0 0 12px;font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-family:var(--font-mono);color:var(--muted-2);font-weight:600}.info-list{display:flex;flex-direction:column;gap:10px}.info-row{display:grid;grid-template-columns:80px 1fr;gap:8px;font-size:12px;align-items:baseline}.info-row .ilabel{color:var(--muted-2);font-family:var(--font-mono);font-size:11px}.info-row .ival{color:var(--text)}.info-row .ival.mono{font-family:var(--font-mono);color:var(--success)}.tag-list{display:flex;flex-wrap:wrap;gap:4px}.review-summary{display:grid;grid-template-columns:140px 1fr;gap:28px;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:18px;align-items:center}.review-score-big{text-align:center}.review-score-big .num{font-size:44px;font-family:var(--font-mono);font-weight:700;color:var(--accent);letter-spacing:-.04em;line-height:1}.review-score-big .stars{color:var(--accent);font-size:14px;margin:4px 0}.review-score-big .count{color:var(--muted-2);font-size:11px;font-family:var(--font-mono)}.review-dist{display:flex;flex-direction:column;gap:4px}.review-dist-row{display:grid;grid-template-columns:28px 1fr 38px;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px}.review-dist-row .rd-label{color:var(--muted)}.review-dist-row .rd-bar{height:6px;background:var(--panel-2);border-radius:3px;overflow:hidden}.review-dist-row .rd-bar .rd-fill{height:100%;background:var(--accent)}.review-dist-row .rd-count{color:var(--muted-2);text-align:right;font-size:10px}.review-tones{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.review-tone{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:11px;padding:3px 8px;border-radius:99px;background:#ffd28a14;border:1px solid rgba(255,210,138,.2);color:var(--accent)}.review-tone .rt-count{color:var(--muted-2)}.review-list{display:flex;flex-direction:column;gap:12px}.review-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px}.review-card .rc-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px;flex-wrap:wrap}.review-card .rc-user{color:var(--text);font-size:13px;font-weight:600}.review-card .rc-stars{color:var(--accent);font-size:12px}.review-card .rc-date{color:var(--muted-2);font-size:11px;font-family:var(--font-mono);margin-left:auto}.review-card .rc-pmark{font-size:10px;color:var(--success);font-family:var(--font-mono);padding:1px 6px;background:#88ff8814;border:1px solid rgba(136,255,136,.25);border-radius:2px}.review-card .rc-body{color:var(--sub);font-size:13px;line-height:1.7}.review-form{margin-bottom:16px}.review-form-body{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.rf-row{display:flex;flex-direction:column;gap:6px}.rf-row label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-family:var(--font-mono)}.rf-stars{display:flex;gap:4px}.rf-star{background:transparent;border:0;color:var(--border-2);font-size:22px;cursor:pointer;padding:0 2px}.rf-star.on{color:var(--accent)}.review-form textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px;color:var(--text);font-family:inherit;font-size:13px;resize:vertical;min-height:80px}.review-form textarea:focus{border-color:var(--primary);outline:none}.rf-actions{display:flex;gap:8px;justify-content:flex-end}.review-sort{display:flex;gap:4px;margin-bottom:12px}.review-sort .rsort{background:transparent;border:0;padding:4px 10px;font-size:12px;color:var(--muted);border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-mono)}.review-sort .rsort.active{color:var(--accent);background:#ffd28a1a}.author-cover{height:180px;background:linear-gradient(135deg,#1a1828,#0c1018);position:relative;border-radius:var(--r-lg);overflow:hidden;margin:24px 0 0}.author-head{display:grid;grid-template-columns:120px 1fr auto;gap:24px;align-items:center;margin:-56px 24px 24px;padding:0 8px;position:relative;z-index:1}.author-avatar{width:120px;height:120px;border-radius:8px;background:linear-gradient(135deg,var(--accent) 0%,var(--primary) 100%);border:4px solid var(--bg);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:800;font-size:44px;color:var(--bg)}.author-info{padding-top:56px}.author-info h1{margin:0 0 4px;color:var(--accent);font-size:26px;font-weight:800}.author-info .ahandle{font-family:var(--font-mono);color:var(--muted);font-size:12px}.author-info .abio{color:var(--sub);margin:10px 0;font-size:13px;max-width:640px}.author-info .alinks{display:flex;gap:8px;flex-wrap:wrap}.author-info .alinks a{font-size:11px;font-family:var(--font-mono);color:var(--muted);padding:3px 8px;border:1px solid var(--border);border-radius:99px}.author-info .alinks a:hover{color:var(--primary);border-color:var(--primary);text-decoration:none}.author-actions{padding-top:56px;display:flex;flex-direction:column;gap:6px;align-items:flex-end}.author-actions .followers{font-size:11px;color:var(--muted-2);font-family:var(--font-mono)}.author-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:16px 0 24px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px}.stat-card .slabel{font-size:11px;color:var(--muted-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em}.stat-card .sval{font-size:24px;font-family:var(--font-mono);font-weight:700;color:var(--accent);margin-top:4px;letter-spacing:-.02em}.stat-card .sdelta{font-size:11px;font-family:var(--font-mono);color:var(--success);margin-top:2px}.search-layout{display:grid;grid-template-columns:240px 1fr;gap:28px;margin:24px 0}.search-side{display:flex;flex-direction:column;gap:14px}.search-side .filter-group{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:14px}.search-side .filter-group h3{margin:0 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted-2);font-family:var(--font-mono);font-weight:600}.search-side .check-row{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer;font-size:13px;color:var(--sub)}.search-side .check-row:hover{color:var(--text)}.search-side .check-row input{accent-color:var(--primary)}.search-side .check-row .count{margin-left:auto;font-size:10px;color:var(--muted-2);font-family:var(--font-mono)}.search-results-head{display:flex;align-items:baseline;gap:14px;margin-bottom:16px}.search-results-head .count{font-family:var(--font-mono);color:var(--muted-2);font-size:11px}.search-results-head .q{color:var(--accent);font-weight:700}.sort-tabs{display:flex;gap:2px;margin-left:auto}.sort-tabs .stab{background:transparent;border:0;padding:4px 10px;font-size:12px;color:var(--muted);font-family:var(--font-mono);cursor:pointer;border-radius:var(--r-sm)}.sort-tabs .stab.active{color:var(--accent);background:#ffd28a1a}.tag-cloud{display:flex;flex-wrap:wrap;gap:4px;align-items:baseline}.tag-cloud .tc{font-family:var(--font-mono);color:var(--sub);cursor:pointer;padding:1px 4px;border-radius:2px;transition:color .15s,background .15s}.tag-cloud .tc:hover{background:#ffd28a14;color:var(--accent)}.tag-cloud .tc.active{color:var(--primary);background:#66aaff1f}.tag-cloud .tc.s1{font-size:11px}.tag-cloud .tc.s2{font-size:12px}.tag-cloud .tc.s3{font-size:14px}.tag-cloud .tc.s4{font-size:16px}.tag-cloud .tc.s5{font-size:19px;color:var(--text);font-weight:700}.library-filter{display:flex;gap:4px;margin:20px 0 12px;border-bottom:1px solid var(--border)}.library-filter .lftab{background:transparent;border:0;padding:8px 14px;font-size:13px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit}.library-filter .lftab.active{color:var(--accent);border-color:var(--accent)}.library-filter .lftab .count{font-family:var(--font-mono);font-size:10px;color:var(--muted-2);margin-left:4px}.library-list{display:flex;flex-direction:column;gap:8px}.lib-item{display:grid;grid-template-columns:120px 1fr auto auto;gap:16px;align-items:center;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md)}.lib-item:hover{border-color:var(--border-2)}.lib-thumb{aspect-ratio:16/9;height:68px}.lib-body{min-width:0}.lib-title{color:var(--accent);font-weight:700;font-size:14px}.lib-author{color:var(--muted);font-size:11px;font-family:var(--font-mono)}.lib-meta{font-size:11px;color:var(--muted-2);font-family:var(--font-mono);margin-top:4px;display:flex;gap:12px}.lib-progress{display:flex;flex-direction:column;gap:4px;width:140px}.lib-progress .lp-label{font-size:11px;color:var(--muted-2);font-family:var(--font-mono);display:flex;justify-content:space-between}.lib-progress .lp-bar{height:4px;background:var(--panel-2);border-radius:2px;overflow:hidden}.lib-progress .lp-fill{height:100%;background:var(--primary)}.lib-progress .lp-fill.done{background:var(--success)}.lib-actions{display:flex;gap:6px}.dash-layout{display:grid;grid-template-columns:220px 1fr;gap:0;min-height:calc(100vh - 56px)}.dash-nav{border-right:1px solid var(--border);background:var(--panel);padding:20px 0;display:flex;flex-direction:column;gap:2px}.dash-nav .dnav-section{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted-2);font-family:var(--font-mono);padding:10px 20px 6px}.dash-nav .dnav-item{display:flex;align-items:center;gap:10px;padding:8px 20px;color:var(--sub);font-size:13px;cursor:pointer;border-left:2px solid transparent;text-decoration:none}.dash-nav .dnav-item:hover{color:var(--text);background:#ffffff05;text-decoration:none}.dash-nav .dnav-item.active{color:var(--accent);border-color:var(--accent);background:#ffd28a0f}.dash-nav .dnav-item .ic{color:var(--muted-2);font-family:var(--font-mono);width:16px}.dash-nav .dnav-item .meta{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--muted-2)}.dash-main{padding:28px 32px;overflow:hidden}.dash-main h1{margin:0 0 4px;font-size:22px;color:var(--accent);font-weight:800}.dash-main .dash-sub{color:var(--sub);font-size:12px;font-family:var(--font-mono);margin-bottom:24px}.dash-statbar{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.dash-work-list{display:flex;flex-direction:column;gap:8px}.dash-work-item{display:grid;grid-template-columns:120px 1fr repeat(3,80px) auto;gap:18px;align-items:center;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md)}.dash-work-item .dw-thumb{aspect-ratio:16/9;height:68px}.dash-work-item .dw-title{color:var(--accent);font-weight:700;font-size:14px}.dash-work-item .dw-id{color:var(--muted-2);font-family:var(--font-mono);font-size:10px;margin-top:2px}.dash-work-item .dw-stat{text-align:center}.dash-work-item .dw-stat .dn{font-family:var(--font-mono);font-size:16px;color:var(--text);font-weight:700}.dash-work-item .dw-stat .dl{font-family:var(--font-mono);font-size:10px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em}.dash-actions-cell{display:flex;gap:6px}.chart{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;margin-bottom:16px}.chart .chart-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px}.chart .chart-head h3{margin:0;font-size:14px;color:var(--text);font-weight:700}.chart .chart-head .chart-tot{font-family:var(--font-mono);color:var(--accent);font-weight:700}.chart svg{width:100%;display:block}.auth-page{min-height:calc(100vh - 56px);display:flex;align-items:center;justify-content:center;padding:40px 20px;background:radial-gradient(circle at 30% 20%,rgba(102,170,255,.05) 0%,transparent 40%),radial-gradient(circle at 70% 80%,rgba(255,210,138,.04) 0%,transparent 40%)}.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:36px 32px 28px}.auth-card .auth-logo{text-align:center;font-family:var(--font-mono);color:var(--accent);font-size:28px;font-weight:800;margin-bottom:4px;letter-spacing:-.04em}.auth-card .auth-tag{text-align:center;font-size:11px;color:var(--muted-2);font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;margin-bottom:28px}.auth-card h1{font-size:16px;color:var(--text);margin:0 0 18px;text-align:center;font-weight:700}.auth-tabs{display:flex;padding:3px;background:var(--panel-2);border-radius:var(--r-md);margin-bottom:18px}.auth-tabs button{flex:1;border:0;background:transparent;padding:7px;border-radius:var(--r-sm);color:var(--sub);cursor:pointer;font-size:13px;font-family:inherit}.auth-tabs button.active{background:var(--bg);color:var(--accent);font-weight:700}.field{margin-bottom:14px}.field label{display:block;font-size:11px;font-family:var(--font-mono);color:var(--muted-2);margin-bottom:4px;text-transform:uppercase;letter-spacing:.1em}.field input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;color:var(--text);font-family:inherit;font-size:13px;outline:none}.field input:focus{border-color:var(--primary)}.auth-card .auth-foot{margin-top:18px;text-align:center;font-size:11px;color:var(--muted-2);font-family:var(--font-mono)}.auth-cross-footer{text-align:center;margin-top:18px;color:var(--muted-2);font-size:11px;font-family:var(--font-mono)}.auth-cross-footer a{color:var(--primary);margin:0 6px}.empty{padding:60px 20px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--border);border-radius:var(--r-md)}.empty .empty-icon{font-family:var(--font-mono);font-size:24px;color:var(--muted-2);margin-bottom:10px}.empty .empty-title{font-size:14px;color:var(--text);margin-bottom:6px}.empty .empty-desc{font-size:12px;color:var(--muted-2);margin-bottom:14px;font-family:var(--font-mono)}.snackbar{position:fixed;top:72px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--warn);color:var(--text);padding:10px 16px;border-radius:var(--r-md);font-size:13px;z-index:100;box-shadow:0 6px 32px #000c;display:flex;align-items:center;gap:10px}.snackbar.success{border-color:var(--success)}.snackbar.info{border-color:var(--primary)}.snackbar .sx{background:none;border:0;color:var(--muted);margin-left:6px}.mobile-tabs{display:flex;border-top:1px solid var(--border);background:var(--panel);padding:6px 0;position:sticky;bottom:0}.mobile-tabs .mt{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px;color:var(--muted-2);background:none;border:0;font-family:var(--font-mono);font-size:10px;cursor:pointer}.mobile-tabs .mt.active{color:var(--accent)}.mobile-tabs .mt .mt-ic{font-size:16px}.app.mobile-frame .container,.app.mobile-frame .container-narrow{padding:0 14px;max-width:100%}.app.mobile-frame .gheader-row{height:48px;gap:8px}.app.mobile-frame .gnav,.app.mobile-frame .gsearch,.app.mobile-frame .gright .desktop-only{display:none}.app.mobile-frame .hero{grid-template-columns:1fr}.app.mobile-frame .hero-body{padding:18px}.app.mobile-frame .hero h1{font-size:22px}.app.mobile-frame .grid-5,.app.mobile-frame .grid-4{grid-template-columns:repeat(2,1fr)}.app.mobile-frame .grid-3{grid-template-columns:1fr}.app.mobile-frame .rank-list{grid-template-columns:1fr;gap:4px}.app.mobile-frame .work-layout,.app.mobile-frame .search-layout,.app.mobile-frame .dash-layout{grid-template-columns:1fr}.app.mobile-frame .gallery{grid-template-columns:repeat(2,1fr)}.app.mobile-frame .dash-nav{display:none}.app.mobile-frame .author-stats{grid-template-columns:1fr}.app.mobile-frame .review-summary{grid-template-columns:1fr;gap:16px}.app.mobile-frame .author-head{grid-template-columns:80px 1fr;gap:14px;margin:-40px 4px 16px}.app.mobile-frame .author-avatar{width:80px;height:80px;font-size:28px}.app.mobile-frame .author-info{padding-top:40px}.app.mobile-frame .author-info h1{font-size:20px}.app.mobile-frame .author-actions{padding-top:0;grid-column:1 / -1;flex-direction:row;justify-content:flex-end}.app.mobile-frame .gfooter{margin-top:40px}.app.mobile-frame .section{margin:28px 0}.app.mobile-frame .work-hero h1{font-size:22px}.app.mobile-frame .dash-statbar{grid-template-columns:repeat(2,1fr)}.app.mobile-frame .dash-main{padding:18px 14px 60px}.app.mobile-frame .dash-work-item{grid-template-columns:100px 1fr}.app.mobile-frame .dash-work-item .dw-stat,.app.mobile-frame .dash-actions-cell{grid-column:1 / -1}.app.mobile-frame .dash-work-item .dw-stat{display:flex;gap:14px;justify-content:space-between}.app.mobile-frame .lib-item{grid-template-columns:100px 1fr}.app.mobile-frame .lib-progress,.app.mobile-frame .lib-actions{grid-column:1 / -1;width:100%}.spacer{flex:1}.mono{font-family:var(--font-mono)}.muted-2{color:var(--muted-2)}.sub{color:var(--sub)}.accent{color:var(--accent)}.primary{color:var(--primary)}.success{color:var(--success)}.divider{height:1px;background:var(--border);margin:16px 0}.kbd{display:inline-block;padding:1px 5px;font-family:var(--font-mono);font-size:10px;background:var(--panel-2);border:1px solid var(--border);border-bottom-width:2px;border-radius:3px;color:var(--muted)}.mobile-only{display:none}.skeleton{background:linear-gradient(90deg,var(--border) 0%,var(--border-2) 50%,var(--border) 100%);background-size:200% 100%;animation:pix-shimmer 1.4s linear infinite}@keyframes pix-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.lang-switch{display:inline-flex;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;margin-right:6px}.lang-switch button{background:transparent;border:0;padding:4px 8px;font-family:var(--font-mono);font-size:11px;color:var(--muted-2);cursor:pointer}.lang-switch button.active{background:var(--accent);color:var(--bg);font-weight:700}@media(max-width:767px){.container,.container-narrow{padding:0 14px;max-width:100%}.gheader-row{height:48px;gap:8px}.gnav.desktop-only,.gsearch.desktop-only,.gright .desktop-only,.desktop-only{display:none!important}.mobile-only{display:block}.hero{grid-template-columns:1fr}.hero-body{padding:18px}.hero h1{font-size:22px}.grid-5,.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}.rank-list{grid-template-columns:1fr;gap:4px}.work-layout,.search-layout,.dash-layout{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.dash-nav{display:none}.author-stats{grid-template-columns:1fr}.review-summary{grid-template-columns:1fr;gap:16px}.author-head{grid-template-columns:80px 1fr;gap:14px;margin:-40px 4px 16px}.author-avatar{width:80px;height:80px;font-size:28px}.author-info{padding-top:40px}.author-info h1{font-size:20px}.author-actions{padding-top:0;grid-column:1 / -1;flex-direction:row;justify-content:flex-end}.gfooter{margin-top:40px}.section{margin:28px 0}.work-hero h1{font-size:22px}.dash-statbar{grid-template-columns:repeat(2,1fr)}.dash-main{padding:18px 14px 60px}.dash-work-item{grid-template-columns:100px 1fr}.dash-work-item .dw-stat,.dash-actions-cell{grid-column:1 / -1}.dash-work-item .dw-stat{display:flex;gap:14px;justify-content:space-between}.lib-item{grid-template-columns:100px 1fr}.lib-progress,.lib-actions{grid-column:1 / -1;width:100%}}
