@import url("./assets/fonts/noto-headings.css");
@font-face{font-family:"Bodoni Moda";src:url("./assets/fonts/bodoni-moda-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Bodoni Moda";src:url("./assets/fonts/bodoni-moda-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Plex Mono";src:url("./assets/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
:root{--b-display:"Bodoni Moda",serif;--b-cn:"Noto Serif SC","Songti SC",serif;--b-mono:"Plex Mono",monospace;--b-panel:#f9e9ef;--b-stage:#f8e3ea;--b-rose:#af416c;--b-edge:#b965862e;--b-dim:#7f5c6c}
:root[data-theme="dark"]{--b-panel:#251a24;--b-stage:#2b1b28;--b-rose:#f6a8cd;--b-edge:#ecaccc26;--b-dim:#c8a6b9}
/* Typography only: the existing Hero sculpture, layout and shader are unchanged. */
.hero h1{font-family:var(--b-display);font-weight:400;font-size:clamp(118px,10.5vw,158px);letter-spacing:-6px;line-height:1.04;margin-top:10px}
.hero-line:first-child{padding-bottom:.055em}
.hero-line:nth-child(2){font-family:var(--b-display);font-size:.345em;letter-spacing:-1.5px;line-height:1.35;margin-top:0}
.hero-line:nth-child(2) em{font-family:var(--b-display);letter-spacing:-1.4px}
.hero-greeting>span{font-family:var(--b-display)}
.prototype-tag{position:fixed;z-index:100;bottom:16px;left:18px;padding:7px 12px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--muted);font:9px/1.5 var(--b-mono);box-shadow:0 3px 16px #5d234010;pointer-events:none}
.bloom-toolbox{padding:86px 0 0;background:transparent;overflow:clip}
.bloom-toolbox .section-label,.bloom-experiment .section-label{margin-bottom:42px;font-family:var(--b-mono);font-size:9px}
.bloom-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:42px}
.bloom-heading h2{font:400 clamp(38px,4.1vw,58px)/1.48 var(--b-cn);letter-spacing:.025em}
.bloom-heading h2 span{color:var(--b-rose)}
.bloom-heading p{color:var(--b-dim);font-size:12px;line-height:1.95}
.bloom-heading-aside{padding-bottom:9px;max-width:300px}
.bloom-script{display:block;font:italic 29px/1.3 var(--b-display);color:var(--b-rose);margin-bottom:16px}
.bloom-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.85fr);gap:64px;align-items:center}
.bloom-space{position:relative;height:590px;background:radial-gradient(ellipse at 48% 46%,#fff8fbd9 0%,transparent 63%),var(--b-stage);border:1px solid var(--b-edge);border-radius:5px;isolation:isolate;overflow:hidden;--space-accent:var(--b-rose)}
[data-theme="dark"] .bloom-space{background:radial-gradient(ellipse at 48% 46%,#62324955,transparent 60%),var(--b-stage)}
.bloom-space::before,.bloom-chamber::before{position:absolute;inset:0;content:"";background-image:radial-gradient(var(--b-edge) .65px,transparent .7px);background-size:24px 24px;opacity:.55;pointer-events:none;z-index:-1}
.bloom-space-top{position:absolute;z-index:4;top:23px;inset-inline:23px;display:flex;align-items:center;justify-content:space-between;color:var(--b-dim);font:8px var(--b-mono);letter-spacing:.7px;pointer-events:none}
.bloom-space-top>span:first-child,.chamber-caption>span:first-child{display:flex;align-items:center;gap:8px}
.bloom-space-top i,.chamber-caption i{width:5px;height:5px;background:var(--b-rose);border-radius:50%;box-shadow:0 0 8px #ce7ba9}
.bloom-viewport{position:absolute;inset:34px 0 38px}
.bloom-viewport canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.bloom-viewport canvas:active{cursor:grabbing}
.bloom-node-layer{position:absolute;inset:34px 0 38px;pointer-events:none;z-index:3}
.bloom-node{position:absolute;left:0;top:0;pointer-events:auto;padding:7px 12px;min-height:38px;text-align:center;white-space:nowrap;color:var(--b-dim);border:1px solid transparent;border-radius:25px;background:var(--paper);box-shadow:0 2px 10px #8d365b05;transition:color .2s,border-color .2s,background .2s}
.bloom-node>span{font:11px/1.2 var(--sans)}
.bloom-node small{display:block;font:6px/1.7 var(--b-mono);letter-spacing:.5px;padding-top:3px;opacity:.7}
.bloom-node.primary{border-color:var(--b-edge);padding:8px 16px;border-radius:4px;min-height:48px}
.bloom-node.primary>span{font-size:18px;letter-spacing:-.5px}
.bloom-node:hover,.bloom-node[aria-pressed="true"]{border-color:var(--b-rose);color:var(--b-rose);background:var(--bg)}
.bloom-node:focus-visible{outline:2px solid var(--b-rose);outline-offset:3px}
.bloom-core-label{position:absolute;left:50%;top:54%;transform:translate(-50%,0);pointer-events:none;text-align:center;z-index:2}
.bloom-core-label>span{font:7px var(--b-mono);letter-spacing:1.5px;color:var(--b-dim)}
.bloom-core-label>em{display:block;font:italic 26px/1.6 var(--b-display);letter-spacing:-.5px;color:var(--b-rose)}
.bloom-space-bottom{position:absolute;bottom:15px;inset-inline:23px;display:flex;align-items:center;justify-content:space-between;color:var(--b-dim);font-size:10px;z-index:4}
.bloom-space-bottom button{padding:8px 0 8px 12px;min-height:40px;font-size:10px}
.bloom-space-bottom button>span{margin-left:7px}
.bloom-detail{min-width:0}
.bloom-tabs{display:flex;gap:26px;border-bottom:1px solid var(--b-edge);margin-bottom:32px}
.bloom-tabs button{position:relative;padding:8px 0 16px;min-height:44px;font-size:11px;color:var(--b-dim)}
.bloom-tabs button[aria-pressed="true"]{color:var(--ink)}
.bloom-tabs button[aria-pressed="true"]::after{content:"";position:absolute;bottom:-1px;inset-inline:0;height:2px;background:var(--b-rose)}
.bloom-kicker{font:8px/1.5 var(--b-mono);letter-spacing:.8px;color:var(--b-rose)}
.bloom-detail-content h3{font:400 33px/1.55 var(--b-cn);letter-spacing:.02em;margin:16px 0 18px}
.bloom-detail-content p{font-size:12px;line-height:2;color:var(--b-dim);max-width:340px;min-height:48px}
.bloom-detail-content dl{margin-top:23px}
.bloom-detail-content dl>div{display:grid;grid-template-columns:83px minmax(0,1fr);gap:12px;padding:13px 0;border-bottom:1px solid var(--b-edge)}
.bloom-detail-content dt{font-size:11px;font-weight:600}
.bloom-detail-content dd{font-size:10px;line-height:1.9;color:var(--b-dim);margin:0}
.bloom-detail-content dl>.selected{border-left:2px solid var(--b-rose);padding-left:9px;background:linear-gradient(90deg,#cd648b09,transparent)}
.bloom-detail-note{display:flex;align-items:center;gap:15px;margin-top:28px;color:var(--b-dim)}
.bloom-detail-note>span{color:var(--b-rose);font-size:34px;font-weight:400}
.bloom-detail-note p{font-size:10px;line-height:1.8}
.bloom-detail-note small{display:block;font:7px/1.7 var(--b-mono);opacity:.7;margin-top:4px}
.bloom-foundation{display:flex;align-items:center;gap:30px;padding:27px 0 33px;margin-top:34px;border-top:1px solid var(--b-edge)}
.bloom-foundation>span{font:8px var(--b-mono);letter-spacing:1px;color:var(--b-dim);flex-shrink:0}
.bloom-foundation p{font-size:11px;color:var(--b-dim);line-height:2}
.bloom-foundation i{font-style:normal;color:var(--b-rose);margin:0 9px;opacity:.6}
.bloom-experiment{padding:90px 0 62px;border-bottom:1px solid var(--line);overflow:clip}
.experiment-heading{margin-bottom:34px}
.experiment-heading>p{padding-bottom:9px}
.bloom-chamber{position:relative;height:570px;background:radial-gradient(ellipse at 50% 43%,#f6c8d98c,transparent 63%),var(--b-panel);border:1px solid var(--b-edge);border-radius:5px;overflow:hidden;isolation:isolate}
[data-theme="dark"] .bloom-chamber{background:radial-gradient(ellipse at 50% 43%,#64364c66,transparent 63%),var(--b-panel)}
.bloom-chamber .bloom-viewport{inset:25px 0 75px;z-index:1}
.chamber-caption{display:flex;justify-content:space-between;align-items:center;gap:16px;position:absolute;inset:24px 27px auto;color:var(--b-dim);font:8px var(--b-mono);letter-spacing:.8px;z-index:4;pointer-events:none}
.chamber-word{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);font:italic clamp(64px,8.8vw,122px)/1 var(--b-display);color:var(--b-rose);opacity:.07;pointer-events:none;z-index:0;letter-spacing:-5px}
.chamber-bottom{position:absolute;inset:auto 27px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px;z-index:4}
.chamber-message>span{font:9px/1.7 var(--b-mono);letter-spacing:.3px;color:var(--b-rose)}
.chamber-message p{font-size:10px;color:var(--b-dim);line-height:1.9;margin-top:7px}
.bloom-replay{padding:13px 18px;min-height:44px;border:1px solid var(--b-edge);border-radius:30px;font-size:10px;color:var(--b-rose);flex-shrink:0;background:var(--paper)}
.bloom-replay>span{font-size:17px;margin-left:17px}
.bloom-replay[aria-pressed="true"]{background:var(--b-rose);color:var(--bg)}
.bloom-energy{position:absolute;right:22px;top:58px;z-index:4;padding:8px 12px;min-height:40px;display:flex;align-items:center;gap:12px;border-radius:22px;color:var(--b-rose);font-size:9px}
.bloom-energy>span{font-size:21px}
.bloom-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--b-edge);border-radius:4px;overflow:hidden;margin-top:17px}
.bloom-steps>button{text-align:left;padding:21px 25px 23px;border-right:1px solid var(--b-edge);background:var(--paper);position:relative;transition:background .3s,color .3s}
.bloom-steps>button:last-child{border-right:0}
.step-index{font:8px/1.7 var(--b-mono);letter-spacing:.6px;color:var(--b-dim)}
.bloom-steps strong{display:block;font:400 34px/1.3 var(--b-display);letter-spacing:-1px;margin:12px 0 8px}
.bloom-steps strong>span{float:right;font:20px/1.9 var(--sans);color:var(--b-rose)}
.step-note{font-size:10px;color:var(--b-dim)}
.bloom-steps>button[aria-pressed="true"]{background:var(--b-stage);color:var(--b-rose)}
.bloom-steps>button[aria-pressed="true"]::before{content:"";position:absolute;top:0;inset-inline:0;height:2px;background:var(--b-rose)}
.bloom-steps>button:hover{background:var(--b-panel)}
.bloom-footnote{display:flex;justify-content:space-between;gap:20px;margin-top:17px;font:7px/1.8 var(--b-mono);letter-spacing:.6px;color:var(--b-dim)}
.bloom-footnote>span:last-child{font:10px var(--sans);letter-spacing:0}
.bloom-fallback{width:100%;height:100%;color:var(--b-rose);opacity:.5;display:block}
.bloom-viewport.is-ready>.bloom-fallback{display:none}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node{left:50%;top:50%}
.bloom-node-layer .bloom-node:nth-child(1){transform:translate(80px,80px)}
.bloom-node-layer .bloom-node:nth-child(2){transform:translate(280px,50px)}
.bloom-node-layer .bloom-node:nth-child(3){transform:translate(460px,80px)}
.bloom-node-layer .bloom-node:nth-child(4){transform:translate(110px,320px)}
.bloom-node-layer .bloom-node:nth-child(5){transform:translate(470px,320px)}
.bloom-node-layer .bloom-node:nth-child(6){transform:translate(285px,410px)}
.bloom-node-layer .bloom-node:nth-child(7){transform:translate(40px,215px)}
.bloom-node-layer .bloom-node:nth-child(8){transform:translate(550px,215px)}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(1){transform:translate(-175px,-145px)}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(2){transform:translate(-30px,-180px)}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(3){transform:translate(95px,-145px)}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(4){transform:translate(-175px,80px)}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(5){transform:translate(110px,80px)}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(6){transform:translate(-25px,160px)}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(7){transform:translate(-195px,-20px)}
.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(8){transform:translate(160px,-20px)}
.bloom-fallback>g{display:none}
[data-phase="0"] .fallback-curiosity,[data-phase="1"] .fallback-context,[data-phase="2"] .fallback-craft,[data-phase="3"] .fallback-iterate{display:block}
.bloom-space[data-mode="agent"] .bloom-fallback{transform:rotate(-15deg)}
.bloom-space[data-mode="web"] .bloom-fallback{transform:scale(.82,.7)}
.bloom-reduced-note{font-size:11px;color:var(--b-dim);text-align:center;margin:20px}
@media(min-width:1500px){.bloom-space{height:650px}.bloom-core-label{top:53%}.bloom-chamber{height:620px}}
@media(max-width:1000px){.bloom-layout{grid-template-columns:1fr 1fr;gap:30px}.bloom-space{height:540px}.bloom-space-top{font-size:6px;inset-inline:16px}.bloom-node.primary{padding:7px 10px;min-height:43px}.bloom-node.primary>span{font-size:15px}.bloom-node small{font-size:5px;letter-spacing:0}.bloom-core-label>em{font-size:21px}.bloom-core-label>span{font-size:6px}.bloom-space-bottom{inset-inline:15px;gap:7px}.bloom-hint{font-size:8px}.bloom-tabs{gap:22px}.bloom-detail-content h3{font-size:29px}.bloom-detail-content dd{font-size:9px}.bloom-chamber{height:515px}.bloom-steps>button{padding:19px 18px}.bloom-steps strong{font-size:30px}.step-note{font-size:9px}}
@media(max-width:760px){.hero h1{font-size:132px;letter-spacing:-5px}.hero-line:nth-child(2){font-size:.34em}.bloom-layout{grid-template-columns:1fr;gap:33px}.bloom-space{height:530px}.bloom-detail{width:100%;max-width:560px;margin-inline:auto}.bloom-tabs{gap:30px}.bloom-detail-content h3{font-size:31px}.bloom-detail-content h3 br{display:none}.bloom-detail-content p{max-width:100%;min-height:0}.bloom-detail-content dd{font-size:11px}.bloom-detail-note{margin-top:20px}.bloom-node.primary{padding-inline:13px}.bloom-node.primary>span{font-size:18px}.bloom-node small{font-size:6px}.bloom-space-top{font-size:8px}.bloom-core-label>em{font-size:26px}.bloom-core-label>span{font-size:7px}.bloom-hint{font-size:10px}.bloom-heading{gap:20px}.bloom-heading-aside{max-width:230px}.bloom-script{font-size:24px}.bloom-heading p{font-size:11px}.bloom-foundation{flex-direction:column;align-items:flex-start;gap:12px}.bloom-experiment{padding-top:70px}.bloom-steps{grid-template-columns:1fr 1fr}.bloom-steps>button:nth-child(2){border-right:0}.bloom-steps>button:nth-child(-n+2){border-bottom:1px solid var(--b-edge)}.bloom-steps strong{font-size:32px}.step-note{font-size:10px}}
@media(max-width:500px){.hero h1{font-size:clamp(92px,28vw,128px);letter-spacing:-4.5px}.hero-line:nth-child(2){font-size:.36em;letter-spacing:-1px}.hero-line:nth-child(2) em{letter-spacing:-1px}.bloom-toolbox{padding-top:63px}.bloom-toolbox .section-label,.bloom-experiment .section-label{font-size:7px;margin-bottom:30px;letter-spacing:.3px}.bloom-toolbox .section-label>span:last-child,.bloom-experiment .section-label>span:last-child{font-size:6px;max-width:118px;text-align:right}.bloom-heading{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:28px}.bloom-heading h2{font-size:37px;line-height:1.45;letter-spacing:.02em}.bloom-heading-aside{padding:0;max-width:none}.bloom-script{font-size:23px;margin-bottom:9px}.bloom-heading p{font-size:11px}.bloom-space{height:465px}.bloom-space-top{top:18px;inset-inline:15px;font-size:6px}.bloom-viewport,.bloom-node-layer{inset:30px 0 45px}.bloom-node.primary{padding:6px 9px;min-height:40px}.bloom-node.primary>span{font-size:15px}.bloom-node small{font-size:5px}.bloom-node{padding:6px 9px;min-height:36px}.bloom-node>span{font-size:10px}.bloom-core-label{top:51.5%}.bloom-core-label>em{font-size:21px}.bloom-core-label>span{font-size:6px}.bloom-hint,.bloom-space-bottom button{font-size:8px}.bloom-space-bottom{inset-inline:15px;bottom:10px}.bloom-detail-content h3{font-size:29px}.bloom-detail-content dl>div{grid-template-columns:75px 1fr}.bloom-detail-note{margin-top:21px}.bloom-foundation{margin-top:27px;padding-block:23px}.bloom-foundation p{font-size:10px}.bloom-foundation i{margin:0 5px}.bloom-experiment{padding-top:60px;padding-bottom:44px}.bloom-chamber{height:460px}.chamber-caption{inset:20px 15px auto;font-size:7px;letter-spacing:.4px}.bloom-chamber .bloom-viewport{inset:30px 0 100px}.chamber-word{font-size:67px;letter-spacing:-3px;top:41%}.chamber-bottom{inset:auto 16px 14px;align-items:flex-start;gap:10px;flex-direction:column}.chamber-message>span{font-size:8px;letter-spacing:0}.chamber-message p{font-size:9px;margin-top:4px;max-width:320px}.bloom-replay{padding:8px 14px;min-height:36px;font-size:9px}.bloom-replay>span{margin-left:13px;font-size:14px}.bloom-energy{top:43px;right:7px;font-size:8px;padding-inline:10px;gap:6px}.bloom-energy>span{font-size:18px}.bloom-steps{margin-top:12px}.bloom-steps>button{padding:17px 16px}.step-index{font-size:7px}.bloom-steps strong{font-size:28px;margin:9px 0 5px}.bloom-steps strong>span{font-size:16px}.step-note{font-size:9px}.bloom-footnote{flex-direction:column;gap:7px;font-size:6px}.bloom-footnote>span:last-child{font-size:9px}.prototype-tag{font-size:7px;padding:6px 10px;bottom:9px;left:10px}.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(1){transform:translate(-126px,-120px)}.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(2){transform:translate(-23px,-145px)}.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(3){transform:translate(65px,-120px)}.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(4){transform:translate(-125px,70px)}.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(5){transform:translate(80px,70px)}.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(6){transform:translate(-27px,130px)}.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(7){transform:translate(-142px,-5px)}.bloom-viewport:not(.is-ready)~.bloom-node-layer .bloom-node:nth-child(8){transform:translate(110px,-5px)}}
@media(prefers-reduced-motion:reduce){.bloom-node,.bloom-steps>button{transition:none}}
[data-motion="reduced"] .bloom-node,[data-motion="reduced"] .bloom-steps>button{transition:none}
