/* Homepage: option 2 sections (3D, neon, fireworks) scoped under .o2. Panels that act as "screens" (venture stage, fireworks stage) stay dark in both themes; everything else reads from the shared tokens. */ .o2 { --o2-text: var(--ink); --o2-muted: var(--slate); --o2-faint: var(--smoke); --neon-off: #222c47; --neon-on: #e8f9ff; --neon-glow: 0 0 4px rgba(255,255,255,.9), 0 0 14px #1fb7ff, 0 0 34px #1a7fff, 0 0 72px rgba(26,127,255,.8); --neon-mid: #9fd8f2; --stroke-word: rgba(159, 230, 255, .14); --o2-tile-bd: rgba(159, 230, 255, .3); --o2-tile-bg: linear-gradient(145deg, rgba(159, 230, 255, .14), rgba(26, 127, 255, .04)); --o2-beam: rgba(31, 183, 255, .30); } :root[data-theme="light"] .o2 { --neon-off: #d3dceb; --neon-on: #0a5fd1; --neon-glow: 0 0 18px rgba(26, 127, 255, .35); --neon-mid: #6aa6e8; --stroke-word: rgba(10, 60, 140, .12); --o2-tile-bd: rgba(26, 127, 255, .25); --o2-tile-bg: linear-gradient(145deg, rgba(26, 127, 255, .10), rgba(255, 255, 255, .6)); --o2-beam: rgba(31, 140, 255, .16); } .o2 > section { position: relative; overflow-x: clip; padding: clamp(5rem, 12vh, 8rem) 0; } .o2 .lead { color: var(--o2-muted); } .o2 .grad2 { background: linear-gradient(180deg, #a9dfff 0%, #5aa8ff 60%, #1a7fff); -webkit-background-clip: text; background-clip: text; color: transparent; } :root[data-theme="light"] .o2 .grad2 { background: linear-gradient(180deg, #1a6fe0, #0b4fb0); -webkit-background-clip: text; background-clip: text; } /* ---------- hero ---------- */ #hero { min-height: calc(100svh - var(--nav-h)); display: flex; align-items: center; justify-content: center; text-align: center; padding: 3rem 0 6rem; overflow: hidden; } .beam { position: absolute; left: 50%; top: -10%; width: min(1100px, 140vw); height: 90%; transform: translateX(-50%); pointer-events: none; background: conic-gradient(from 180deg at 50% 0%, transparent 160deg, transparent 168deg, var(--o2-beam) 180deg, transparent 192deg, transparent 200deg); filter: blur(26px); opacity: .9; } .beam::after { content: ""; position: absolute; left: 50%; top: 0; width: 60%; height: 70%; transform: translateX(-50%); background: radial-gradient(closest-side, var(--glow), transparent); } .floaters .t { position: absolute; display: flex; flex-direction: column; align-items: center; gap: .5rem; top: var(--y); animation: drift 9s ease-in-out infinite; animation-delay: var(--d); } .floaters .t.l { left: var(--x); } .floaters .t.r { right: var(--x); } @keyframes drift { 50% { transform: translateY(-16px) rotate(var(--r, 0deg)); } } .tile { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 18px; border: 1px solid var(--o2-tile-bd); background: var(--o2-tile-bg); color: var(--ice); box-shadow: 0 0 30px rgba(26, 127, 255, .25), inset 0 0 18px rgba(159, 230, 255, .08); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: box-shadow .3s, border-color .3s; } .t:hover .tile { border-color: var(--sky); box-shadow: 0 0 44px rgba(31, 183, 255, .5), inset 0 0 18px rgba(159, 230, 255, .15); } .tile svg { width: 28px; height: 28px; } .tl { font-size: .74rem; color: var(--o2-muted); white-space: nowrap; } .icon-row { display: none; grid-template-columns: repeat(3, 1fr); gap: 1.2rem .8rem; max-width: 380px; margin: 2.4rem auto 0; } .icon-row .t { display: flex; flex-direction: column; align-items: center; gap: .45rem; } .icon-row .tl { white-space: normal; text-align: center; line-height: 1.2; } @media (max-width: 1179px) { .floaters { display: none; } .icon-row { display: grid; } } @media (min-width: 600px) and (max-width: 1179px) { .icon-row { grid-template-columns: repeat(6, 1fr); max-width: 660px; } } .emblem { position: relative; width: clamp(116px, 12vw, 164px); margin: 0 auto; perspective: 700px; } .emblem img { display: block; width: 100%; height: auto; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .3s ease-out; filter: drop-shadow(0 0 30px rgba(26, 127, 255, .65)); animation: float 6s ease-in-out infinite; } .emblem::after { content: ""; position: absolute; left: 10%; right: 10%; bottom: -14px; height: 18px; background: radial-gradient(closest-side, rgba(31, 183, 255, .55), transparent); filter: blur(6px); } @keyframes float { 50% { translate: 0 -10px; } } .hero-in { position: relative; z-index: 2; max-width: 1000px; padding-inline: var(--gutter); display: flex; flex-direction: column; align-items: center; } .hero-in > * { opacity: 0; transform: translateY(22px); filter: blur(8px); animation: heroIn 1s cubic-bezier(.2, .85, .2, 1) forwards; } .hero-in > *:nth-child(1) { animation-delay: .05s; } .hero-in > *:nth-child(2) { animation-delay: .25s; } .hero-in > *:nth-child(3) { animation-delay: .45s; } .hero-in > *:nth-child(4) { animation-delay: .65s; } .hero-in > *:nth-child(5) { animation-delay: .85s; } .hero-in > *:nth-child(6) { animation-delay: 1.05s; } @keyframes heroIn { to { opacity: 1; transform: none; filter: none; } } #hero .eyebrow { align-self: center; margin-top: 1rem; } #hero h1 { margin: 1.2rem auto 1.3rem; font-weight: 500; font-size: clamp(2.4rem, 5.6vw, 5.2rem); line-height: 1; letter-spacing: -0.05em; text-wrap: balance; } #hero h1 .grad, #hero h1 .grad2 { display: inline; } #hero .lead { margin: 0 auto 2rem; font-size: clamp(1rem, 1.5vw, 1.18rem); max-width: 62ch; } #hero .btn-row { justify-content: center; } .scroll-note { position: absolute; bottom: 1.6rem; left: 50%; transform: translateX(-50%); } .scroll-note i { display: block; width: 1px; height: 46px; background: linear-gradient(var(--sky), transparent); animation: drip 2s infinite; } @keyframes drip { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } } /* ---------- giant words + cube ---------- */ .o2 > .wsec { min-height: min(100svh, 820px); padding: 0; overflow: hidden; } .wsec-in { position: absolute; inset: 0; perspective: 1200px; } .cube { --c: min(36vmin, 320px); position: absolute; left: 50%; top: 50%; width: var(--c); height: var(--c); margin: calc(var(--c) / -2) 0 0 calc(var(--c) / -2); transform-style: preserve-3d; animation: spin 26s linear infinite; } .cube i { position: absolute; inset: 0; border: 1px solid rgba(159, 230, 255, .55); background: rgba(31, 183, 255, .05); box-shadow: inset 0 0 40px rgba(31, 183, 255, .12); } :root[data-theme="light"] .cube i { border-color: rgba(26, 127, 255, .45); } .cube i:nth-child(1) { transform: translateZ(calc(var(--c) / 2)); } .cube i:nth-child(2) { transform: rotateY(180deg) translateZ(calc(var(--c) / 2)); } .cube i:nth-child(3) { transform: rotateY(90deg) translateZ(calc(var(--c) / 2)); } .cube i:nth-child(4) { transform: rotateY(-90deg) translateZ(calc(var(--c) / 2)); } .cube i:nth-child(5) { transform: rotateX(90deg) translateZ(calc(var(--c) / 2)); } .cube i:nth-child(6) { transform: rotateX(-90deg) translateZ(calc(var(--c) / 2)); } @keyframes spin { to { transform: rotateX(360deg) rotateY(360deg); } } .cube-glow { position: absolute; left: 50%; top: 50%; width: 70vmin; height: 70vmin; transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(26, 127, 255, .35), transparent); pointer-events: none; } :root[data-theme="light"] .cube-glow { background: radial-gradient(closest-side, rgba(26, 127, 255, .14), transparent); } .wmask { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); } #wTrack { display: inline-flex; gap: .35em; padding-right: .35em; white-space: nowrap; font-weight: 500; font-size: clamp(4.6rem, 17vw, 16rem); line-height: 1.05; letter-spacing: -0.06em; will-change: transform; } #wTrack span { background: linear-gradient(180deg, var(--grad-a) 10%, #7fcdff 62%, #1a7fff); -webkit-background-clip: text; background-clip: text; color: transparent; transition: opacity .15s; } .w-side { position: absolute; right: max(var(--gutter), calc((100vw - var(--page-max)) / 2 + var(--gutter))); bottom: clamp(2rem, 9vh, 5rem); max-width: 320px; display: flex; flex-direction: column; gap: .9rem; align-items: flex-start; z-index: 3; } .w-side p { color: var(--o2-muted); font-size: .98rem; } .w-top { position: absolute; left: max(var(--gutter), calc((100vw - var(--page-max)) / 2 + var(--gutter))); top: 2.5rem; z-index: 3; } @media (max-width: 700px) { .w-side { left: var(--gutter); right: var(--gutter); max-width: none; } } /* ---------- building: copy beside the portfolio dashboard ---------- */ .bgrid { display: grid; grid-template-columns: 0.75fr 1.25fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; } .bgrid > * { min-width: 0; } .bhead { display: flex; flex-direction: column; gap: 1.4rem; align-items: flex-start; } .cluster-fit { position: relative; width: 100%; } .cluster-fit .cluster { margin: 0; width: 760px; height: 740px; max-width: none; transform-origin: 0 0; transform: scale(var(--s, 1)); } .cluster-fit .dash { left: 176px; top: 0; width: 540px; } .cluster-fit .profile { left: 0; top: 210px; width: 196px; } .cluster-fit .code { right: 0; top: 420px; width: 320px; } .cluster-fit .dash-cols { grid-template-columns: 1.25fr 1fr; } .cluster-fit .row { font-size: 12.5px; } @media (max-width: 1100px) { .bgrid { grid-template-columns: 1fr; } .cluster-fit .cluster { width: auto; height: auto; transform: none; } .cluster-fit .panel { left: auto; right: auto; top: auto; width: auto; } .cluster-fit .profile { max-width: 340px; } } /* ---------- ventures: tabs + themed 3D object ---------- */ .vhead { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.1rem; margin-bottom: 2.4rem; } .vhead .lead { max-width: 60ch; } .vhead .eyebrow, .jhead .eyebrow { align-self: center; } .jhead .eyebrow { align-self: flex-start; } .vtabs { display: flex; gap: .4rem; padding: .35rem; border: 1px solid var(--bd); border-radius: 14px; background: var(--glass); overflow-x: auto; max-width: 100%; scrollbar-width: none; margin: 0 auto 1.6rem; width: max-content; } .vtabs::-webkit-scrollbar { display: none; } .vtabs button { padding: .55rem 1rem; border: 0; border-radius: 10px; background: none; font: 500 .88rem var(--font-sans); color: var(--o2-muted); white-space: nowrap; cursor: pointer; transition: all .25s; } .vtabs button:hover { color: var(--ink); } .vtabs button[aria-selected="true"] { background: var(--ink); color: var(--porcelain); } .vpanel { position: relative; display: grid; grid-template-columns: 1fr 1fr; min-height: 480px; border: 1px solid rgba(255, 255, 255, .09); border-radius: 22px; color: #f3f7ff; background: linear-gradient(135deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .01)), #070b16; overflow: hidden; --ac: #1fb7ff; } .vpanel::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 80% at 75% 50%, color-mix(in srgb, var(--ac) 40%, transparent), transparent 70%); transition: background .6s; pointer-events: none; } .vpanel::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px) 0 0 / 100% 38px; -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000); mask-image: linear-gradient(90deg, transparent 30%, #000); } .vinfo { position: relative; z-index: 2; padding: 2.4rem; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; } .vnum { font-size: .9rem; color: #55627f; font-variant-numeric: tabular-nums; } .vinfo h3 { font-weight: 500; font-size: clamp(1.8rem, 3.4vw, 3rem); line-height: 1.05; letter-spacing: -0.045em; margin-bottom: 1rem; color: #f3f7ff; } .vinfo p { color: #b3c0da; font-size: 1.08rem; max-width: 34ch; } .vinfo .vt { transition: opacity .3s, transform .3s; } .vinfo .vt.out { opacity: 0; transform: translateY(10px); } #vcanvas { position: relative; z-index: 1; width: 100%; height: 100%; min-height: 340px; cursor: grab; } .varrows { position: absolute; z-index: 3; right: 1.2rem; bottom: 1.2rem; display: flex; gap: .5rem; } .varrows button { width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, .09); border-radius: 10px; background: rgba(10, 14, 26, .7); color: #fff; backdrop-filter: blur(8px); display: grid; place-items: center; cursor: pointer; transition: border-color .2s; } .varrows button:hover { border-color: #1fb7ff; } .varrows svg { width: 16px; height: 16px; } @media (max-width: 860px) { .vpanel { grid-template-columns: 1fr; grid-template-rows: 280px auto; } #vcanvas { order: -1; min-height: 280px; } .vinfo { padding: 1.6rem 1.6rem 4.6rem; } } /* ---------- journey: fireworks + Dylan's stats ---------- */ .jgrid { display: grid; grid-template-columns: 1fr 1.1fr; grid-template-areas: "head stage" "body stage"; gap: 1.6rem clamp(2rem, 5vw, 4rem); align-items: start; } .jgrid > * { min-width: 0; } .jhead { grid-area: head; display: flex; flex-direction: column; gap: 1.1rem; align-items: flex-start; } .jbody { grid-area: body; } .jstage { grid-area: stage; position: relative; height: clamp(460px, 78vh, 680px); align-self: stretch; overflow: hidden; border-radius: 18px; border: 1px solid var(--bd); color: var(--ink); --floor-line: rgba(159, 230, 255, .26); --pin: #1fb7ff; --pin-label: #55627f; --pin-done: #fff; --final: #d6e8ff; background: radial-gradient(70% 55% at 50% 100%, rgba(26, 127, 255, .18), transparent 70%), #060a14; } :root[data-theme="light"] .jstage { --floor-line: rgba(26, 111, 224, .28); --pin: #1a7fff; --pin-label: #8896b3; --pin-done: #0b1220; --final: #13306b; background: radial-gradient(70% 55% at 50% 100%, rgba(26, 127, 255, .14), transparent 70%), linear-gradient(180deg, #ffffff, #eef4fd); } .jlist { display: grid; gap: .7rem; } .jx { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 1.2rem; border: 1px solid var(--bd); border-radius: 14px; background: var(--glass); opacity: .4; transition: opacity .6s, border-color .6s, box-shadow .6s, background .6s; } .jx .ji { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--bd); color: var(--o2-faint); transition: all .6s; } .jx svg { width: 24px; height: 24px; } .jx h3 { font-weight: 500; font-size: 1.15rem; letter-spacing: -0.03em; margin-bottom: .15rem; } .jx p { color: var(--o2-muted); font-size: .92rem; line-height: 1.45; } .jx.lit { opacity: 1; border-color: rgba(31, 183, 255, .5); background: linear-gradient(150deg, rgba(26, 127, 255, .14), var(--glass)); box-shadow: 0 0 36px rgba(26, 127, 255, .14); } .jx.lit .ji { color: var(--ice); border-color: rgba(31, 183, 255, .55); box-shadow: 0 0 18px rgba(31, 183, 255, .4); } .floor { position: absolute; left: -10%; right: -10%; bottom: -6%; height: 46%; transform: perspective(700px) rotateX(64deg); transform-origin: 50% 100%; background: linear-gradient(var(--floor-line) 1px, transparent 1px) 0 0 / 56px 56px, linear-gradient(90deg, var(--floor-line) 1px, transparent 1px) 0 0 / 56px 56px; -webkit-mask-image: radial-gradient(closest-side at 50% 70%, #000 35%, transparent); mask-image: radial-gradient(closest-side at 50% 70%, #000 35%, transparent); } .pins { position: absolute; left: 0; right: 0; bottom: 17%; height: 0; } .pn { position: absolute; bottom: 0; width: 0; } .pn i { position: absolute; left: 0; bottom: 0; width: 2px; height: 0; transform: translateX(-1px); background: linear-gradient(var(--pin), transparent); opacity: 0; } .pn.rise i { height: var(--ph, 100px); opacity: 1; transition: height .8s cubic-bezier(.25, .7, .35, 1), opacity .2s; } .pn b { position: absolute; left: -8px; bottom: var(--ph, 100px); width: 16px; height: 16px; margin-bottom: -8px; border-radius: 50%; background: #fff; border: 2px solid var(--pin); opacity: 0; transform: scale(.2); transition: opacity .3s, transform .5s cubic-bezier(.3, 1.6, .5, 1); } .pn.done b { opacity: 1; transform: scale(1); box-shadow: 0 0 24px 6px var(--pin); } .pn em { position: absolute; top: 20px; left: 0; transform: translateX(-50%); width: 84px; text-align: center; line-height: 1.15; font-style: normal; font-size: .76rem; color: var(--pin-label); transition: color .5s; } .pn.done em { color: var(--pin-done); } #fw { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; } .jfinal { position: absolute; left: 1.2rem; top: 1.2rem; max-width: 240px; font-size: .98rem; line-height: 1.35; color: var(--final); opacity: 0; transform: translateY(8px); transition: opacity .8s, transform .8s; } .jfinal.show { opacity: 1; transform: none; } .jreplay { position: absolute; right: 1rem; top: 1rem; opacity: 0; pointer-events: none; transition: opacity .4s; } .jreplay.show { opacity: 1; pointer-events: auto; } .o2 .stats b.pop { animation: pop .45s ease; } @keyframes pop { 40% { transform: scale(1.12); color: var(--sky); } } .o2 .stats { margin-top: 3.5rem; } .o2 .stats b { font-weight: 500; letter-spacing: -0.05em; } @media (max-width: 900px) { .jgrid { grid-template-columns: 1fr; grid-template-areas: "head" "stage" "body"; } .jstage { height: 420px; } } /* ---------- about: neon words ---------- */ .agrid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; } .agrid > * { min-width: 0; } .awords span { display: block; padding-bottom: .14em; margin-bottom: -.1em; font-weight: 500; font-size: clamp(2.6rem, 7vw, 6.4rem); line-height: .98; letter-spacing: -0.055em; } .awords .neon { color: var(--neon-off); } .awords.is-in .neon { animation: neonOn 2.6s steps(1, end) .7s forwards, neonHum 7s ease-in-out 3.5s infinite; } .awords.is-in .neon.n2 { animation-delay: 1.5s, 4.3s; } @keyframes neonOn { 0% { color: var(--neon-off); text-shadow: none; } 10% { color: var(--neon-on); text-shadow: var(--neon-glow); } 14% { color: var(--neon-off); text-shadow: none; } 26% { color: var(--neon-on); text-shadow: var(--neon-glow); } 30% { color: var(--neon-off); text-shadow: none; } 36% { color: var(--neon-mid); text-shadow: 0 0 10px rgba(31, 183, 255, .5); } 40% { color: var(--neon-off); text-shadow: none; } 52% { color: var(--neon-on); text-shadow: var(--neon-glow); } 56% { color: var(--neon-mid); text-shadow: 0 0 8px #1fb7ff, 0 0 22px rgba(26, 127, 255, .7); } 60%, 100% { color: var(--neon-on); text-shadow: var(--neon-glow); } } @keyframes neonHum { 0%, 45%, 55%, 100% { opacity: 1; } 48% { opacity: .78; } 50% { opacity: 1; } 52% { opacity: .9; } } .atext { display: flex; flex-direction: column; gap: 1.1rem; align-items: flex-start; } .atext .q { font-size: clamp(1.15rem, 1.9vw, 1.5rem); line-height: 1.3; letter-spacing: -0.02em; color: var(--ink); max-width: 36ch; } @media (max-width: 860px) { .agrid { grid-template-columns: 1fr; } } /* ---------- consulting cards ---------- */ .chead { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; margin-bottom: 2.6rem; } .chead > * { min-width: 0; } .cgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } .cc { position: relative; padding: 1.8rem; border: 1px solid var(--bd); border-radius: 16px; background: linear-gradient(160deg, var(--glass), transparent), var(--cloud); overflow: hidden; min-height: 210px; transition: border-color .3s, box-shadow .3s; } .cc::before { content: ""; position: absolute; right: -40px; top: -40px; width: 200px; height: 200px; background: radial-gradient(closest-side, rgba(26, 127, 255, .28), transparent); transition: opacity .4s; opacity: .6; } .cc:hover { border-color: rgba(31, 183, 255, .5); box-shadow: 0 0 40px rgba(26, 127, 255, .12); } .cc .cic { position: relative; display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 1.6rem; border-radius: 50%; border: 1px solid rgba(31, 183, 255, .4); background: radial-gradient(circle at 35% 30%, #16315f, #08101f); box-shadow: 0 0 24px rgba(26, 127, 255, .4); color: #9fe6ff; } .cc .cic svg { width: 26px; height: 26px; } .cc h3 { position: relative; font-weight: 500; font-size: 1.3rem; letter-spacing: -0.03em; margin-bottom: .5rem; } .cc p { position: relative; color: var(--o2-muted); font-size: .98rem; max-width: 46ch; } @media (max-width: 860px) { .chead { grid-template-columns: 1fr; } } @media (max-width: 700px) { .cgrid { grid-template-columns: 1fr; } } /* ---------- playbook: outline word + our 3D book ---------- */ #playbook { overflow: hidden; background: linear-gradient(transparent, rgba(26, 127, 255, .06), transparent); } .pbword { position: absolute; left: 0; top: 50%; transform: translateY(-50%); white-space: nowrap; font-weight: 500; font-size: clamp(7rem, 26vw, 24rem); letter-spacing: -0.07em; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--stroke-word); pointer-events: none; will-change: transform; } .pbgrid { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center; } .pbgrid > * { min-width: 0; } .pbtext { display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-start; } .o2 .book-stage .book { box-shadow: -12px 0 0 #091a40, 0 40px 90px rgba(26, 127, 255, .4), inset 0 0 0 1px rgba(255, 255, 255, .12); transform: rotateY(-18deg) rotateX(4deg); cursor: pointer; } .o2 .book-stage:hover .book, .o2 .book.tap { transform: rotateY(-4deg) rotateX(1deg) translateY(-6px); } .o2 .book-stage .book .sheen { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, .14) 50%, transparent 60%); pointer-events: none; } @media (max-width: 860px) { .pbgrid { grid-template-columns: 1fr; } } /* ---------- press ---------- */ .phead { display: flex; justify-content: space-between; align-items: end; gap: 2rem; flex-wrap: wrap; margin-bottom: 2.2rem; } .pgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; } .pt { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 260px; padding: 1.4rem; border: 1px solid var(--bd); border-radius: 16px; background: var(--glass); overflow: hidden; transition: border-color .3s, transform .3s; } .pt::before { content: ""; position: absolute; inset: 0; background: radial-gradient(80% 60% at 50% 120%, rgba(26, 127, 255, .4), transparent); opacity: .5; transition: opacity .4s; } .pt:hover { border-color: rgba(31, 183, 255, .5); transform: translateY(-4px); } .pt:hover::before { opacity: 1; } .pt h3 { position: relative; font-weight: 500; font-size: 1.5rem; letter-spacing: -0.04em; } .pt .arrow { position: relative; align-self: flex-end; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--bd); border-radius: 10px; } .pt .arrow svg { width: 14px; height: 14px; } @media (max-width: 960px) { .pgrid { grid-template-columns: 1fr 1fr; } } @media (max-width: 520px) { .pgrid { grid-template-columns: 1fr; } .pt { min-height: 150px; } } /* ---------- poetry ---------- */ .o2 > #poetry { min-height: 100svh; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; } .arc { position: absolute; left: 50%; bottom: -62vw; width: 130vw; height: 130vw; transform: translateX(-50%); border-radius: 50%; border: 2px solid rgba(31, 183, 255, .65); box-shadow: 0 0 80px rgba(26, 127, 255, .55), inset 0 0 120px rgba(26, 127, 255, .35), 0 -2px 18px rgba(159, 230, 255, .7); background: radial-gradient(closest-side at 50% 0%, rgba(26, 127, 255, .18), transparent); } :root[data-theme="light"] .arc { box-shadow: 0 0 60px rgba(26, 127, 255, .25), inset 0 0 120px rgba(26, 127, 255, .15); } #poetry .in-wrap { position: relative; z-index: 2; max-width: 820px; padding-inline: var(--gutter); display: flex; flex-direction: column; align-items: center; gap: 1.4rem; } #poetry .eyebrow { align-self: center; } #poetry .poem-line { color: var(--graphite); font-size: 1.25rem; } /* ---------- connect ---------- */ .o2 > #connect { padding: clamp(3rem, 8vh, 5rem) 0 0; overflow: hidden; } .talk { position: relative; width: 100%; height: clamp(14rem, 38vw, 34rem); display: flex; justify-content: center; align-items: center; overflow: hidden; -webkit-mask-image: linear-gradient(transparent, #000 20%, #000 80%, transparent); mask-image: linear-gradient(transparent, #000 20%, #000 80%, transparent); } .ribbon { position: absolute; left: 50%; top: 50%; width: max(130%, 1500px); max-width: none; height: auto; transform: translate(-50%, -50%); animation: rib 14s ease-in-out infinite alternate; filter: blur(.35px) saturate(1.08); image-rendering: auto; } @keyframes rib { from { transform: translate(-52%, -48%) rotate(-3deg) scale(1); } to { transform: translate(-48%, -52%) rotate(3deg) scale(1.06); } } .talk h2 { position: relative; z-index: 2; font-weight: 600; font-size: clamp(5rem, 23vw, 22rem); line-height: .9; letter-spacing: -0.07em; color: #fff; mix-blend-mode: difference; white-space: nowrap; } :root[data-theme="light"] .talk h2 { mix-blend-mode: normal; color: #0b1220; text-shadow: 0 2px 30px rgba(255, 255, 255, .6); } .cbody { position: relative; z-index: 2; padding-inline: var(--gutter); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.2rem; margin-top: 1rem; } .cbody .eyebrow { align-self: center; } .cbody h3 { font-weight: 500; font-size: clamp(1.8rem, 3.6vw, 3rem); letter-spacing: -0.045em; max-width: 22ch; line-height: 1.08; } .cbody .prose { max-width: 62ch; align-items: center; } .cbody .prose p { margin-inline: auto; } @media (prefers-reduced-motion: reduce) { .hero-in > * { opacity: 1; transform: none; filter: none; animation: none; } .awords .neon { color: var(--neon-on); text-shadow: var(--neon-glow); } } @media (max-width: 640px) { .cluster-fit .dash-cols { grid-template-columns: 1fr; } }