/* Server-rendered public pages (study, blog, analysis, my page, service intros).
   The look carries the site menu into the page body: dark navy ground, thin rules,
   small gold index numbers and ↗ arrows, one gold call to action per screen.
   Everything here is readable without JavaScript. */
.pp{--pp-bg:#080a0d;--pp-panel:#0c1117;--pp-ink:#f2f0e9;--pp-text:#c9cfd3;--pp-muted:#9ea6ad;--pp-line:rgba(255,255,255,.14);--pp-gold:#cda64f;--pp-gold-hi:#f2c14e;--pp-long:#3fb68b;--pp-short:#e0575b;--pp-display:Manrope,"Noto Sans JP",system-ui,sans-serif;--pp-body:"Noto Sans JP",Manrope,system-ui,sans-serif;--pp-script:"Damion","Brush Script MT",cursive;--pp-pad:max(16px,var(--pad,22px));
  color:var(--pp-ink);background:var(--pp-bg);font-family:var(--pp-body);font-size:15px;line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:clip}
.pp *,.pp *::before,.pp *::after{box-sizing:border-box}
.pp a{color:inherit}
.pp-wrap{width:100%;max-width:1180px;margin:0 auto;padding-left:max(var(--pp-pad),env(safe-area-inset-left,0px));padding-right:max(var(--pp-pad),env(safe-area-inset-right,0px))}
.pp-narrow{max-width:860px}
.pp-top{padding-top:112px}
.pp-crumbs{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;font-size:12px;color:var(--pp-muted)}
.pp-crumbs li+li::before{content:"/";margin-right:8px;opacity:.6}
.pp-crumbs a{text-decoration:none}
.pp-crumbs a:hover{color:var(--pp-gold-hi)}
.pp a:focus-visible,.pp button:focus-visible,.pp summary:focus-visible{outline:2px solid var(--pp-gold-hi);outline-offset:3px}

/* Hero */
.pp-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:center;padding-block:32px 64px}
.pp-hero--text{grid-template-columns:minmax(0,1fr);padding-block:28px 40px}
.pp-eyebrow{display:flex;align-items:center;gap:12px;margin:0;font-family:var(--pp-display);font-size:12px;font-weight:700;letter-spacing:.22em;color:var(--pp-gold)}
.pp-eyebrow::after{content:"";width:56px;height:1px;background:var(--pp-gold);opacity:.6}
.pp-wordmark{margin:18px 0 6px;font-family:var(--pp-display);font-weight:800;font-size:clamp(34px,5vw,68px);line-height:.95;letter-spacing:-.01em;overflow-wrap:break-word}
.pp-wordmark span{display:block;margin-bottom:6px;font-family:var(--pp-script);font-weight:400;font-size:.46em;letter-spacing:0;color:var(--pp-gold-hi)}
.pp h1{margin:14px 0 12px;font-size:clamp(22px,2.6vw,30px);font-weight:700;line-height:1.5;text-wrap:balance;color:var(--pp-ink)}
.pp-hero--text h1{font-size:clamp(26px,3.6vw,42px);line-height:1.35}
.pp-lead{max-width:36em;margin:0;color:var(--pp-text)}
.pp-meta{margin:0;font-family:var(--pp-display);font-size:12px;letter-spacing:.14em;color:var(--pp-muted)}
.pp-meta time{font-variant-numeric:tabular-nums}
.pp-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:28px}
.pp-cta{display:inline-flex;align-items:center;gap:14px;padding:16px 26px;border-radius:4px;background:var(--pp-gold-hi);color:#16120a!important;font-size:16px;font-weight:700;letter-spacing:.04em;text-decoration:none;transition:transform .15s,background .15s}
.pp-cta:hover{background:#ffd56a;transform:translateY(-1px)}
.pp-cta b{font-family:var(--pp-display);font-size:18px}
.pp-ghost{padding:4px 2px;border-bottom:1px solid var(--pp-line);font-size:14px;text-decoration:none}
.pp-ghost:hover{border-color:var(--pp-gold)}
.pp-fine{margin:12px 0 0;font-size:12px;color:var(--pp-muted)}
.pp-visual{position:relative;min-width:0;margin:0;padding:14px;border:1px solid var(--pp-line);border-radius:6px;background:radial-gradient(120% 90% at 80% 0%,rgba(205,166,79,.12),transparent 60%),var(--pp-panel)}
.pp-visual img{display:block;width:100%;height:auto;max-width:100%;border-radius:4px}
.pp-visual figcaption{margin-top:10px;font-family:var(--pp-display);font-size:11px;letter-spacing:.14em;color:var(--pp-muted)}

/* Sections */
.pp-sec{padding-block:56px;border-top:1px solid var(--pp-line)}
.pp-sec-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:24px}
.pp-sec-head h2{margin:0;font-size:clamp(20px,2.4vw,26px);font-weight:700;line-height:1.4;color:var(--pp-ink)}
.pp-sec-head small{font-family:var(--pp-display);font-size:11px;letter-spacing:.22em;color:var(--pp-gold)}

/* Index grid: the menu look. Rows of linked items with a small gold number and ↗. */
.pp-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:48px;margin:0;padding:0;list-style:none}
.pp-index--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.pp-index>li{min-width:0}
.pp-index a,.pp-index .pp-index-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:6px 14px;align-items:start;height:100%;padding-block:22px;border-bottom:1px solid var(--pp-line);text-decoration:none}
.pp-index i{padding-top:9px;font-family:var(--pp-display);font-size:10px;font-style:normal;font-weight:700;color:var(--pp-gold)}
.pp-index .pp-t{font-size:22px;font-weight:500;line-height:1.35;transition:color .15s;overflow-wrap:anywhere}
.pp-index .pp-ar{font-size:18px;color:var(--pp-gold);opacity:.7}
.pp-index p{grid-column:2/4;margin:0;color:var(--pp-muted);font-size:13.5px;line-height:1.75}
.pp-index time{grid-column:2/4;font-family:var(--pp-display);font-size:11px;letter-spacing:.12em;color:var(--pp-muted);font-variant-numeric:tabular-nums}
.pp-index a:hover .pp-t{color:var(--pp-gold-hi)}
.pp-index img{grid-column:2/4;width:100%;max-width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:4px;border:1px solid var(--pp-line);background:var(--pp-panel)}

/* Category tabs (plain links, ?category=) */
.pp-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0;list-style:none}
.pp-tabs a{display:inline-block;padding:6px 14px;border:1px solid var(--pp-line);border-radius:999px;font-size:13px;text-decoration:none;color:var(--pp-text)}
.pp-tabs a[aria-current="page"]{border-color:var(--pp-gold-hi);color:var(--pp-gold-hi)}
.pp-tabs a:hover{border-color:var(--pp-gold)}

/* Steps: a real sequence */
.pp-steps{display:grid;grid-template-columns:repeat(var(--pp-steps,5),minmax(0,1fr));margin:0;padding:0;list-style:none;counter-reset:pp-step}
.pp-steps li{position:relative;padding:20px 18px 20px 0;border-top:2px solid var(--pp-line);font-size:14px;color:var(--pp-text);counter-increment:pp-step;min-width:0}
.pp-steps li:first-child{border-top-color:var(--pp-gold-hi)}
.pp-steps li::before{content:"STEP " counter(pp-step,decimal-leading-zero);display:block;margin-bottom:8px;font-family:var(--pp-display);font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--pp-gold)}
.pp-steps strong{display:block;margin-bottom:4px;font-size:16px;color:var(--pp-ink)}

/* Prose (articles, study bodies, analysis text) */
.pp-prose{max-width:46em;color:var(--pp-text);font-size:16px;line-height:1.95}
.pp-prose p{margin:0 0 1.1em;overflow-wrap:anywhere}
.pp-prose h2{margin:2em 0 .6em;font-size:22px;color:var(--pp-ink)}
.pp-prose h3{margin:1.8em 0 .5em;padding-left:10px;border-left:3px solid var(--pp-gold);font-size:18px;color:var(--pp-ink)}
.pp-prose a{color:var(--pp-gold-hi);text-underline-offset:3px}
.pp-prose ul{padding-left:1.2em}
.pp-prose .pp-bullet{padding-left:1em;text-indent:-1em}
.pp-figure{margin:0 0 1.6em}
.pp-figure img{display:block;width:100%;height:auto;max-width:100%;border:1px solid var(--pp-line);border-radius:6px;background:var(--pp-panel)}
.pp-figure figcaption{margin-top:6px;font-size:12px;color:var(--pp-muted)}
.pp-article-head{padding-block:28px 32px}
.pp-article-head h1{font-size:clamp(26px,3.4vw,40px);line-height:1.4;margin:16px 0 14px}
.pp-summary{margin:0 0 28px;padding:16px 20px;border-left:2px solid var(--pp-gold-hi);background:rgba(242,193,78,.06);color:var(--pp-ink);font-size:15px}
.pp-note,.pp .blog-disclaimer{margin:32px 0 0;padding:14px 20px;border-left:2px solid var(--pp-gold-hi);background:rgba(242,193,78,.06);font-size:14px;color:#d8dcde}
.pp-note strong,.pp .blog-disclaimer strong{display:block;margin-bottom:4px;color:var(--pp-gold-hi)}
.pp-note a,.pp .blog-disclaimer a{color:var(--pp-gold-hi)}
.pp-back{display:inline-flex;gap:8px;margin-top:32px;font-size:14px;text-decoration:none;border-bottom:1px solid var(--pp-line);padding-bottom:2px}
.pp-back:hover{color:var(--pp-gold-hi);border-color:var(--pp-gold)}
.pp-empty{padding:40px 0;color:var(--pp-muted)}
.pp-empty b{display:block;font-family:var(--pp-display);letter-spacing:.2em;color:var(--pp-gold)}

/* Glossary */
.pp-glossary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin:0}
.pp-glossary>div{min-width:0;padding-block:18px;border-bottom:1px solid var(--pp-line)}
.pp-glossary dt{font-size:17px;font-weight:700;color:var(--pp-ink)}
.pp-glossary dd{margin:6px 0 0;font-size:14px;color:var(--pp-text)}
.pp-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:0;list-style:none}
.pp-jump a{display:inline-block;padding:4px 12px;border:1px solid var(--pp-line);border-radius:999px;font-size:13px;text-decoration:none}
.pp-jump a:hover{border-color:var(--pp-gold);color:var(--pp-gold-hi)}

/* Chart pattern gallery */
.pp-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin:0;padding:0;list-style:none}
.pp-gallery a{display:block;text-decoration:none;border:1px solid var(--pp-line);border-radius:6px;overflow:hidden;background:var(--pp-panel);transition:border-color .15s}
.pp-gallery a:hover{border-color:var(--pp-gold)}
.pp-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#0a0f14}
.pp-gallery span{display:block;padding:10px 12px;font-size:14px}
.pp-group-count{margin-left:8px;font-family:var(--pp-display);font-size:12px;color:var(--pp-gold)}
.pp-viewer{max-width:min(960px,94vw);max-height:94vh;padding:0;border:1px solid var(--pp-line);border-radius:8px;background:var(--pp-bg);color:var(--pp-ink)}
.pp-viewer::backdrop{background:rgba(0,0,0,.78)}
.pp-viewer img{display:block;width:100%;height:auto;max-height:80vh;object-fit:contain}
.pp-viewer form{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px}
.pp-viewer button{padding:6px 14px;border:1px solid var(--pp-line);border-radius:999px;background:transparent;color:inherit;font:inherit;cursor:pointer}

/* Tables */
.pp-tbl{overflow-x:auto;border:1px solid var(--pp-line);border-radius:6px}
.pp-tbl table{width:100%;min-width:620px;border-collapse:collapse;font-size:14px}
.pp-tbl th,.pp-tbl td{padding:14px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--pp-line)}
.pp-tbl thead th{font-family:var(--pp-display);font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--pp-gold);background:rgba(205,166,79,.06)}
.pp-tbl tbody th{font-weight:500;color:var(--pp-muted);white-space:nowrap}
.pp-tbl tbody tr:last-child>*{border-bottom:0}
.pp-tbl td{font-variant-numeric:tabular-nums}

/* Two columns of lists */
.pp-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.pp-duo h3{margin:0 0 10px;font-size:17px;color:var(--pp-ink)}
.pp-duo ul{margin:0;padding-left:1.2em;color:var(--pp-text);font-size:14px}
.pp-duo li{margin-bottom:8px}

/* Final CTA band and related links */
.pp-final{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding-block:64px;border-top:1px solid var(--pp-line)}
.pp-final p{margin:0;font-family:var(--pp-display);font-size:clamp(24px,3.4vw,40px);font-weight:800;line-height:1.25}
.pp-final p span{display:block;margin-top:8px;font-family:var(--pp-body);font-size:14px;font-weight:400;color:var(--pp-muted)}
.pp-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 48px;margin:0;padding:0 0 56px;list-style:none}
.pp-related a{display:flex;justify-content:space-between;gap:12px;padding-block:16px;border-top:1px solid var(--pp-line);font-size:15px;text-decoration:none}
.pp-related a span{color:var(--pp-gold)}
.pp-related a:hover{color:var(--pp-gold-hi)}

/* My page */
.pp-account{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border:1px solid var(--pp-line);border-radius:6px;background:var(--pp-panel)}
.pp-account strong{display:block;font-size:20px}
.pp-account small{font-family:var(--pp-display);font-size:11px;letter-spacing:.2em;color:var(--pp-gold)}
.pp-account nav,.pp-account form{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0}
.pp-account a,.pp-account button{font:inherit;font-size:14px;color:var(--pp-ink);background:none;border:0;border-bottom:1px solid var(--pp-line);padding:2px 0;cursor:pointer;text-decoration:none}
.pp-account a:hover,.pp-account button:hover{color:var(--pp-gold-hi);border-color:var(--pp-gold)}

/* Market cards */
.pp-status{display:inline-block;padding:2px 10px;border-radius:999px;font-family:var(--pp-display);font-size:11px;font-weight:700;letter-spacing:.12em;border:1px solid var(--pp-line)}
.pp-status--UP{color:var(--pp-long);border-color:rgba(63,182,139,.5)}
.pp-status--DOWN{color:var(--pp-short);border-color:rgba(224,87,91,.5)}
.pp-status--RANGE{color:var(--pp-gold-hi);border-color:rgba(242,193,78,.5)}
.pp-tf{display:flex;flex-wrap:wrap;gap:8px 16px;margin:16px 0 0;padding:0;list-style:none;font-size:13px;color:var(--pp-muted)}

/* Existing service guides, restyled inside the public layout */
.pp .service-guide-intro,.pp .service-guide-details{--sg-line:rgba(255,255,255,.14);--sg-panel:#0c1117;--sg-cyan:#cda64f;--sg-gold:#f2c14e;--sg-text:#e8ecee;--sg-muted:#b4bcc2}
.pp .service-guide-intro{width:100%;margin:0 0 8px;border-left-color:var(--pp-gold-hi);border-radius:4px}
.pp .service-guide-details{width:100%;max-width:none;margin:0;border-top-color:var(--pp-gold-hi);border-radius:6px}

@media (max-width:900px){
  .pp-top{padding-top:104px}
  .pp-hero{grid-template-columns:minmax(0,1fr);gap:32px}
  .pp-index,.pp-index--two,.pp-related{grid-template-columns:minmax(0,1fr)}
  .pp-steps{grid-template-columns:minmax(0,1fr)}
  .pp-steps li{padding-right:0}
  .pp-glossary,.pp-duo{grid-template-columns:minmax(0,1fr)}
  .pp-duo{gap:28px}
  .pp-index .pp-t{font-size:20px}
}
@media (prefers-reduced-motion:reduce){.pp *{transition:none!important}}
.pp-related--spaced{margin-top:48px}
.pp-group-title{margin:32px 0 4px;font-size:18px;color:var(--pp-gold-hi)}
.pp-group-title:first-of-type{margin-top:8px}
