.ph-ledger{--ph-paper:oklch(97.5% 0.014 85);--ph-paper-2:oklch(94.5% 0.016 85);--ph-rule:oklch(86% 0.014 85);--ph-rule-strong:oklch(72% 0.016 80);--ph-ink:oklch(23% 0.02 70);--ph-ink-2:oklch(37% 0.018 70);--ph-muted:oklch(50% 0.016 75);--ph-seal:oklch(51% 0.19 25);--ph-seal-deep:oklch(44% 0.18 25);--ph-focus:oklch(51% 0.19 25);--ph-display:"Shippori Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","YuMincho","Yu Mincho","MS PMincho",serif;--ph-body:var(--font-inter),"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;--ph-mono:var(--font-jetbrains-mono),ui-monospace,"SF Mono",Menlo,monospace;background:var(--ph-paper);color:var(--ph-ink-2);font-family:var(--ph-body)}.ph-masthead{text-align:center;padding:1.75rem 1rem 0}.ph-issue-line{font-family:var(--ph-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ph-muted);word-break:keep-all}.ph-masthead-name{font-weight:800;font-style:normal;font-size:clamp(2rem,1.2rem + 4vw,3.25rem);line-height:1.15;letter-spacing:.02em;color:var(--ph-ink);margin:.5rem 0 0;overflow-wrap:normal;min-width:0}.ph-masthead-name,.ph-masthead-sub{font-family:var(--ph-display);word-break:keep-all}.ph-masthead-sub{font-weight:600;font-size:clamp(.95rem,.85rem + .8vw,1.2rem);color:var(--ph-ink-2);margin-top:.35rem}.ph-masthead-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem 1.5rem;list-style:none;margin:1rem 0 0;padding:0;font-size:14px}.ph-masthead-nav a{color:var(--ph-ink-2);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.ph-masthead-nav a:hover{color:var(--ph-seal-deep);text-decoration:underline;text-underline-offset:4px}.ph-double-rule{border:0;border-top:1px solid var(--ph-rule-strong);border-bottom:1px solid var(--ph-rule-strong);height:4px;margin:1.1rem auto 0;max-width:72rem}.ph-period-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;max-width:72rem;margin:0 auto;padding:.4rem 1rem;font-size:14px}.ph-period-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ph-ink-2);text-decoration:none;max-width:44%}.ph-period-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ph-period-nav a:hover{color:var(--ph-seal-deep);text-decoration:underline;text-underline-offset:4px}.ph-period-nav .is-edge{color:var(--ph-muted)}.ph-hero{max-width:72rem;margin:0 auto;padding:2.5rem 1rem 0;display:grid;gap:1.5rem}@media (min-width:60rem){.ph-hero{grid-template-columns:7fr 5fr;align-items:end}}.ph-hero-figure{font-family:var(--ph-display);font-weight:800;font-style:normal;font-size:clamp(5rem,3rem + 12vw,10rem);line-height:.95;color:var(--ph-ink);font-variant-numeric:tabular-nums;margin:0}.ph-hero-figure .unit{font-size:clamp(1.4rem,1rem + 2.5vw,2.4rem);font-weight:700;margin-left:.35em}.ph-hero-qualifier{font-family:var(--ph-display);font-weight:600;font-size:clamp(1.1rem,1rem + 1.2vw,1.6rem);line-height:1.6;color:var(--ph-ink);margin:.9rem 0 0;max-width:30ch}.ph-hero-note{font-size:14px;line-height:1.9;color:var(--ph-muted);margin:.9rem 0 0;max-width:60ch}.ph-hero-enter{animation:ph-rise .6s cubic-bezier(.16,1,.3,1) both}@keyframes ph-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ph-hero-enter{animation:none}}.ph-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ph-rule-strong);border-bottom:1px solid var(--ph-rule-strong);margin-top:.5rem}.ph-strip>div{padding:1rem .75rem;display:grid;gap:.15rem;justify-items:start}.ph-strip>div+div{border-left:1px solid var(--ph-rule)}.ph-strip b{font-family:var(--ph-display);font-weight:800;font-size:clamp(1.8rem,1.4rem + 2.5vw,2.8rem);line-height:1;color:var(--ph-ink);font-variant-numeric:tabular-nums}.ph-strip span{font-size:12.5px;color:var(--ph-muted);line-height:1.7}.ph-ledger-wrap{max-width:72rem;margin:0 auto;padding:0 1rem}.ph-ledger-head{font-family:var(--ph-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ph-muted);margin:3rem 0 0;padding-bottom:.6rem;border-bottom:2px solid var(--ph-ink)}.ph-entry{display:grid;grid-template-columns:4.5rem 1fr;gap:.25rem 1.25rem;padding:1.6rem 0;border-bottom:1px solid var(--ph-rule)}.ph-rank{font-family:var(--ph-display);font-weight:800;font-size:clamp(2.2rem,1.8rem + 2vw,3.2rem);line-height:1;color:var(--ph-ink);font-variant-numeric:tabular-nums;margin:0}.ph-rank small{font-size:.42em;font-weight:600;color:var(--ph-muted);margin-left:.2em}.ph-entry-body{min-width:0}.ph-entry-title{font-family:var(--ph-display);font-weight:700;font-style:normal;font-size:clamp(1.15rem,1.05rem + .8vw,1.45rem);line-height:1.5;margin:0;overflow-wrap:anywhere}.ph-entry-title a{color:var(--ph-ink);text-decoration:none}.ph-entry-title a:hover{color:var(--ph-seal-deep);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.ph-entry-tagline{font-size:13px;color:var(--ph-muted);margin:.2rem 0 0;line-height:1.7}.ph-entry-idea{font-size:15px;line-height:2;color:var(--ph-ink-2);margin:.7rem 0 0;max-width:65ch}.ph-verdict{display:flex;align-items:center;gap:.7rem;margin-top:.9rem;flex-wrap:wrap}.ph-seal{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:2px solid var(--ph-seal);border-radius:6px;color:var(--ph-seal);font-family:var(--ph-display);font-weight:800;font-size:1.25rem;line-height:1;flex:none}.ph-verdict-word{font-weight:700;font-size:14px;color:var(--ph-ink)}.ph-verdict-conf{font-size:12.5px;color:var(--ph-muted)}.ph-comps{margin:.7rem 0 0;padding:0;list-style:none;display:grid;gap:.55rem;font-size:13.5px;line-height:1.85;color:var(--ph-ink-2);max-width:65ch}.ph-comps strong{color:var(--ph-ink)}.ph-comps .diff,.ph-entry-meta{color:var(--ph-muted)}.ph-entry-meta{margin-top:.7rem;font-family:var(--ph-mono);font-size:11.5px;letter-spacing:.02em;display:flex;flex-wrap:wrap;gap:.3rem 1rem}.ph-entry-meta a{color:var(--ph-muted)}.ph-entry-meta a:hover{color:var(--ph-seal-deep)}.ph-flag{margin-top:.6rem;font-size:12.5px;color:var(--ph-muted)}@media (max-width:40rem){.ph-entry{grid-template-columns:3.4rem 1fr;gap:.25rem .8rem}.ph-strip>div{padding:.8rem .5rem}.ph-strip span{font-size:11px;line-height:1.7}}.ph-colophon{max-width:72rem;margin:3rem auto 0;padding:1.25rem 1rem 0;border-top:1px solid var(--ph-rule-strong);font-family:var(--ph-mono);font-size:12px;line-height:2;color:var(--ph-muted)}.ph-colophon p{margin:0;max-width:90ch}.ph-faq{margin:0;padding:0}.ph-faq>div{padding:1.2rem 0;border-bottom:1px solid var(--ph-rule)}.ph-faq dt{font-family:var(--ph-display);font-weight:700;font-size:1.05rem;line-height:1.7;color:var(--ph-ink);margin:0}.ph-faq dd{margin:.4rem 0 0;font-size:14.5px;line-height:2;color:var(--ph-ink-2);max-width:65ch}.ph-close{max-width:72rem;margin:0 auto;padding:2.5rem 1rem 3.5rem;display:flex;flex-wrap:wrap;gap:.5rem 2rem;font-family:var(--ph-display);font-weight:700;font-size:1.05rem}.ph-close a{color:var(--ph-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center}.ph-close a:hover{color:var(--ph-seal-deep);text-decoration-thickness:2px}.ph-close a:focus-visible,.ph-entry-title a:focus-visible,.ph-masthead-nav a:focus-visible,.ph-period-nav a:focus-visible{outline:2px solid var(--ph-focus);outline-offset:3px}.ph-index-list{max-width:72rem;margin:0 auto;padding:0 1rem}.ph-index-row{display:grid;grid-template-columns:5.5rem 1fr auto;gap:1rem;align-items:baseline;padding:1.1rem 0;border-bottom:1px solid var(--ph-rule);text-decoration:none}.ph-index-row:hover .ph-index-title{color:var(--ph-seal-deep);text-decoration:underline;text-underline-offset:4px}.ph-index-no{font-family:var(--ph-mono);font-size:12px;letter-spacing:.1em;color:var(--ph-muted)}.ph-index-title{font-family:var(--ph-display);font-weight:700;font-size:clamp(1.05rem,1rem + .6vw,1.3rem);color:var(--ph-ink);margin:0}.ph-index-sub{font-size:12.5px;color:var(--ph-muted);margin:.25rem 0 0}.ph-index-count{font-family:var(--ph-display);font-weight:800;font-size:1.6rem;color:var(--ph-seal);font-variant-numeric:tabular-nums;white-space:nowrap}.ph-index-count small{font-size:.55em;font-weight:600;color:var(--ph-muted);margin-left:.2em}@media (max-width:40rem){.ph-index-row{grid-template-columns:1fr auto}.ph-index-no{grid-column:1/-1}}