/* JewelBooks landing: additive banner sections (.jbn-*). Nothing here targets existing classes. */
.jbn{padding:72px var(--px,max(20px,calc((100vw - 1040px)/2))) 8px;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
.jbn *{box-sizing:border-box}
.jbn-kicker{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#9a6b1f}
.jbn h2{margin:0;font-size:clamp(30px,4.4vw,52px);line-height:1.06;font-weight:700;letter-spacing:-.03em;color:#1d1d1f}
.jbn p.jbn-sub{margin:16px 0 0;font-size:clamp(16px,1.6vw,19px);line-height:1.5;color:#6e6e73;max-width:560px}
.jbn-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.jbn-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:999px;font-size:16px;font-weight:600;text-decoration:none;border:0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.jbn-btn:hover{transform:translateY(-1px)}
.jbn-btn.pri{background:#f5f5f7;color:#1d1d1f}.jbn-btn.dark{background:#1d1d1f;color:#fff}
.jbn-btn.ghost{background:transparent;color:#e8c98a;box-shadow:inset 0 0 0 1px rgba(232,201,138,.5)}.jbn-btn.ghost.light{color:#1d1d1f;box-shadow:inset 0 0 0 1px #c7c7cc}
/* A: hero banner */
.jbn-hero{position:relative;overflow:hidden;border-radius:36px;background:radial-gradient(900px 500px at 85% -10%,rgba(232,201,138,.28),transparent 60%),linear-gradient(160deg,#1d1d1f 0%,#2a2620 100%);color:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:32px;align-items:center;padding:clamp(32px,5vw,64px)}
.jbn-hero h2,.jbn-hero .jbn-sub{color:#fff}.jbn-hero .jbn-sub{color:rgba(255,255,255,.72)}.jbn-hero .jbn-kicker{color:#e8c98a}
.jbn-frame{position:relative;border-radius:18px;background:#0f0f10;padding:30px 8px 8px;box-shadow:0 40px 80px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.1);transform:perspective(1400px) rotateY(-6deg) rotateX(2deg);transition:transform .5s ease}
.jbn-frame:hover{transform:perspective(1400px) rotateY(0) rotateX(0)}
.jbn-frame::before{content:"";position:absolute;left:14px;top:11px;width:9px;height:9px;border-radius:50%;background:#ff5f57;box-shadow:15px 0 #febc2e,30px 0 #28c840}
.jbn-frame img{display:block;width:100%;height:auto;border-radius:10px}
.jbn-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:8px;border-radius:20px;overflow:hidden;background:rgba(255,255,255,.14)}
.jbn-stats div{background:rgba(255,255,255,.05);padding:20px 22px}.jbn-stats b{display:block;font-size:clamp(20px,2.4vw,28px);font-weight:700;letter-spacing:-.02em;color:#fff}.jbn-stats span{display:block;margin-top:4px;font-size:13px;color:rgba(255,255,255,.66)}
/* B: bento */
.jbn-head{text-align:center;margin:0 auto 40px;max-width:760px}.jbn-head .jbn-sub{margin-left:auto;margin-right:auto}
.jbn-bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.jbn-tile{position:relative;overflow:hidden;border-radius:28px;background:#fff;border:1px solid #e5e5ea;padding:28px;display:flex;flex-direction:column;gap:10px;min-height:300px;transition:transform .25s ease,box-shadow .25s ease}
.jbn-tile:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(0,0,0,.08)}
.jbn-tile.w4{grid-column:span 4}.jbn-tile.w3{grid-column:span 3}.jbn-tile.w2{grid-column:span 2}
.jbn-tile h3{margin:0;font-size:clamp(20px,2.2vw,26px);line-height:1.15;font-weight:700;letter-spacing:-.02em;color:#1d1d1f}
.jbn-tile p{margin:0;font-size:15px;line-height:1.5;color:#6e6e73;max-width:420px}
.jbn-tile small{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#9a6b1f}
.jbn-tile img{display:block;width:100%;height:auto;margin-top:auto;border-radius:14px;border:1px solid #e5e5ea;box-shadow:0 12px 30px rgba(0,0,0,.1)}
.jbn-tile.tint{background:linear-gradient(160deg,#fbf3e1,#f3e7cf);border-color:#ecdcb8}
.jbn-tile.ink{background:#1d1d1f;border-color:#1d1d1f}.jbn-tile.ink h3{color:#fff}.jbn-tile.ink p{color:rgba(255,255,255,.7)}.jbn-tile.ink small{color:#e8c98a}.jbn-tile.ink img{border-color:rgba(255,255,255,.12)}
@media (max-width:900px){.jbn-hero{grid-template-columns:1fr}.jbn-frame{transform:none}.jbn-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.jbn-bento{grid-template-columns:repeat(2,minmax(0,1fr))}.jbn-tile.w4,.jbn-tile.w3{grid-column:span 2}.jbn-tile.w2{grid-column:span 1}}
@media (max-width:560px){.jbn{padding-top:48px}.jbn-hero{border-radius:26px}.jbn-bento{grid-template-columns:1fr}.jbn-tile.w4,.jbn-tile.w3,.jbn-tile.w2{grid-column:span 1}.jbn-tile{min-height:0;border-radius:22px;padding:22px}.jbn-btn{width:100%}}
@media (prefers-reduced-motion:reduce){.jbn-frame,.jbn-tile,.jbn-btn{transition:none}}
.jbn-hero p.jbn-sub{color:rgba(255,255,255,.78)}
.jbn-head p.jbn-sub{margin:16px auto 0}
.jbn-tile.w2 img{aspect-ratio:1/1;object-fit:cover;object-position:left top}

/* AI map */

.aimap{background:#f5f5f7;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",Inter,"Segoe UI",sans-serif;--bg:#f5f5f7;--ink:#1d1d1f;--mute:#6e6e73;--card:#fff;--gold:#9a6b1f;--gold2:#e8c98a;--line:#d2d2d7;--green:#1f8a4c}
.aimap *{box-sizing:border-box}
.aimap .wrap{max-width:1120px;margin:0 auto;padding:72px 20px}.aimap .head{text-align:center;max-width:720px;margin:0 auto 36px}.aimap .kick{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600}.aimap h2{font-size:clamp(32px,5vw,52px);letter-spacing:-.03em;line-height:1.06;margin:12px 0 14px}.aimap .head p{color:var(--mute);font-size:18px;line-height:1.5;margin:0}.aimap .stage{position:relative;height:620px;border-radius:32px;background:radial-gradient(700px 360px at 50% 45%,#fff,#fbfbfd 60%,#f0f0f3);box-shadow:0 1px 0 #fff inset,0 24px 60px rgba(0,0,0,.08);overflow:hidden}.aimap svg.links{position:absolute;inset:0;width:100%;height:100%}.aimap .links path{fill:none;stroke:var(--gold2);stroke-width:1.6;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);stroke-linecap:round}.aimap .links path.soft{stroke:#c7c7cc;stroke-dasharray:4 7;stroke-dashoffset:0;opacity:0}.aimap .run .links path:not(.soft){animation:aim-draw 1.1s cubic-bezier(.3,.7,.2,1) forwards;animation-delay:var(--d)}.aimap .run .links path.soft{animation:aim-fade .8s forwards;animation-delay:calc(var(--d) + .4s)}
@keyframes aim-draw{to{stroke-dashoffset:0}}@keyframes aim-fade{to{opacity:1}}.aimap .dot{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold);offset-rotate:0deg;opacity:0;offset-path:var(--p);offset-distance:0%}.aimap .run .dot{animation:aim-travel 3.2s linear infinite;animation-delay:calc(var(--d) + 1.2s)}
@keyframes aim-travel{0%{offset-distance:0%;opacity:0}10%{opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}.aimap .hub{position:absolute;left:50%;top:50%;width:170px;height:170px;margin:-85px 0 0 -85px;border-radius:50%;display:grid;place-items:center;text-align:center;background:linear-gradient(160deg,#1d1d1f,#34302a);color:#fff;box-shadow:0 20px 50px rgba(0,0,0,.28);transform:scale(.4);opacity:0;z-index:3}.aimap .run .hub{animation:aim-popH .8s cubic-bezier(.2,1.2,.3,1) forwards}@keyframes aim-popH{to{transform:scale(1);opacity:1}}.aimap .hub b{display:block;font-size:22px;letter-spacing:-.02em}.aimap .hub small{display:block;color:var(--gold2);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-top:4px}.aimap .ring{position:absolute;left:50%;top:50%;border-radius:50%;border:1.5px solid rgba(154,107,31,.35);transform:translate(-50%,-50%) scale(.6);opacity:0}.aimap .run .ring{animation:aim-ring 3.6s ease-out infinite;animation-delay:calc(var(--d) + 1s)}
@keyframes aim-ring{0%{transform:translate(-50%,-50%) scale(.55);opacity:.8}100%{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.aimap .node{position:absolute;width:210px;padding:14px 16px;border-radius:20px;background:var(--card);box-shadow:0 1px 2px rgba(0,0,0,.06),0 10px 30px rgba(0,0,0,.08);transform:translate(-50%,-50%) scale(.7);opacity:0;z-index:2}.aimap .run .node{animation:aim-pop .7s cubic-bezier(.2,1.2,.3,1) forwards,aim-float 6s ease-in-out infinite;animation-delay:var(--d),calc(var(--d) + .8s)}
@keyframes aim-pop{to{transform:translate(-50%,-50%) scale(1);opacity:1}}.aimap .hub{animation-fill-mode:forwards}.aimap .run .hub{transform:scale(1)}
@keyframes aim-float{0%,100%{margin-top:0}50%{margin-top:-7px}}.aimap .node h4{margin:6px 0 4px;font-size:16px;letter-spacing:-.01em}.aimap .node p{margin:0;font-size:13px;line-height:1.4;color:var(--mute)}.aimap .tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}.aimap .tag::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.aimap .tag.next{color:var(--gold)}.aimap .hub{z-index:3}.aimap .node:hover{box-shadow:0 1px 2px rgba(0,0,0,.06),0 16px 40px rgba(0,0,0,.14)}.aimap .foot{display:flex;justify-content:center;gap:14px;margin-top:22px;flex-wrap:wrap;align-items:center}.aimap .legend{font-size:14px;color:var(--mute);display:flex;gap:18px}.aimap button{font:600 15px inherit;font-family:inherit;border:0;border-radius:980px;padding:11px 22px;background:var(--ink);color:#fff;cursor:pointer}
@keyframes aim-popm{to{transform:none;opacity:1}}@media(max-width:820px){.aimap .run .node{animation:aim-popm .6s ease forwards;animation-delay:var(--d)}.aimap .run .hub{animation:aim-popm .6s ease forwards}.aimap .node,.aimap .hub{transform:scale(.9)}.aimap .stage{height:auto;padding:24px 16px 24px;display:grid;gap:12px}.aimap svg.links,.aimap .dot,.aimap .ring{display:none}.aimap .hub{position:relative;left:auto;top:auto;margin:0 auto 6px;width:140px;height:140px}.aimap .node{position:relative;left:auto!important;top:auto!important;width:auto}}
@media (prefers-reduced-motion:reduce){.aimap *{animation-duration:.01s!important;animation-iteration-count:1!important}}

.aimap .node b{font-weight:600}
