:root{--d-max:1200px;--d-section:72px;--d-radius:16px;--d-btn-radius:10px;--d-title:clamp(46px,6.6vw,88px);--d-lead:clamp(17px,1.5vw,19px);--d-page:#fafaf9;--d-card:#ffffff;--d-ink:#111111;--d-ink-text:#ffffff;--d-muted:#737373;--d-faint:#a3a3a3;--d-line:#e7e5e4;--d-rule:#111111;--d-hover:#f5f5f4;--d-accent:#16a34a;--d-accent-soft:#f0fdf4;--bg:var(--d-page);--surface:var(--d-card);--surface-2:var(--d-hover);--surface-3:#ececea;--border:var(--d-line);--border-strong:#d6d3d1;--text:var(--d-ink);--text-2:#525252;--text-3:var(--d-faint);--primary:var(--d-ink);--primary-h:#333333;--on-primary:var(--d-ink-text);--primary-soft:rgba(17,17,17,.06)}[data-theme=dark]{--d-page:#0a0a0a;--d-card:#111111;--d-ink:#f5f5f5;--d-ink-text:#0a0a0a;--d-muted:#a3a3a3;--d-faint:#5c5c5c;--d-line:#232323;--d-rule:#f5f5f5;--d-hover:#171717;--d-accent:#4ade80;--d-accent-soft:rgba(74,222,128,.1);--surface-3:#1f1f1f;--border-strong:#333333;--text-2:#b5b5b5;--text-3:#6b6b6b;--primary-h:#ffffff;--primary-soft:rgba(255,255,255,.08)}html,body{background:var(--d-page)}html{overflow-y:scroll}body{color:var(--d-ink)}::selection{background:var(--d-ink);color:var(--d-ink-text)}.d-wrap{width:100%;max-width:calc(var(--d-max) + 64px);margin:0 auto;padding:0 32px}.mono{font-family:var(--mono)}main{min-height:60vh;padding-bottom:var(--d-section)}main:focus{outline:none}.d-view{animation:d-enter .28s var(--ease) both}@keyframes d-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.d-view{animation:none}}.d-logo-dark,[data-theme=dark] .d-logo-light{display:none}[data-theme=dark] .d-logo-dark{display:block}.d-nav{background:color-mix(in srgb,var(--d-page) 85%,transparent);border-bottom:1px solid var(--d-line)}.d-nav .brand span{font-weight:650}.d-nav .navbar-links{margin-left:8px}.d-nav .navbar-links a{font-size:14px;color:var(--d-muted)}.d-nav .navbar-links a:hover{color:var(--d-ink);background:var(--d-hover)}.d-nav .navbar-links a.active{color:var(--d-ink);font-weight:600}@media (max-width:768px){.d-nav .navbar-links{margin-left:0}}.d-nav [data-jsg-account]{display:inline-flex;align-items:center;min-height:36px}.ap-hero{padding-top:clamp(56px,8vw,104px)}.ap-kicker{font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;color:var(--d-muted)}.ap-title{margin:14px 0 0;font-size:var(--d-title);font-weight:700;letter-spacing:-.05em;line-height:1.02;color:var(--d-ink)}.ap-lead{margin:22px 0 0;max-width:620px;font-size:var(--d-lead);line-height:1.65;color:var(--d-muted)}.ap-search{position:relative;margin-top:36px;max-width:640px}.ap-search svg,.ap-search i{position:absolute;left:18px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--d-muted);pointer-events:none}.ap-search input{width:100%;height:56px;padding:0 84px 0 48px;border:1px solid var(--d-line);border-radius:14px;background:var(--d-card);color:var(--d-ink);font:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.ap-search input::placeholder{color:var(--d-faint)}.ap-search input:focus{outline:none;border-color:var(--d-ink);box-shadow:0 0 0 4px var(--primary-soft)}.ap-search kbd{position:absolute;right:16px;top:50%;transform:translateY(-50%);padding:2px 8px;border:1px solid var(--d-line);border-radius:6px;font-family:var(--mono);font-size:12px;color:var(--d-muted);background:var(--d-hover)}.ap-search .clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--d-muted);font-size:20px;line-height:1;cursor:pointer}.ap-search .clear:hover{background:var(--d-hover);color:var(--d-ink)}.ap-search .clear[hidden]{display:none}.ap-search:has(.clear:not([hidden])) kbd{display:none}.ap-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.ap-chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border:1px solid var(--d-line);border-radius:999px;background:transparent;color:var(--d-muted);font:inherit;font-size:13.5px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.ap-chip:hover{color:var(--d-ink);background:var(--d-hover)}.ap-chip.on{background:var(--d-ink);border-color:var(--d-ink);color:var(--d-ink-text);font-weight:600}.ap-chip small{font-family:var(--mono);font-size:11.5px;opacity:.65}.ap-sec{margin-top:clamp(48px,6vw,72px)}.ap-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:2px solid var(--d-rule)}.ap-sec-head h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-.02em}.ap-sec-head span{font-family:var(--mono);font-size:12.5px;color:var(--d-muted)}.ap-ico{display:block;flex:none;width:64px;height:64px;border-radius:15px;object-fit:cover;background:var(--d-hover);border:1px solid var(--d-line)}.ap-ico.ph{display:grid;place-items:center;font-size:26px;font-weight:700;color:var(--d-muted)}.ap-feat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.ap-fcard{display:flex;flex-direction:column;gap:18px;padding:22px;border:1px solid var(--d-line);border-radius:var(--d-radius);background:var(--d-card);color:inherit;cursor:pointer;text-align:left;font:inherit;transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}.ap-fcard:hover{transform:translateY(-3px);border-color:var(--d-rule);box-shadow:0 14px 34px -18px #00000059}.ap-fcard .ap-ico{width:76px;height:76px;border-radius:18px}.ap-fcard h3{margin:0;font-size:19px;font-weight:700;letter-spacing:-.02em}.ap-fcard p{margin:6px 0 0;font-size:14px;line-height:1.55;color:var(--d-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ap-fmeta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--d-muted)}.ap-rank{font-family:var(--mono);font-size:12px;color:var(--d-faint)}.ap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-top:6px}.ap-row{position:relative;display:flex;align-items:center;gap:16px;padding:18px 8px;margin:0 -8px;border:0;border-radius:12px;color:inherit;cursor:pointer;text-align:left;background:transparent;font:inherit;transition:background .15s}.ap-row:after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:1px;background:var(--d-line)}.ap-row:hover{background:var(--d-hover)}.ap-row:hover:after{opacity:0}.ap-row .ap-ico{width:56px;height:56px;border-radius:13px}.ap-row .tx{min-width:0;flex:1}.ap-row h3{margin:0;font-size:16px;font-weight:650;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-row p{margin:3px 0 0;font-size:13px;color:var(--d-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-row .tags{margin-top:7px}.ap-tags{display:flex;flex-wrap:wrap;gap:6px}.ap-tag{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:6px;background:var(--d-hover);border:1px solid var(--d-line);font-family:var(--mono);font-size:11px;color:var(--d-muted)}.ap-go{flex:none;font-family:var(--mono);font-size:12px;color:var(--d-faint);opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.ap-row:hover .ap-go{opacity:1;transform:none;color:var(--d-ink)}.ap-empty{padding:72px 0;text-align:center;color:var(--d-muted)}.ap-empty strong{display:block;margin-bottom:8px;font-size:18px;color:var(--d-ink)}.ap-note{margin-top:28px;font-size:13px;color:var(--d-faint)}.ap-note a{color:var(--d-muted);text-decoration:underline;text-underline-offset:3px}.ap-skel{height:92px;margin-top:10px;border-radius:12px}.ap-back{display:inline-flex;align-items:center;gap:6px;margin-top:clamp(32px,5vw,56px);padding:0;border:0;background:none;color:var(--d-muted);font:inherit;font-size:14px;cursor:pointer}.ap-back:hover{color:var(--d-ink)}.ap-dhead{display:flex;align-items:center;gap:28px;margin-top:28px;padding-bottom:36px;border-bottom:2px solid var(--d-rule)}.ap-dhead .ap-ico{width:128px;height:128px;border-radius:30px}.ap-dhead .tx{min-width:0;flex:1}.ap-dhead h1{margin:0;font-size:clamp(32px,4.6vw,52px);font-weight:700;letter-spacing:-.04em;line-height:1.08}.ap-dhead .sub{margin:10px 0 0;font-size:var(--d-lead);color:var(--d-muted)}.ap-dhead .ap-tags{margin-top:14px}.ap-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.ap-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 22px;border-radius:var(--d-btn-radius);border:1px solid transparent;font:inherit;font-size:15px;font-weight:600;white-space:nowrap;cursor:pointer;transition:transform .15s var(--ease),background .15s,opacity .15s}.ap-btn.pri{background:var(--d-ink);color:var(--d-ink-text)}.ap-btn.pri:hover{transform:translateY(-1px);opacity:.9}.ap-btn.sec{background:transparent;border-color:var(--d-line);color:var(--d-ink)}.ap-btn.sec:hover{background:var(--d-hover)}.ap-btn[aria-disabled=true]{opacity:.45;pointer-events:none}.ap-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0;border-bottom:1px solid var(--d-line)}.ap-stat{padding:20px 0}.ap-stat+.ap-stat{padding-left:24px;border-left:1px solid var(--d-line)}.ap-stat b{display:block;font-size:20px;font-weight:700;letter-spacing:-.02em}.ap-stat span{display:block;margin-top:4px;font-family:var(--mono);font-size:12px;color:var(--d-muted)}.ap-shots{display:flex;gap:14px;margin-top:20px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x proximity}.ap-shots button{flex:none;padding:0;border:1px solid var(--d-line);border-radius:14px;background:var(--d-hover);overflow:hidden;cursor:zoom-in;scroll-snap-align:start}.ap-shots img{display:block;height:min(440px,62vh);width:auto;max-width:none}.ap-text{margin:18px 0 0;max-width:760px;font-size:15.5px;line-height:1.8;color:var(--d-ink);white-space:pre-wrap;word-break:break-word}.ap-text.muted{color:var(--d-muted)}.ap-pkg{margin-top:14px;font-family:var(--mono);font-size:12.5px;color:var(--d-muted);word-break:break-all}.ap-lb{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:24px;background:#000000d1;cursor:zoom-out}.ap-lb.on{display:flex;animation:d-enter .2s var(--ease) both}.ap-lb img{max-width:100%;max-height:100%;border-radius:12px}.d-footer{border-top:1px solid var(--d-line);padding:56px 0 32px;font-size:13px;color:var(--d-muted)}.d-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:28px}.d-footer h4{font-size:13px;font-weight:600;color:var(--d-ink);margin-bottom:12px}.d-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.d-footer a{color:var(--d-muted)}.d-footer a:hover,.d-footer-brand .brand{color:var(--d-ink)}.d-slogan{margin-top:18px;font-size:15px;font-weight:650;letter-spacing:-.01em;line-height:1.55;color:var(--d-ink)}.d-slogan span{color:var(--d-faint)}.d-ilink{display:inline-flex;align-items:center;gap:8px}.d-ilink img{width:16px;height:16px;flex:none}.d-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px 24px;flex-wrap:wrap;margin-top:40px;padding-top:20px;border-top:1px solid var(--d-line);font-size:12.5px}.d-footer-meta{display:flex;gap:6px 20px;flex-wrap:wrap;font-family:var(--mono);font-size:12px}.d-footer-meta>*{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.d-footer-meta img{width:15px;height:15px}@media (max-width:1024px){.ap-feat,.ap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ap-feat .ap-fcard:nth-child(3){display:none}.d-footer-grid{grid-template-columns:1fr 1fr}.d-footer-brand{grid-column:1/-1}}@media (max-width:640px){:root{--d-section:56px;--d-title:clamp(40px,12vw,56px)}.d-wrap{padding:0 20px}.ap-feat,.ap-grid{grid-template-columns:minmax(0,1fr)}.ap-feat .ap-fcard:nth-child(3){display:flex}.ap-fcard{flex-direction:row;align-items:center;gap:16px;padding:16px}.ap-fcard .ap-ico{width:60px;height:60px;border-radius:14px}.ap-fcard .ap-fmeta,.ap-fcard .ap-rank{display:none}.ap-fcard .tx{min-width:0}.ap-go{display:none}.ap-dhead{flex-direction:column;align-items:flex-start;gap:20px}.ap-dhead .ap-ico{width:96px;height:96px;border-radius:24px}.ap-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ap-stat:nth-child(3){padding-left:0;border-left:0}.ap-stat:nth-child(n+3){border-top:1px solid var(--d-line)}.ap-shots img{height:min(360px,56vh)}.d-footer-grid{grid-template-columns:1fr}}
