/* ═══════════════════════════════════════════
   P5 SPECTRAL — Ultra-premium concept
   #020202 · Flowing chromatic mesh canvas
   DM Serif Display + Outfit + IBM Plex Mono
═══════════════════════════════════════════ */
.p5x{background:#020202;color:#f0ece8;font-family:'Outfit',sans-serif;cursor:none}
.p5x-cursor{position:fixed;z-index:9999;pointer-events:none;top:0;left:0}
.p5x-cursor-dot{position:absolute;width:6px;height:6px;background:#f0ece8;border-radius:50%;transform:translate(-50%,-50%);transition:transform .1s,opacity .2s}
.p5x-cursor-ring{position:absolute;width:36px;height:36px;border:1px solid rgba(240,236,232,.35);border-radius:50%;transform:translate(-50%,-50%);transition:transform .18s ease,width .3s,height .3s,border-color .3s}
.p5x-cursor-ring.hover{width:56px;height:56px;border-color:rgba(240,236,232,.7)}
.p5x-nav{position:fixed;top:44px;left:0;right:0;z-index:200;display:flex;justify-content:space-between;align-items:center;padding:0 56px;height:60px;transition:background .5s}
.p5x-nav.sc{background:rgba(2,2,2,.92);backdrop-filter:blur(24px);border-bottom:1px solid rgba(240,236,232,.05)}
.p5x-logo{font-family:'DM Serif Display',serif;font-style:italic;font-size:17px;letter-spacing:.04em}
.p5x-nl{display:flex;gap:40px;align-items:center}
.p5x-nl a{color:rgba(240,236,232,.24);text-decoration:none;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;transition:color .3s}
.p5x-nl a:hover{color:#f0ece8}
.p5x-cta{border:1px solid rgba(240,236,232,.18)!important;color:#f0ece8!important;padding:8px 22px;font-size:10px!important;font-weight:600!important;letter-spacing:.14em!important;text-transform:uppercase!important;transition:all .3s!important}
.p5x-cta:hover{background:rgba(240,236,232,.06)!important}
/* HERO */
.p5x-hero{height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
#p5x-cv{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.p5x-hero-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,transparent 30%,rgba(2,2,2,.7) 100%);z-index:1}
.p5x-hero-content{position:relative;z-index:2;text-align:center;padding:0 48px}
.p5x-pretitle{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.32em;color:rgba(240,236,232,.3);text-transform:uppercase;margin-bottom:32px}
.p5x-title{font-family:'DM Serif Display',serif;font-size:clamp(52px,9vw,128px);line-height:.9;letter-spacing:-.04em;margin-bottom:32px;overflow:hidden}
.p5x-tl{display:block;overflow:hidden}
.p5x-tw{display:block;transform:translateY(120%);animation:p5xup 1.1s cubic-bezier(.16,1,.3,1) forwards}
.p5x-tw.italic{font-style:italic;color:transparent;-webkit-text-stroke:1px rgba(240,236,232,.5)}
.p5x-tl:nth-child(1) .p5x-tw{animation-delay:.1s}
.p5x-tl:nth-child(2) .p5x-tw{animation-delay:.28s}
.p5x-tl:nth-child(3) .p5x-tw{animation-delay:.46s}
@keyframes p5xup{to{transform:translateY(0)}}
.p5x-sub{font-size:15px;color:rgba(240,236,232,.38);line-height:1.9;max-width:400px;margin:0 auto 40px;opacity:0;animation:p5xfade 1s .9s both}
@keyframes p5xfade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.p5x-btns{display:flex;gap:14px;justify-content:center;opacity:0;animation:p5xfade 1s 1.1s both}
.p5x-btn{background:#f0ece8;color:#020202;padding:14px 40px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border:none;cursor:none;font-family:'Outfit',sans-serif;transition:opacity .25s}
.p5x-btn:hover{opacity:.82}
.p5x-bto{background:none;border:1px solid rgba(240,236,232,.16);color:rgba(240,236,232,.55);padding:14px 40px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;cursor:none;font-family:'Outfit',sans-serif;transition:all .3s}
.p5x-bto:hover{border-color:#f0ece8;color:#f0ece8}
.p5x-scroll-hint{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:p5xfade 1s 1.4s both}
.p5x-scroll-line{width:1px;height:60px;background:linear-gradient(to bottom,rgba(240,236,232,.3),transparent);animation:p5xsl 2s 2s infinite}
@keyframes p5xsl{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.p5x-scroll-lbl{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.24em;color:rgba(240,236,232,.2);text-transform:uppercase}
/* MARQUEE */
.p5x-mq{overflow:hidden;border-top:1px solid rgba(240,236,232,.06);border-bottom:1px solid rgba(240,236,232,.06);padding:16px 0;position:relative}
.p5x-mq-inner{display:flex;animation:p5xmq 28s linear infinite;white-space:nowrap}
.p5x-mq-item{font-family:'DM Serif Display',serif;font-style:italic;font-size:15px;color:rgba(240,236,232,.12);padding:0 48px;letter-spacing:.04em}
.p5x-mq-dot{color:rgba(240,236,232,.2)}
@keyframes p5xmq{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
/* SERVICES: horizontal scroll on desktop */
.p5x-svc{padding:96px 0;overflow:hidden;border-bottom:1px solid rgba(240,236,232,.06)}
.p5x-svch{padding:0 56px;margin-bottom:56px;display:flex;justify-content:space-between;align-items:flex-end}
.p5x-stag{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.22em;color:rgba(240,236,232,.18);text-transform:uppercase;margin-bottom:10px}
.p5x-stitle{font-family:'DM Serif Display',serif;font-size:clamp(28px,4vw,48px);color:#f0ece8;line-height:1.1}
.p5x-stitle em{font-style:italic;color:rgba(240,236,232,.38)}
.p5x-sg{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(240,236,232,.06);padding:0 56px;box-sizing:content-box}
.p5x-sc{background:#020202;padding:48px 36px;position:relative;overflow:hidden;cursor:none;transition:background .4s}
.p5x-sc::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(240,236,232,.03),transparent);opacity:0;transition:opacity .4s}
.p5x-sc:hover{background:#0a0a0a}
.p5x-sc:hover::before{opacity:1}
.p5x-sc-num{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(240,236,232,.16);letter-spacing:.18em;margin-bottom:32px}
.p5x-sc-name{font-family:'DM Serif Display',serif;font-size:22px;color:#f0ece8;margin-bottom:14px;transition:transform .4s}
.p5x-sc:hover .p5x-sc-name{transform:translateY(-3px)}
.p5x-sc-desc{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:rgba(240,236,232,.32);line-height:1.9;margin-bottom:20px}
.p5x-sc-tags{display:flex;flex-wrap:wrap;gap:6px}
.p5x-sc-tag{font-family:'IBM Plex Mono',monospace;font-size:8px;border:1px solid rgba(240,236,232,.1);padding:2px 8px;color:rgba(240,236,232,.28);transition:border-color .3s,color .3s}
.p5x-sc:hover .p5x-sc-tag{border-color:rgba(240,236,232,.25);color:rgba(240,236,232,.55)}
/* WHY */
.p5x-why{border-bottom:1px solid rgba(240,236,232,.06)}
.p5x-why-top{padding:80px 56px;border-bottom:1px solid rgba(240,236,232,.06);display:flex;justify-content:space-between;align-items:flex-end}
.p5x-why-title{font-family:'DM Serif Display',serif;font-size:clamp(32px,5vw,60px);line-height:1.05;max-width:520px}
.p5x-why-title em{font-style:italic;color:rgba(240,236,232,.35)}
.p5x-why-sub{font-size:13px;color:rgba(240,236,232,.32);line-height:2;max-width:280px;text-align:right;font-family:'Noto Sans JP',sans-serif}
.p5x-wg{display:grid;grid-template-columns:repeat(3,1fr)}
.p5x-wc{padding:60px 52px;border-right:1px solid rgba(240,236,232,.06);position:relative;overflow:hidden;transition:background .4s}
.p5x-wc:last-child{border-right:none}
.p5x-wc:hover{background:rgba(240,236,232,.025)}
.p5x-wbg{position:absolute;bottom:-20px;right:-10px;font-family:'DM Serif Display',serif;font-style:italic;font-size:120px;color:rgba(240,236,232,.022);line-height:1;user-select:none;pointer-events:none}
.p5x-wn{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(240,236,232,.16);letter-spacing:.18em;margin-bottom:20px}
.p5x-wt{font-family:'DM Serif Display',serif;font-size:22px;color:#f0ece8;margin-bottom:14px;position:relative}
.p5x-wtx{font-family:'Noto Sans JP',sans-serif;font-size:13px;color:rgba(240,236,232,.35);line-height:2;position:relative}
/* CONTACT */
.p5x-ct{padding:100px 56px;text-align:center}
.p5x-ctag{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.22em;color:rgba(240,236,232,.18);text-transform:uppercase;margin-bottom:16px}
.p5x-ct h2{font-family:'DM Serif Display',serif;font-size:clamp(36px,6vw,72px);line-height:.95;letter-spacing:-.03em;margin-bottom:12px}
.p5x-ct h2 em{font-style:italic;color:rgba(240,236,232,.35)}
.p5x-ct>p{font-family:'Noto Sans JP',sans-serif;font-size:14px;color:rgba(240,236,232,.32);margin-bottom:52px;line-height:2}
.p5x-cti{max-width:540px;margin:0 auto;text-align:left}
.p5x-form .fr{margin-bottom:20px}
.p5x-form label{display:block;font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.18em;color:rgba(240,236,232,.16);text-transform:uppercase;margin-bottom:6px}
.p5x-form input,.p5x-form select,.p5x-form textarea{width:100%;background:none;border:none;border-bottom:1px solid rgba(240,236,232,.1);color:#f0ece8;padding:11px 0;font-family:'Outfit',sans-serif;font-size:14px;outline:none;transition:border-color .3s}
.p5x-form input:focus,.p5x-form select:focus,.p5x-form textarea:focus{border-color:rgba(240,236,232,.5)}
.p5x-form textarea{height:88px;resize:none}
.p5x-form select option{background:#0a0a0a}
.p5x-ft{padding:28px 56px;border-top:1px solid rgba(240,236,232,.06);display:flex;justify-content:space-between;align-items:center}
.p5x-ftl{font-family:'DM Serif Display',serif;font-style:italic;font-size:16px}
.p5x-ftc{font-family:'IBM Plex Mono',monospace;font-size:8px;color:#181818;letter-spacing:.1em}

/* ═══════════════════════════════════════════
   P9BB — BIKE BEAR INSPIRED
   #FFFFFF · #0A0A0A · Accent #FFE500
   Syne 800 + Noto Sans JP
═══════════════════════════════════════════ */
.p9bb{background:#fff;color:#0a0a0a;font-family:'Syne',sans-serif;overflow-x:hidden}
.p9bb-nav{position:fixed;top:44px;left:0;right:0;z-index:200;display:flex;justify-content:space-between;align-items:center;padding:0 60px;height:64px;background:rgba(255,255,255,.82);backdrop-filter:blur(20px);border-bottom:1px solid rgba(10,10,10,.06)}
.p9bb-logo{font-size:14px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.p9bb-nl{display:flex;gap:36px;align-items:center}
.p9bb-nl a{color:rgba(10,10,10,.35);text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:color .2s}
.p9bb-nl a:hover{color:#0a0a0a}
.p9bb-cta{background:#FFE500!important;color:#0a0a0a!important;padding:10px 26px;font-weight:800!important;font-size:11px!important;letter-spacing:.08em!important;text-transform:uppercase!important;border:2px solid #0a0a0a!important;transition:transform .15s,box-shadow .15s!important}
.p9bb-cta:hover{transform:translate(-2px,-2px)!important;box-shadow:4px 4px 0 #0a0a0a!important}
/* HERO */
.p9bb-hero{min-height:100vh;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:120px 60px 80px}
#p9bb-cv{position:absolute;inset:0;z-index:0;width:100%;height:100%}
.p9bb-hero-content{position:relative;z-index:1;max-width:900px}
.p9bb-kicker{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.28em;color:rgba(10,10,10,.32);text-transform:uppercase;margin-bottom:28px;display:flex;align-items:center;gap:14px;animation:p9bbup 1s .2s both}
.p9bb-kicker::before{content:'';width:32px;height:2px;background:#FFE500}
@keyframes p9bbup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.p9bb-title{font-size:clamp(60px,10vw,144px);font-weight:800;line-height:.86;letter-spacing:-.045em;text-transform:uppercase;margin-bottom:36px;animation:p9bbup 1s .38s both}
.p9bb-title-accent{display:block;color:#FFE500;-webkit-text-stroke:3px #0a0a0a}
.p9bb-sub{font-family:'Noto Sans JP',sans-serif;font-size:16px;color:rgba(10,10,10,.5);line-height:1.9;max-width:480px;margin-bottom:48px;animation:p9bbup 1s .56s both}
.p9bb-hbtns{display:flex;gap:0;animation:p9bbup 1s .74s both}
.p9bb-btn{background:#0a0a0a;color:#FFE500;padding:18px 52px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border:2px solid #0a0a0a;cursor:pointer;font-family:'Syne',sans-serif;box-shadow:4px 4px 0 #ccc;transition:transform .15s,box-shadow .15s}
.p9bb-btn:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 #ccc}
.p9bb-bto{background:#FFE500;color:#0a0a0a;padding:18px 52px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border:2px solid #0a0a0a;border-left:none;cursor:pointer;font-family:'Syne',sans-serif;box-shadow:4px 4px 0 #ccc;transition:transform .15s,box-shadow .15s}
.p9bb-bto:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 #ccc}
.p9bb-hero-counter{position:absolute;bottom:60px;right:60px;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.p9bb-hc-val{font-size:64px;font-weight:800;color:rgba(10,10,10,.06);line-height:1;letter-spacing:-.04em}
.p9bb-hc-label{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.2em;color:rgba(10,10,10,.28);text-transform:uppercase}
/* MARQUEE */
.p9bb-mq{overflow:hidden;border-top:3px solid #0a0a0a;border-bottom:3px solid #0a0a0a;background:#FFE500;padding:14px 0}
.p9bb-mqi{display:flex;animation:p9bbmq 14s linear infinite;white-space:nowrap}
.p9bb-mqitem{font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:0 40px;color:#0a0a0a}
.p9bb-mqdot{color:rgba(10,10,10,.3)}
@keyframes p9bbmq{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
/* SERVICES */
.p9bb-svc{padding:96px 60px;border-bottom:3px solid #0a0a0a}
.p9bb-svch{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px}
.p9bb-svch h2{font-size:clamp(28px,4vw,52px);font-weight:800;text-transform:uppercase;letter-spacing:-.025em;line-height:1.05}
.p9bb-svch p{font-family:'Noto Sans JP',sans-serif;font-size:14px;color:rgba(10,10,10,.45);line-height:2;max-width:340px;text-align:right}
.p9bb-sg{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.p9bb-sc{padding:44px 36px;border:2px solid #0a0a0a;margin:-1px 0 0 -1px;position:relative;overflow:hidden;cursor:pointer;transition:background .2s,transform .2s}
.p9bb-sc-hover-bg{position:absolute;inset:0;background:#FFE500;transform:translateY(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);z-index:0}
.p9bb-sc:hover .p9bb-sc-hover-bg{transform:translateY(0)}
.p9bb-sc-num{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(10,10,10,.22);letter-spacing:.18em;margin-bottom:24px;position:relative;z-index:1}
.p9bb-sc-name{font-size:20px;font-weight:800;text-transform:uppercase;margin-bottom:14px;line-height:1.1;letter-spacing:-.01em;position:relative;z-index:1;transition:transform .3s}
.p9bb-sc:hover .p9bb-sc-name{transform:translateY(-2px)}
.p9bb-sc-desc{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:rgba(10,10,10,.5);line-height:1.9;margin-bottom:18px;position:relative;z-index:1}
.p9bb-sc-arrow{position:absolute;bottom:24px;right:24px;z-index:1;font-size:20px;opacity:.2;transition:opacity .2s,transform .2s}
.p9bb-sc:hover .p9bb-sc-arrow{opacity:.7;transform:translate(3px,-3px)}
/* WHY */
.p9bb-why{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;border-bottom:3px solid #0a0a0a}
.p9bb-wh{background:#0a0a0a;color:#fff;padding:60px 44px;border-right:3px solid #0a0a0a;display:flex;flex-direction:column;justify-content:space-between}
.p9bb-wh-tag{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.2em;color:rgba(255,229,0,.4);text-transform:uppercase;margin-bottom:12px}
.p9bb-wh h2{font-size:22px;font-weight:800;text-transform:uppercase;line-height:1.2;letter-spacing:-.01em}
.p9bb-wh-accent{width:32px;height:3px;background:#FFE500;margin-top:24px}
.p9bb-wi{padding:60px 40px;border-right:3px solid #0a0a0a;transition:background .2s;cursor:default}
.p9bb-wi:last-child{border-right:none}
.p9bb-wi:hover{background:#fffde0}
.p9bb-wn{font-size:56px;font-weight:800;color:rgba(10,10,10,.05);line-height:1;margin-bottom:16px}
.p9bb-wt{font-size:16px;font-weight:800;text-transform:uppercase;margin-bottom:14px;letter-spacing:-.01em}
.p9bb-wtx{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:rgba(10,10,10,.48);line-height:1.9}
/* CONTACT */
.p9bb-ct{display:grid;grid-template-columns:1fr 1fr}
.p9bb-ctl{background:#FFE500;padding:80px 60px;border-right:3px solid #0a0a0a}
.p9bb-ctl h2{font-size:clamp(32px,4.5vw,58px);font-weight:800;text-transform:uppercase;line-height:.96;margin-bottom:16px;letter-spacing:-.03em}
.p9bb-ctl p{font-family:'Noto Sans JP',sans-serif;font-size:14px;color:rgba(10,10,10,.55);line-height:2;margin-top:12px}
.p9bb-ctr{padding:80px 60px;background:#fff}
.p9bb-form .fr{margin-bottom:22px}
.p9bb-form label{display:block;font-size:9px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:rgba(10,10,10,.28);margin-bottom:6px}
.p9bb-form input,.p9bb-form select,.p9bb-form textarea{width:100%;background:none;border:none;border-bottom:2px solid rgba(10,10,10,.15);color:#0a0a0a;padding:11px 0;font-family:'Noto Sans JP',sans-serif;font-size:14px;outline:none;transition:border-color .2s}
.p9bb-form input:focus,.p9bb-form select:focus,.p9bb-form textarea:focus{border-color:#0a0a0a}
.p9bb-form textarea{height:96px;resize:none}
.p9bb-bsub{background:#0a0a0a;color:#FFE500;padding:16px 48px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border:2px solid #0a0a0a;cursor:pointer;font-family:'Syne',sans-serif;box-shadow:4px 4px 0 #888;transition:transform .15s,box-shadow .15s}
.p9bb-bsub:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 #888}
.p9bb-ft{padding:28px 60px;border-top:3px solid #0a0a0a;display:flex;justify-content:space-between;align-items:center;background:#fff}
.p9bb-ftl{font-size:14px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.p9bb-ftc{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(10,10,10,.28);letter-spacing:.1em}
