Edited the svg icon

This commit is contained in:
leeexin committed 2026-07-30 20:55:20 +08:00
commit 026ab5c960
20 files changed
+927

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
煮糊了 OverCooked|纯静态 HTML 版本
使用方法:
1. 将本目录内全部文件保持原有结构上传到网站根目录。
2. 首页入口为 index.html。
3. 定价页入口为 pricing.html。
4. 直接双击 index.html 也可在本地浏览。
本版本不依赖 Node.js、React、数据库或构建工具。
基础版与专业版购买按钮已连接 Stripe,旗舰版按钮连接商务邮箱。
+365
View File
@@ -0,0 +1,365 @@
@font-face {
font-family: Geist;
src: url("_vinext_fonts/geist-8ac0455e797f/geist-98bbbccb.woff2") format("woff2");
font-style: normal;
font-weight: 100 900;
font-display: swap;
}
:root {
--black: #060607;
--surface: #121214;
--surface-2: #1c1c1e;
--paper: #f5f5f7;
--white: #ffffff;
--ink: #1d1d1f;
--secondary: #86868b;
--line-dark: rgba(255, 255, 255, 0.12);
--line-light: rgba(29, 29, 31, 0.12);
--orange: #ff6b3d;
--blue: #2997ff;
--green: #30d158;
--ease: cubic-bezier(.22, 1, .36, 1);
font: 100%/1.5 -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", Geist, sans-serif;
color-scheme: dark;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); }
body { margin: 0; overflow-x: hidden; background: var(--black); color: var(--white); font-family: inherit; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { border: 0; color: inherit; font: inherit; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
::selection { background: var(--orange); color: #fff; }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: page-fade-out .18s ease-in both; }
::view-transition-new(root) { animation: page-fade-in .34s var(--ease) both; }
@keyframes page-fade-out { to { opacity: 0; } }
@keyframes page-fade-in { from { opacity: 0; } }
.skip-link { position: fixed; z-index: 200; top: -5rem; left: 1rem; border-radius: .6rem; padding: .7rem 1rem; background: #fff; color: #111; transition: top .2s; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
/* Floating navigation */
.site-header { position: fixed; z-index: 80; top: .75rem; right: 0; left: 0; opacity: 1; pointer-events: none; will-change: opacity; transition: opacity .26s ease; }
.site-header.is-scroll-hidden { opacity: 0; }
.site-header.is-scroll-hidden .nav-island { pointer-events: none; }
.nav-island { --glass-x: 50%; --glass-y: 0%; position: relative; isolation: isolate; overflow: hidden; width: min(calc(100% - 2rem), 62rem); height: 3.3rem; margin: auto; padding: 0 .55rem 0 .95rem; display: flex; align-items: center; justify-content: space-between; border: 1px solid rgba(255,255,255,.23); border-radius: 999px; background: linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.025) 48%, rgba(255,255,255,.05)), rgba(18,18,20,.42); box-shadow: 0 1px 0 rgba(255,255,255,.2) inset, 0 -1px 0 rgba(0,0,0,.16) inset, 0 8px 26px rgba(0,0,0,.14), 0 24px 54px rgba(0,0,0,.13); -webkit-backdrop-filter: blur(28px) saturate(190%) contrast(1.05); backdrop-filter: blur(28px) saturate(190%) contrast(1.05); pointer-events: auto; transition: background .32s ease, border-color .32s ease, box-shadow .32s ease, backdrop-filter .32s ease; }
.nav-island::before { content: ""; position: absolute; z-index: -2; inset: 0; border-radius: inherit; background: radial-gradient(15rem 4.5rem at var(--glass-x) var(--glass-y), rgba(255,255,255,.24), transparent 70%), linear-gradient(105deg, rgba(255,255,255,.11), transparent 32%, rgba(255,255,255,.07) 58%, transparent 76%), linear-gradient(180deg, rgba(255,255,255,.08), transparent 55%); opacity: .88; pointer-events: none; }
.nav-island::after { content: ""; position: absolute; z-index: -1; inset: 0; padding: 1px; border-radius: inherit; background: linear-gradient(105deg, rgba(255,255,255,.72), rgba(100,210,255,.16) 30%, rgba(255,255,255,.12) 50%, rgba(255,107,61,.12) 72%, rgba(255,255,255,.48)); opacity: .72; pointer-events: none; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.nav-island > * { position: relative; z-index: 1; }
.site-header.is-scrolled .nav-island { border-color: rgba(255,255,255,.26); background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.035) 48%, rgba(255,255,255,.055)), rgba(18,18,20,.62); box-shadow: 0 1px 0 rgba(255,255,255,.24) inset, 0 -1px 0 rgba(0,0,0,.2) inset, 0 10px 30px rgba(0,0,0,.19), 0 28px 60px rgba(0,0,0,.17); -webkit-backdrop-filter: blur(32px) saturate(195%) contrast(1.06); backdrop-filter: blur(32px) saturate(195%) contrast(1.06); }
.wordmark { display: inline-flex; align-items: center; gap: .56rem; white-space: nowrap; font-size: .86rem; font-weight: 700; }
.wordmark b { margin-left: -.25rem; color: #8e8e93; font-size: .66rem; font-weight: 650; }
.wordmark-logo { width: 1.85rem; height: 1.85rem; flex: 0 0 auto; object-fit: contain; }
.desktop-nav { display: flex; align-items: center; gap: .18rem; padding: .18rem; border-radius: 999px; }
.desktop-nav a { min-width: 3.55rem; padding: .5rem .7rem; border-radius: 999px; color: #d2d2d7; text-align: center; font-size: .76rem; transition: color .2s, background .2s, transform .1s; }
.desktop-nav a:hover, .desktop-nav a[aria-current="page"] { background: rgba(255,255,255,.09); color: #fff; }
.desktop-nav a:active { transform: scale(.95); }
.nav-actions { display: flex; align-items: center; gap: .5rem; }
.nav-contact { min-height: 2.25rem; padding: 0 .82rem 0 .92rem; display: inline-flex; align-items: center; gap: .5rem; border-radius: 999px; background: rgba(255,255,255,.92); color: #111113; font-size: .72rem; font-weight: 650; transition: background .18s, transform .1s; }
.nav-contact span { color: #6e6e73; font-size: .78rem; transition: transform .18s var(--ease); }
.nav-contact:hover { background: #fff; }
.nav-contact:hover span { transform: translateX(.12rem); }
.nav-contact:active { transform: scale(.96); }
.menu-button { display: none; position: relative; width: 2.55rem; height: 2.55rem; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; background: rgba(255,255,255,.08); box-shadow: inset 0 1px rgba(255,255,255,.08); cursor: pointer; transition: background .2s, transform .1s; }
.menu-button:hover { background: rgba(255,255,255,.14); }
.menu-button:active { transform: scale(.94); }
.menu-button span { position: absolute; left: .76rem; right: .76rem; height: 1px; background: #fff; transition: top .28s var(--ease), transform .28s var(--ease); }
.menu-button span:first-child { top: 1.03rem; }
.menu-button span:last-child { top: 1.48rem; }
.menu-button[aria-expanded="true"] span:first-child { top: 1.26rem; transform: rotate(45deg); }
.menu-button[aria-expanded="true"] span:last-child { top: 1.26rem; transform: rotate(-45deg); }
.mobile-menu { position: absolute; top: 4.15rem; right: 1rem; width: min(20rem, calc(100vw - 2rem)); padding: .55rem; border: 1px solid rgba(255,255,255,.15); border-radius: 1rem; background: rgba(25,25,28,.88); box-shadow: 0 28px 70px rgba(0,0,0,.45), inset 0 1px rgba(255,255,255,.08); -webkit-backdrop-filter: blur(30px) saturate(180%); backdrop-filter: blur(30px) saturate(180%); pointer-events: auto; transform-origin: top right; animation: menu-in .34s var(--ease) both; }
.mobile-menu a { display: block; padding: .9rem 1rem; border-radius: .8rem; font-size: .94rem; }
.mobile-menu a:hover { background: rgba(255,255,255,.08); }
@keyframes menu-in { from { opacity: 0; transform: translateY(-.5rem) scale(.95); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }
/* Hero */
.hero { position: relative; height: calc(100svh - 5.5rem); min-height: 46rem; max-height: 60rem; overflow: hidden; background: #07090b; }
.hero-media { position: absolute; inset: 0; background-image: linear-gradient(180deg, rgba(4,5,7,.7) 0%, rgba(4,5,7,.45) 42%, rgba(4,5,7,.88) 100%), linear-gradient(90deg, rgba(3,5,7,.55), transparent 55%), url("../hero-cinema.png"); background-position: center 45%; background-size: cover; animation: hero-materialize 1.35s var(--ease) both; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 20%, transparent 0, rgba(3,4,6,.22) 48%, rgba(3,4,6,.72) 100%); }
@keyframes hero-materialize { from { opacity: .25; transform: scale(1.08); filter: blur(12px) saturate(.5); } to { opacity: 1; transform: scale(1.01); filter: none; } }
.hero-inner { position: relative; z-index: 2; width: min(calc(100% - 2rem), 74rem); height: 100%; margin: auto; padding-top: 6.4rem; display: flex; flex-direction: column; align-items: center; }
.hero-copy { position: relative; z-index: 3; max-width: 48rem; text-align: center; }
.hero-eyebrow { margin: 0 0 .65rem; display: flex; align-items: center; justify-content: center; gap: .55rem; color: #d2d2d7; font-size: .67rem; font-weight: 700; }
.hero-eyebrow span { width: .42rem; height: .42rem; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 .25rem rgba(48,209,88,.13); }
.hero h1 { margin: 0; font-size: clamp(4.8rem, 9vw, 8.2rem); font-weight: 720; line-height: .9; letter-spacing: -.07em; }
.hero-product { margin: .65rem 0 0; color: #d2d2d7; font-size: clamp(1rem, 1.6vw, 1.3rem); font-weight: 600; }
.hero-lead { max-width: 34rem; margin: .9rem auto 0; color: #b9b9be; font-size: .98rem; line-height: 1.65; }
.hero-actions { margin-top: 1.35rem; display: flex; align-items: center; justify-content: center; gap: .8rem; }
.button { min-height: 2.85rem; padding: 0 1.2rem; display: inline-flex; align-items: center; justify-content: center; gap: .72rem; border-radius: 999px; font-size: .8rem; font-weight: 700; transition: transform .12s, box-shadow .25s, background .25s; }
.button:active, .text-button:active, .console-tab:active, .feature-rail-controls button:active, .plan-button:active { transform: scale(.96); transition-duration: .08s; }
.button-primary { background: rgba(255,255,255,.94); color: #111113; box-shadow: inset 0 1px #fff, 0 10px 24px rgba(0,0,0,.2); -webkit-backdrop-filter: blur(14px) saturate(150%); backdrop-filter: blur(14px) saturate(150%); }
.button-primary:hover { background: #fff; box-shadow: inset 0 1px #fff, 0 14px 30px rgba(0,0,0,.26); transform: translateY(-1px); }
.text-button { min-height: 2.85rem; padding: 0 .4rem; display: inline-flex; align-items: center; gap: .55rem; color: #f5f5f7; font-size: .8rem; font-weight: 650; transition: opacity .2s, transform .1s; }
.text-button:hover { opacity: .72; }
.product-stage { --stage-width: min(57rem, 78vw); position: relative; width: var(--stage-width); margin-top: 2rem; perspective: 1200px; }
.product-window { --rx: 0deg; --ry: 0deg; position: relative; overflow: hidden; height: 24rem; border: 1px solid rgba(255,255,255,.2); border-radius: 1rem; background: rgba(17,18,21,.79); box-shadow: 0 42px 100px rgba(0,0,0,.58), 0 1px 0 rgba(255,255,255,.08), inset 0 1px rgba(255,255,255,.11); -webkit-backdrop-filter: blur(28px) saturate(160%); backdrop-filter: blur(28px) saturate(160%); transform: perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d; will-change: transform; animation: product-in 1.05s .28s var(--ease) both; }
@keyframes product-in { from { opacity: 0; transform: perspective(1200px) translateY(2.4rem) rotateX(4deg) scale(.94); filter: blur(10px); } to { opacity: 1; transform: perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry)); filter: none; } }
.window-bar { height: 2.8rem; padding: 0 .9rem; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.035); }
.traffic-lights { display: flex; gap: .32rem; }
.traffic-lights i { width: .48rem; height: .48rem; border-radius: 50%; background: #ff5f57; }
.traffic-lights i:nth-child(2) { background: #febc2e; }
.traffic-lights i:nth-child(3) { background: #28c840; }
.window-title { display: flex; align-items: center; gap: .4rem; color: #a1a1a6; font-size: .62rem; font-weight: 650; }
.window-mark { width: .55rem; height: .55rem; border-radius: .18rem .18rem .3rem .3rem; background: var(--orange); box-shadow: 0 0 1rem rgba(255,107,61,.55); }
.window-status { justify-self: end; display: flex; align-items: center; gap: .4rem; color: #9bd8ae; font-size: .58rem; }
.window-status span { width: .36rem; height: .36rem; border-radius: 50%; background: var(--green); }
.window-layout { height: calc(100% - 2.8rem); display: grid; grid-template-columns: 4rem 1fr; }
.window-sidebar { padding: .8rem .42rem; display: flex; flex-direction: column; align-items: center; gap: .35rem; border-right: 1px solid rgba(255,255,255,.07); }
.console-tab { width: 3.05rem; min-height: 3rem; padding: .35rem 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .16rem; border-radius: .72rem; background: transparent; color: #6e6e73; cursor: pointer; transition: color .2s, background .2s, transform .1s; }
.console-tab i { font-style: normal; font-size: .82rem; line-height: 1; }
.console-tab span { font-size: .54rem; }
.console-tab:hover { color: #fff; background: rgba(255,255,255,.055); }
.console-tab.is-active { color: #fff; background: rgba(255,255,255,.11); box-shadow: 0 4px 12px rgba(0,0,0,.16), inset 0 1px rgba(255,255,255,.08); }
.window-main { min-width: 0; padding: 1.05rem 1.2rem; }
.console-view { height: 100%; animation: view-in .34s var(--ease) both; }
@keyframes view-in { from { opacity: 0; transform: translateY(.5rem); filter: blur(5px); } to { opacity: 1; transform: none; filter: none; } }
.console-heading { display: flex; align-items: center; justify-content: space-between; }
.console-heading small { display: block; color: #6e6e73; font-size: .56rem; }
.console-heading h2 { margin: .08rem 0 0; font-size: 1rem; letter-spacing: -.025em; }
.view-chip { padding: .3rem .5rem; border: 1px solid rgba(255,255,255,.08); border-radius: 999px; background: rgba(255,255,255,.05); color: #8e8e93; font-size: .53rem; }
.metric-row { margin-top: .75rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.metric-row article { min-width: 0; padding: .7rem .78rem; border: 1px solid rgba(255,255,255,.065); border-radius: .6rem; background: rgba(255,255,255,.048); }
.metric-row small { display: block; color: #77777d; font-size: .54rem; }
.metric-row strong { display: block; margin: .2rem 0 .12rem; font-size: 1.15rem; letter-spacing: -.03em; }
.metric-row span { color: #77777d; font-size: .49rem; }
.metric-row .trend { color: #73d995; }
.chart-panel { height: 9.25rem; margin-top: .5rem; padding: .7rem .78rem; border: 1px solid rgba(255,255,255,.065); border-radius: .6rem; background: rgba(255,255,255,.032); }
.panel-title { display: flex; justify-content: space-between; font-size: .56rem; }
.panel-title small { color: #65656a; }
.bar-chart { height: 6.8rem; padding: .6rem .15rem 0; display: flex; align-items: flex-end; gap: .38rem; background: repeating-linear-gradient(to top, transparent 0, transparent 1.55rem, rgba(255,255,255,.042) 1.58rem, rgba(255,255,255,.042) 1.62rem); }
.bar-chart i { flex: 1; height: var(--h); min-width: .24rem; border-radius: .18rem .18rem .04rem .04rem; background: var(--orange); opacity: .88; }
.media-list { margin-top: .8rem; display: grid; gap: .45rem; }
.media-list article { padding: .55rem; display: grid; grid-template-columns: 3.2rem 1fr auto; align-items: center; gap: .7rem; border: 1px solid rgba(255,255,255,.07); border-radius: .55rem; background: rgba(255,255,255,.042); }
.poster { height: 2.75rem; border-radius: .35rem; }
.poster-one { background: linear-gradient(140deg, #2c5269, #d49b6e); }
.poster-two { background: linear-gradient(140deg, #785b4d, #1f2d34); }
.poster-three { background: linear-gradient(140deg, #1b2741, #b84d42); }
.media-list b { display: block; font-size: .66rem; }
.media-list small { display: block; margin-top: .16rem; color: #77777d; font-size: .52rem; }
.media-list em { color: #a1a1a6; font-size: .52rem; font-style: normal; }
.node-map { position: relative; height: 13.5rem; margin-top: .75rem; overflow: hidden; border: 1px solid rgba(255,255,255,.07); border-radius: .6rem; background: rgba(255,255,255,.035); }
.map-grid, .network-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 2rem 2rem; -webkit-mask-image: radial-gradient(circle, #000, transparent 72%); mask-image: radial-gradient(circle, #000, transparent 72%); }
.node { position: absolute; display: flex; align-items: center; gap: .32rem; color: #a1a1a6; font-size: .52rem; }
.node i { width: .4rem; height: .4rem; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 .28rem rgba(48,209,88,.12), 0 0 1rem rgba(48,209,88,.4); }
.node-a { left: 26%; top: 34%; }.node-b { left: 48%; top: 65%; }.node-c { right: 18%; top: 28%; }.node-d { left: 12%; bottom: 15%; }
.node-summary { margin-top: .45rem; display: flex; justify-content: space-between; color: #77777d; font-size: .52rem; }
.node-summary span { display: flex; align-items: center; gap: .3rem; }
.node-summary i { width: .3rem; height: .3rem; border-radius: 50%; background: var(--green); }
.node-summary b { color: #b9b9be; }
.live-activity { position: absolute; z-index: 4; right: -1rem; bottom: 1rem; min-width: 8.6rem; padding: .58rem .76rem; display: flex; align-items: center; gap: .62rem; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(30,30,33,.66); box-shadow: 0 16px 40px rgba(0,0,0,.4), inset 1px 1px rgba(255,255,255,.13), inset -1px -1px rgba(255,255,255,.04); -webkit-backdrop-filter: blur(24px) saturate(185%); backdrop-filter: blur(24px) saturate(185%); animation: live-in .55s 1.15s var(--ease) both; }
.live-activity > span:last-child { display: flex; align-items: baseline; gap: .4rem; }
.live-activity small { color: #a1a1a6; font-size: .52rem; }
.live-activity strong { font-size: .73rem; }
.live-activity-icon { height: .9rem; display: flex; align-items: flex-end; gap: .1rem; }
.live-activity-icon i { width: .13rem; border-radius: 1rem; background: var(--orange); }
.live-activity-icon i:nth-child(1) { height: .4rem; }.live-activity-icon i:nth-child(2) { height: .8rem; }.live-activity-icon i:nth-child(3) { height: .56rem; }
@keyframes live-in { from { opacity: 0; transform: translateX(1rem) scale(.9); filter: blur(7px); } to { opacity: 1; transform: none; filter: none; } }
.signal-strip { width: min(calc(100% - 2rem), 70rem); min-height: 5.5rem; margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: 4rem; color: #d2d2d7; }
.signal-strip div { display: flex; align-items: baseline; gap: .7rem; }
.signal-strip span { color: #6e6e73; font-size: .65rem; }
.signal-strip strong { font-size: .9rem; }
.signal-strip > i { width: 1px; height: 1.5rem; background: rgba(255,255,255,.13); }
/* Content bands */
.section-kicker { margin: 0 0 1rem; color: var(--orange); font-size: .68rem; font-weight: 750; text-transform: uppercase; }
.platform { padding: 9rem max(1.25rem, calc((100vw - 70rem) / 2)); background: var(--paper); color: var(--ink); }
.platform-intro { max-width: 62rem; }
.platform-intro h2, .capabilities-head h2, .delivery-head h2, .closing h2, .plans-heading h2, .comparison-head h2, .pricing-cta h2 { margin: 0; font-size: clamp(3rem, 6vw, 5.8rem); font-weight: 680; line-height: 1; letter-spacing: -.055em; }
.platform-intro h2 span { color: #86868b; }
.platform-intro > p:last-child { max-width: 38rem; margin: 2rem 0 0 auto; color: #6e6e73; font-size: 1.02rem; line-height: 1.8; }
.principle-grid { margin-top: 6rem; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.principle-grid article { min-height: 13rem; padding: 2rem 2rem 2rem 0; }
.principle-grid article + article { padding-left: 2rem; border-left: 1px solid var(--line-light); }
.principle-grid span { color: #a1a1a6; font-size: .66rem; }
.principle-grid h3 { margin: 2.2rem 0 .55rem; font-size: 1.55rem; letter-spacing: -.03em; }
.principle-grid p { max-width: 17rem; margin: 0; color: #6e6e73; font-size: .82rem; line-height: 1.65; }
.capabilities { padding: 9rem max(1.25rem, calc((100vw - 70rem) / 2)); background: #080809; }
.capabilities-head { display: grid; grid-template-columns: 1fr 19rem; align-items: end; gap: 4rem; }
.capabilities-side { display: grid; gap: 1.25rem; }
.capabilities-side > p { margin: 0; color: #86868b; font-size: .88rem; line-height: 1.75; }
.feature-rail-controls { display: flex; gap: .45rem; }
.feature-rail-controls button { width: 2.45rem; height: 2.45rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; background: rgba(255,255,255,.07); box-shadow: inset 0 1px rgba(255,255,255,.06); color: #fff; cursor: pointer; transition: background .2s, opacity .2s, transform .1s; }
.feature-rail-controls button:hover { background: rgba(255,255,255,.13); }
.feature-rail-controls button:disabled { opacity: .28; cursor: default; }
.feature-rail { margin-top: 5rem; padding-bottom: .7rem; display: grid; grid-auto-flow: column; grid-auto-columns: min(35rem, calc(92vw - 2rem)); gap: 1rem; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: none; scrollbar-width: none; cursor: grab; }
.feature-rail:active { cursor: grabbing; }
.feature-rail::-webkit-scrollbar { display: none; }
.feature-card { height: 18.5rem; min-height: 0; padding: 1.35rem; display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: 1.25rem; border: 1px solid rgba(255,255,255,.11); border-radius: 1rem; background: #121214; box-shadow: inset 0 1px rgba(255,255,255,.06), 0 30px 70px rgba(0,0,0,.26); }
.feature-card:nth-child(4n + 1) { border-top-color: rgba(255,107,61,.42); }
.feature-card:nth-child(4n + 2) { border-top-color: rgba(41,151,255,.42); }
.feature-card:nth-child(4n + 3) { border-top-color: rgba(100,210,255,.38); }
.feature-card:nth-child(4n + 4) { border-top-color: rgba(48,209,88,.38); }
.feature-copy p { margin: 0 0 .85rem; color: var(--orange); font-size: .66rem; font-weight: 750; }
.feature-copy p b { margin-right: .42rem; color: #5f5f64; font-weight: 650; }
.feature-copy { min-width: 0; }
.feature-copy h3 { margin: 0; font-size: clamp(1.55rem, 2.1vw, 2.05rem); font-weight: 650; line-height: 1.08; letter-spacing: 0; }
.feature-copy span { display: block; max-width: 24rem; margin-top: 1rem; color: #86868b; font-size: .74rem; line-height: 1.6; }
.portal-preview { min-width: 0; height: 15.75rem; padding: .75rem .75rem 0; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: .8rem; background: #09090a; box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.portal-bar { height: 1.6rem; display: flex; align-items: center; justify-content: space-between; }.portal-bar i { width: .55rem; height: .55rem; border-radius: 50%; background: #fff; }.portal-bar span { width: 3.5rem; height: .2rem; border-radius: 1rem; background: #343437; }
.portal-hero { height: 7rem; padding: .9rem; display: flex; flex-direction: column; justify-content: flex-end; border-radius: .55rem; background: linear-gradient(90deg, rgba(0,0,0,.85), rgba(0,0,0,.1)), url("../hero-cinema.png") center / cover; }
.portal-hero small { color: #b9b9be; font-size: .55rem; }.portal-hero b { margin-top: .15rem; font-size: 1.25rem; }.portal-hero em { margin-top: .35rem; color: #d2d2d7; font-size: .6rem; font-style: normal; }
.portal-posters { margin-top: .55rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: .4rem; }.portal-posters i { height: 5.5rem; border-radius: .4rem; background: linear-gradient(145deg, #28364d, #7f9bb0); }.portal-posters i:nth-child(2) { background: linear-gradient(145deg, #3d3f2b, #98a368); }.portal-posters i:nth-child(3) { background: linear-gradient(145deg, #4b3037, #b66f68); }.portal-posters i:nth-child(4) { background: linear-gradient(145deg, #273e3a, #71a597); }
.operations-preview { position: relative; min-width: 0; height: 15.75rem; padding: .8rem; border: 1px solid rgba(255,255,255,.1); border-radius: .8rem; background: #0b0b0c; }
.op-chart { height: 14rem; padding: 1rem; border-radius: .65rem; background: #18181a; }.op-chart > span { color: #86868b; font-size: .62rem; }.op-chart > strong { display: block; margin-top: .25rem; font-size: 1.5rem; }.op-chart > div { height: 7rem; margin-top: .8rem; display: flex; align-items: flex-end; gap: .45rem; }.op-chart i { flex: 1; height: var(--h); border-radius: .25rem .25rem .08rem .08rem; background: var(--blue); opacity: .86; }
.op-event { position: absolute; right: 1.8rem; bottom: 1.4rem; left: 3.5rem; padding: .85rem; display: grid; grid-template-columns: .55rem 1fr auto; align-items: center; gap: .65rem; border: 1px solid rgba(255,255,255,.14); border-radius: .65rem; background: rgba(37,37,40,.8); box-shadow: 0 16px 40px rgba(0,0,0,.35); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }.op-event > i { width: .5rem; height: .5rem; border-radius: 50%; background: var(--green); }.op-event b { display: block; font-size: .68rem; }.op-event small { display: block; margin-top: .1rem; color: #86868b; font-size: .52rem; }.op-event em { color: #a9dfba; font-size: .62rem; font-style: normal; }
.pipeline-preview { min-width: 0; min-height: 15.75rem; display: flex; flex-direction: column; justify-content: center; gap: .35rem; }
.pipeline-step { min-height: 3.7rem; padding: 0 .8rem; display: flex; align-items: center; gap: .7rem; border: 1px solid rgba(255,255,255,.09); border-radius: .7rem; background: #19191b; }.pipeline-step > i { flex: 0 0 auto; width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border: 1px solid #4b4b50; border-radius: 50%; color: #a1a1a6; font-size: .6rem; font-style: normal; }.pipeline-step b { display: block; font-size: .7rem; }.pipeline-step small { display: block; margin-top: .1rem; color: #77777d; font-size: .52rem; }.pipeline-step.is-done > i { border-color: rgba(48,209,88,.32); background: rgba(48,209,88,.12); color: #83d99c; }.pipeline-step.is-active { border-color: rgba(41,151,255,.3); background: rgba(41,151,255,.07); }.pipeline-step.is-active > i { border: .26rem solid rgba(41,151,255,.2); background: var(--blue); box-shadow: 0 0 1.3rem rgba(41,151,255,.4); }.pipeline-preview > em { width: 1px; height: .65rem; margin-left: 1.58rem; background: #343437; }
.network-preview { position: relative; min-width: 0; height: 15.75rem; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: .8rem; background: #0b0b0c; }.network-card { position: absolute; top: 50%; left: 50%; width: 9rem; padding: 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: .75rem; background: rgba(29,29,32,.8); box-shadow: 0 22px 50px rgba(0,0,0,.4); transform: translate(-50%,-50%); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }.network-card span { color: #86868b; font-size: .58rem; }.network-card strong { display: block; margin-top: .25rem; font-size: 1.55rem; }.network-card small { display: block; margin-top: .25rem; color: #81d89a; font-size: .54rem; }.pulse { position: absolute; width: .55rem; height: .55rem; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 .45rem rgba(48,209,88,.1), 0 0 1.5rem rgba(48,209,88,.42); }.p1 { left: 18%; top: 30%; }.p2 { right: 16%; top: 24%; }.p3 { left: 26%; bottom: 20%; }.p4 { right: 24%; bottom: 24%; }
.delivery { padding: 9rem max(1.25rem, calc((100vw - 70rem) / 2)); background: var(--paper); color: var(--ink); }
.delivery-head { max-width: 58rem; }
.delivery-steps { margin: 5rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line-light); }
.delivery-steps li { min-height: 7.5rem; display: grid; grid-template-columns: 4rem 1fr 2rem; align-items: center; border-bottom: 1px solid var(--line-light); transition: padding .3s var(--ease), background .3s; }
.delivery-steps li:hover { padding: 0 1rem; background: rgba(255,255,255,.7); }
.delivery-steps > li > span { color: #a1a1a6; font-size: .65rem; }
.delivery-steps h3 { margin: 0; font-size: 1.15rem; letter-spacing: -.025em; }
.delivery-steps p { margin: .25rem 0 0; color: #6e6e73; font-size: .78rem; }
.delivery-steps i { color: #8e8e93; font-style: normal; text-align: right; }
.closing { position: relative; min-height: 44rem; padding: 7rem max(1.25rem, calc((100vw - 70rem) / 2)); display: flex; align-items: center; overflow: hidden; }
.closing-media { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,5,6,.96), rgba(4,5,6,.72) 48%, rgba(4,5,6,.24)), linear-gradient(0deg, #060607, transparent 52%), url("../hero-cinema.png") center 68% / cover; }
.closing-copy { position: relative; z-index: 1; max-width: 48rem; }
.closing-copy > p:nth-of-type(2) { max-width: 34rem; margin: 1.5rem 0 0; color: #b9b9be; font-size: .92rem; line-height: 1.75; }
.closing .hero-actions { justify-content: flex-start; }
.site-footer { padding: 3rem max(1.25rem, calc((100vw - 70rem) / 2)); background: #060607; }
.footer-main { padding-bottom: 3rem; display: flex; align-items: center; justify-content: space-between; }
.footer-main p { margin: 0; color: #77777d; font-size: .74rem; }
.footer-meta { padding-top: 1.35rem; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.1); color: #5f5f64; font-size: .66rem; }
.footer-meta div { display: flex; gap: 1.4rem; }.footer-meta a { color: #a1a1a6; }
/* Pricing */
.pricing-page { background: var(--paper); color: var(--ink); }
.pricing-page .site-header { color: #fff; }
.pricing-hero { min-height: 43rem; padding: 9rem max(1.25rem, calc((100vw - 70rem) / 2)) 5rem; display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; gap: 2rem; overflow: hidden; background: #070708; color: #fff; }
.pricing-hero-copy h1 { margin: 0; font-size: clamp(3.8rem, 6vw, 5.3rem); font-weight: 680; line-height: .95; letter-spacing: -.06em; white-space: nowrap; }
.pricing-hero-copy h1 span { color: #86868b; }
.pricing-hero-copy > p:last-child { max-width: 38rem; margin: 1.6rem 0 0; color: #a1a1a6; font-size: .92rem; line-height: 1.75; }
.pricing-orbit { position: relative; height: 28rem; }
.orbit-core { position: absolute; z-index: 3; top: 50%; left: 50%; width: 6.4rem; height: 6.4rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 1.7rem; background: rgba(35,35,38,.72); box-shadow: 0 28px 70px rgba(0,0,0,.45), inset 0 1px rgba(255,255,255,.1); transform: translate(-50%,-50%); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); }.orbit-core i { position: absolute; top: 1rem; width: .48rem; height: .48rem; border-radius: 50%; background: var(--green); box-shadow: 0 0 1rem rgba(48,209,88,.45); }.orbit-core b { font-size: 1.25rem; }
.orbit-ring { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; transform: translate(-50%,-50%); }.ring-one { width: 17rem; height: 17rem; }.ring-two { width: 25rem; height: 25rem; }
.orbit-node { position: absolute; z-index: 2; min-width: 4.2rem; padding: .65rem .8rem; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; background: rgba(31,31,34,.62); box-shadow: inset 0 1px rgba(255,255,255,.07), 0 12px 28px rgba(0,0,0,.2); color: #d2d2d7; text-align: center; font-size: .62rem; -webkit-backdrop-filter: blur(18px) saturate(165%); backdrop-filter: blur(18px) saturate(165%); }.node-one { top: 17%; left: 15%; }.node-two { top: 25%; right: 8%; }.node-three { right: 18%; bottom: 14%; }
.plans { padding: 5rem max(1.25rem, calc((100vw - 70rem) / 2)) 8rem; background: var(--paper); }
.plans-heading { display: grid; grid-template-columns: 1fr 19rem; align-items: end; gap: 4rem; }
.plans-heading > p { margin: 0; color: #6e6e73; font-size: .85rem; line-height: 1.72; }
.plan-grid { margin-top: 4.5rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; align-items: stretch; }
.plan { position: relative; padding: 2rem; display: flex; flex-direction: column; border: 1px solid rgba(29,29,31,.09); border-radius: .9rem; background: #fff; box-shadow: 0 14px 38px rgba(0,0,0,.045); }
.plan-featured { background: #121214; color: #fff; border-color: #121214; box-shadow: 0 28px 70px rgba(0,0,0,.18); transform: translateY(-.65rem); }
.plan-recommend { position: absolute; top: 1rem; right: 1rem; padding: .32rem .5rem; border-radius: 999px; background: rgba(255,107,61,.14); color: #ff9c7a; font-size: .55rem; font-weight: 750; }
.plan-top { display: flex; align-items: center; justify-content: space-between; }
.plan-label { margin: 0; color: var(--orange); font-size: .61rem; font-weight: 750; text-transform: uppercase; }
.plan-top > span { color: #a1a1a6; font-size: .58rem; }
.plan h3 { margin: 1.3rem 0 0; font-size: 1.45rem; letter-spacing: -.035em; }
.plan-desc { min-height: 3.4rem; margin: .55rem 0 0; color: #6e6e73; font-size: .76rem; line-height: 1.6; }
.plan-featured .plan-desc { color: #8e8e93; }
.plan-price { margin: 1.6rem 0 1.4rem; display: flex; align-items: baseline; gap: .55rem; }
.plan-price strong { font-size: 2.55rem; letter-spacing: -.055em; }
.plan-price span { color: #8e8e93; font-size: .62rem; }
.plan-button { min-height: 2.85rem; padding: 0 1rem; display: flex; align-items: center; justify-content: space-between; border-radius: 999px; background: #1d1d1f; color: #fff; font-size: .75rem; font-weight: 700; transition: background .2s, transform .1s; }
.plan-button:hover { background: #303034; }
.plan-featured .plan-button { background: #f5f5f7; color: #111; }.plan-featured .plan-button:hover { background: #fff; }
.plan ul { margin: 1.7rem 0 0; padding: 1.5rem 0 0; display: grid; gap: .7rem; border-top: 1px solid rgba(29,29,31,.1); list-style: none; }
.plan-featured ul { border-color: rgba(255,255,255,.1); }
.plan li { display: flex; gap: .55rem; color: #4f4f54; font-size: .7rem; }
.plan-featured li { color: #c7c7cc; }
.plan li span { color: var(--orange); }
.payment-note { width: max-content; max-width: 100%; margin: 2rem auto 0; padding: .62rem .85rem; display: flex; justify-content: center; align-items: center; gap: .5rem; border: 1px solid rgba(29,29,31,.08); border-radius: 999px; background: rgba(255,255,255,.62); box-shadow: 0 8px 24px rgba(0,0,0,.045), inset 0 1px rgba(255,255,255,.85); color: #6e6e73; font-size: .68rem; -webkit-backdrop-filter: blur(18px) saturate(145%); backdrop-filter: blur(18px) saturate(145%); }.payment-note i { flex: 0 0 auto; width: .38rem; height: .38rem; border-radius: 50%; background: var(--green); }
.comparison { padding: 8rem max(1.25rem, calc((100vw - 70rem) / 2)); background: #fff; }
.comparison-head { max-width: 50rem; }.comparison-head > p:last-child { max-width: 35rem; margin: 1.3rem 0 0; color: #6e6e73; font-size: .86rem; line-height: 1.7; }
.comparison-list { margin-top: 4rem; border-top: 1px solid var(--line-light); }
.comparison-row { min-height: 4.4rem; display: grid; grid-template-columns: 1.45fr repeat(3, 1fr); align-items: center; border-bottom: 1px solid var(--line-light); }
.comparison-row > * { padding: 0 1rem; font-size: .72rem; }
.comparison-row > *:first-child { padding-left: 0; }
.comparison-header { min-height: 3.4rem; color: #86868b; }.comparison-header span { font-size: .62rem; font-weight: 650; }
.comparison-row b { font-weight: 650; }.comparison-row span { color: #55555a; }.comparison-row .positive { color: #16894e; font-weight: 650; }.comparison-row .muted { color: #b1b1b6; }
.pricing-cta { position: relative; min-height: 41rem; padding: 7rem max(1.25rem, calc((100vw - 70rem) / 2)); display: flex; align-items: center; overflow: hidden; color: #fff; }
.pricing-cta-media { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,5,6,.96), rgba(4,5,6,.72) 50%, rgba(4,5,6,.28)), linear-gradient(0deg, #060607, transparent 55%), url("../hero-cinema.png") center 62% / cover; }
.pricing-cta-copy { position: relative; z-index: 1; max-width: 48rem; }.pricing-cta-copy > p:nth-of-type(2) { max-width: 36rem; margin: 1.4rem 0 2rem; color: #b9b9be; font-size: .88rem; line-height: 1.75; }
.reveal { opacity: 0; transform: translateY(1.6rem); transition: opacity .72s var(--ease), transform .72s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
@media (max-width: 960px) {
.desktop-nav { display: none; }
.nav-contact { display: none; }
.menu-button { display: block; }
.hero { min-height: 48rem; }
.hero-inner { padding-top: 6.2rem; }
.product-stage { --stage-width: min(44rem, 92vw); }
.product-window { height: 23rem; }
.platform, .capabilities, .delivery, .plans, .comparison { padding-top: 7rem; padding-bottom: 7rem; }
.capabilities-head, .plans-heading { grid-template-columns: 1fr; gap: 1.2rem; }
.capabilities-side > p, .plans-heading > p { max-width: 30rem; }
.feature-card { gap: 1.1rem; }
.feature-copy span { max-width: 34rem; }
.plan-grid { grid-template-columns: 1fr; max-width: 40rem; margin-right: auto; margin-left: auto; }
.plan-featured { transform: none; }
.plan-desc { min-height: auto; }
.pricing-hero { grid-template-columns: 1fr; gap: 2rem; padding-top: 8rem; }
.pricing-orbit { height: 22rem; }
}
@media (max-width: 640px) {
.site-header { top: .5rem; }
.nav-island { width: calc(100% - 1rem); height: 3.45rem; padding-left: .8rem; border-radius: 999px; }
.wordmark b { display: none; }
.mobile-menu { top: 3.85rem; right: .5rem; left: .5rem; width: auto; }
.hero { height: calc(100svh - 5rem); min-height: 45rem; max-height: 54rem; }
.hero-inner { width: calc(100% - 1rem); padding-top: 5.5rem; }
.hero h1 { font-size: 4.45rem; }
.hero-product { font-size: .92rem; }
.hero-lead { max-width: 22rem; font-size: .86rem; }
.hero-actions { width: min(100%, 22rem); margin-top: 1rem; }
.button { flex: 1; }
.product-stage { --stage-width: calc(100vw - 1.2rem); margin-top: 1.55rem; }
.product-window { height: 18.8rem; border-radius: .8rem; transform: none; }
.window-bar { height: 2.5rem; }.window-status { display: none; }.window-title { grid-column: 2; }
.window-layout { height: calc(100% - 2.5rem); grid-template-columns: 3.25rem 1fr; }
.window-sidebar { padding: .55rem .28rem; }.console-tab { width: 2.55rem; min-height: 2.55rem; }.console-tab span { display: none; }
.window-main { padding: .8rem; }.console-heading h2 { font-size: .87rem; }.view-chip { display: none; }
.metric-row { gap: .3rem; }.metric-row article { padding: .55rem; }.metric-row strong { font-size: .9rem; }.metric-row span { display: none; }
.chart-panel { height: 7.7rem; }.bar-chart { height: 5.6rem; gap: .2rem; }
.media-list article { grid-template-columns: 2.6rem 1fr auto; }.poster { height: 2.25rem; }.media-list article { padding: .42rem; }
.node-map { height: 10.8rem; }
.live-activity { display: none; }
.signal-strip { min-height: 4.4rem; gap: 1rem; }.signal-strip div { gap: .32rem; }.signal-strip span { font-size: .55rem; }.signal-strip strong { font-size: .7rem; }.signal-strip > i { height: 1rem; }
.platform, .capabilities, .delivery, .plans, .comparison { padding: 5.5rem 1rem; }
.platform-intro h2, .capabilities-head h2, .delivery-head h2, .closing h2, .plans-heading h2, .comparison-head h2, .pricing-cta h2 { font-size: 2.75rem; }
.platform-intro > p:last-child { margin: 1.4rem 0 0; font-size: .9rem; }
.principle-grid { margin-top: 3.5rem; grid-template-columns: 1fr; }.principle-grid article { min-height: auto; padding: 1.5rem 0; }.principle-grid article + article { padding-left: 0; border-top: 1px solid var(--line-light); border-left: 0; }.principle-grid h3 { margin: .9rem 0 .35rem; }
.feature-rail { margin-top: 3.5rem; grid-auto-columns: calc(94vw - 1rem); gap: .75rem; }.feature-rail-controls { display: none; }.feature-card { height: 15.5rem; min-height: 0; padding: .9rem; grid-template-columns: .94fr 1.06fr; gap: .7rem; }.feature-copy p { margin-bottom: .55rem; font-size: .58rem; }.feature-copy h3 { font-size: 1.12rem; line-height: 1.12; }.feature-copy span { margin-top: .72rem; font-size: .63rem; line-height: 1.5; }.portal-preview, .operations-preview, .network-preview { height: 13.7rem; border-radius: .65rem; }.portal-preview { padding: .55rem .55rem 0; }.portal-bar { height: 1.15rem; }.portal-bar i { width: .4rem; height: .4rem; }.portal-bar span { width: 2.3rem; }.portal-hero { height: 6.2rem; padding: .65rem; }.portal-hero small { font-size: .44rem; }.portal-hero b { font-size: .88rem; }.portal-hero em { font-size: .48rem; }.portal-posters { gap: .25rem; margin-top: .4rem; }.portal-posters i { height: 4.6rem; }.operations-preview { padding: .55rem; }.op-chart { height: 12.5rem; padding: .7rem; }.op-chart > span { font-size: .5rem; }.op-chart > strong { font-size: 1rem; }.op-chart > div { height: 7rem; margin-top: .65rem; gap: .25rem; }.op-event { right: .8rem; bottom: .8rem; left: 1.2rem; padding: .55rem; grid-template-columns: .4rem 1fr; gap: .4rem; }.op-event > i { width: .4rem; height: .4rem; }.op-event b { font-size: .55rem; }.op-event small { font-size: .45rem; }.op-event em { display: none; }.pipeline-preview { min-height: 13.7rem; gap: .28rem; }.pipeline-step { min-height: 3.25rem; padding: 0 .55rem; gap: .5rem; }.pipeline-step > i { width: 1.35rem; height: 1.35rem; font-size: .5rem; }.pipeline-step b { font-size: .58rem; }.pipeline-step small { font-size: .44rem; }.pipeline-preview > em { height: .45rem; margin-left: 1.2rem; }.network-card { width: 7rem; padding: .72rem; }.network-card strong { font-size: 1.2rem; }.network-card span, .network-card small { font-size: .45rem; }.pulse { width: .42rem; height: .42rem; box-shadow: 0 0 0 .3rem rgba(48,209,88,.1), 0 0 1rem rgba(48,209,88,.42); }
.delivery-steps { margin-top: 3.5rem; }.delivery-steps li { min-height: 6.4rem; grid-template-columns: 2.7rem 1fr 1.5rem; }.delivery-steps li:hover { padding: 0 .5rem; }.delivery-steps p { padding-right: .5rem; }
.closing, .pricing-cta { min-height: 39rem; padding: 5rem 1rem; }.closing-copy > p:nth-of-type(2), .pricing-cta-copy > p:nth-of-type(2) { font-size: .84rem; }.closing .hero-actions { align-items: flex-start; flex-direction: column; }.closing .button { flex: none; width: 100%; }
.footer-main, .footer-meta { align-items: flex-start; flex-direction: column; gap: 1rem; }.footer-meta div { width: 100%; justify-content: space-between; }
.pricing-hero { min-height: 45rem; padding: 7.5rem 1rem 4rem; display: block; }.pricing-hero-copy h1 { font-size: 2.55rem; }.pricing-hero-copy > p:last-child { font-size: .84rem; }.pricing-orbit { height: 18rem; margin-top: 1.5rem; }.ring-one { width: 13rem; height: 13rem; }.ring-two { width: 18rem; height: 18rem; }.orbit-core { width: 5rem; height: 5rem; border-radius: 1.35rem; }.node-one { top: 15%; left: 6%; }.node-two { top: 21%; right: 2%; }.node-three { right: 10%; bottom: 8%; }
.plans-heading > p { font-size: .8rem; }.plan-grid { margin-top: 3.5rem; }.plan { padding: 1.5rem; }.payment-note { width: 100%; align-items: flex-start; border-radius: 1rem; text-align: left; line-height: 1.5; }
.comparison-list { overflow-x: auto; }.comparison-row { min-width: 40rem; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
.reveal { opacity: 1; transform: none; }
.hero-media, .product-window { transform: none; }
.site-header.is-scroll-hidden { opacity: 1; }
::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}
@media (prefers-reduced-transparency: reduce) {
.nav-island, .mobile-menu, .product-window, .live-activity, .orbit-core, .orbit-node, .op-event, .network-card { background: #171719; -webkit-backdrop-filter: none; backdrop-filter: none; }
.button-primary, .payment-note { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
.nav-island::before, .nav-island::after { display: none; }
}
@media (prefers-contrast: more) {
.nav-island, .mobile-menu, .product-window, .feature-card { border-color: #fff; background: #050506; }
.payment-note { border-color: #1d1d1f; background: #fff; }
}
+2
View File
@@ -0,0 +1,2 @@
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--ink:#f7f6f2;--muted:#aaa9a6;--night:#060708;--paper:#f1efe9;--ember:#df9a5e;--cyan:#7cbbc5;--line:#ffffff24}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--night)}body{background:var(--night);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:SF Pro Display,SF Pro Text,PingFang SC,Microsoft YaHei,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--ember);color:#111}.nav-shell{z-index:50;-webkit-backdrop-filter:saturate(150%)blur(20px);backdrop-filter:saturate(150%)blur(20px);background:#0507099e;border-bottom:1px solid #ffffff14;position:fixed;inset:0 0 auto}.nav{justify-content:space-between;align-items:center;max-width:1280px;height:64px;margin:auto;padding:0 28px;display:flex}.brand{leLine truncated
+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1536" height="1536" viewBox="0 0 1536 1536">
<title>Overcooked Media logo</title>
<path d="M 696 210 L 694 212 L 685 212 L 684 213 L 664 215 L 663 216 L 659 216 L 656 218 L 635 221 L 632 223 L 615 226 L 612 228 L 601 230 L 592 234 L 586 235 L 571 241 L 568 241 L 561 245 L 549 248 L 543 252 L 540 252 L 534 256 L 531 256 L 518 263 L 513 264 L 511 266 L 476 284 L 468 290 L 458 295 L 452 300 L 447 302 L 436 311 L 431 313 L 414 327 L 412 327 L 385 351 L 382 352 L 372 363 L 369 364 L 350 383 L 349 386 L 339 395 L 339 397 L 319 419 L 292 456 L 286 467 L 281 473 L 277 482 L 274 485 L 272 491 L 268 496 L 250 532 L 246 544 L 240 553 L 240 555 L 226 569 L 224 569 L 216 574 L 207 575 L 205 577 L 183 579 L 182 580 L 174 580 L 170 582 L 169 581 L 166 583 L 161 583 L 149 586 L 130 595 L 122 600 L 109 613 L 109 615 L 106 617 L 100 627 L 100 629 L 95 637 L 95 640 L 90 651 L 88 664 L 87 665 L 87 670 L 85 672 L 86 675 L 84 678 L 84 682 L 83 683 L 81 710 L 79 713 L 78 741 L 77 742 L 77 815 L 78 816 L 79 844 L 81 847 L 81 856 L 82 857 L 85 885 L 87 887 L 89 902 L 92 909 L 93 916 L 103 937 L 111 948 L 125 961 L 143 971 L 151 974 L 155 974 L 157 976 L 179 979 L 182 981 L 189 981 L 190 982 L 207 984 L 212 987 L 215 987 L 219 989 L 226 995 L 228 995 L 240 1010 L 242 1014 L 242 1017 L 247 1025 L 247 1028 L 251 1034 L 251 1036 L 256 1044 L 258 1050 L 261 1053 L 264 1061 L 267 1064 L 269 1070 L 271 1071 L 273 1076 L 278 1082 L 279 1086 L 286 1095 L 290 1103 L 302 1118 L 302 1120 L 317 1138 L 317 1140 L 322 1144 L 322 1146 L 340 1166 L 343 1171 L 354 1181 L 355 1184 L 382 1211 L 384 1211 L 395 1223 L 397 1223 L 422 1245 L 424 1245 L 442 1260 L 444 1260 L 458 1271 L 460 1271 L 461 1273 L 463 1273 L 475 1282 L 477 1282 L 483 1287 L 487 1288 L 502 1298 L 504 1298 L 512 1303 L 516 1304 L 521 1308 L 525 1310 L 528 1310 L 533 1314 L 536 1314 L 544 1319 L 549 1320 L 561 1326 L 569 1328 L 573 1331 L 582 1333 L 584 1335 L 593 1337 L 612 1344 L 616 1344 L 621 1347 L 637 1350 L 644 1353 L 660 1355 L 662 1357 L 665 1356 L 668 1358 L 688 1360 L 691 1362 L 696 1362 L 697 1363 L 719 1364 L 720 1365 L 736 1365 L 737 1366 L 802 1366 L 803 1365 L 819 1365 L 820 1364 L 840 1363 L 844 1361 L 848 1362 L 851 1360 L 870 1358 L 871 1357 L 875 1357 L 878 1355 L 898 1352 L 905 1349 L 921 1346 L 923 1344 L 926 1344 L 938 1339 L 944 1338 L 956 1333 L 964 1331 L 981 1323 L 991 1320 L 1022 1305 L 1029 1300 L 1033 1299 L 1036 1296 L 1044 1293 L 1052 1287 L 1056 1286 L 1068 1277 L 1070 1277 L 1081 1268 L 1086 1266 L 1089 1262 L 1091 1262 L 1102 1253 L 1109 1249 L 1138 1223 L 1140 1223 L 1154 1208 L 1156 1208 L 1170 1194 L 1175 1187 L 1186 1177 L 1186 1175 L 1206 1153 L 1213 1142 L 1225 1128 L 1228 1122 L 1232 1118 L 1239 1108 L 1241 1103 L 1251 1090 L 1251 1088 L 1255 1083 L 1260 1073 L 1265 1066 L 1265 1064 L 1267 1063 L 1268 1059 L 1273 1052 L 1273 1050 L 1275 1048 L 1278 1040 L 1288 1022 L 1289 1017 L 1295 1008 L 1295 1006 L 1306 994 L 1311 990 L 1313 990 L 1325 984 L 1334 983 L 1335 982 L 1352 981 L 1354 979 L 1366 978 L 1367 977 L 1375 976 L 1378 974 L 1385 973 L 1403 964 L 1419 951 L 1431 934 L 1439 916 L 1440 910 L 1442 906 L 1442 902 L 1444 899 L 1446 891 L 1448 872 L 1450 869 L 1450 862 L 1451 861 L 1451 851 L 1452 850 L 1452 841 L 1453 840 L 1453 825 L 1455 822 L 1454 821 L 1454 813 L 1455 812 L 1454 802 L 1456 800 L 1456 759 L 1454 756 L 1455 755 L 1455 735 L 1453 732 L 1453 717 L 1452 716 L 1452 705 L 1451 704 L 1450 688 L 1448 685 L 1446 666 L 1444 658 L 1442 655 L 1442 651 L 1439 644 L 1439 641 L 1437 639 L 1436 634 L 1431 626 L 1430 622 L 1419 609 L 1419 607 L 1416 606 L 1403 595 L 1399 594 L 1398 592 L 1389 588 L 1386 588 L 1384 586 L 1371 583 L 1366 583 L 1364 581 L 1360 582 L 1357 580 L 1326 577 L 1324 575 L 1315 573 L 1305 567 L 1292 553 L 1287 543 L 1287 540 L 1284 536 L 1283 531 L 1278 522 L 1278 520 L 1274 514 L 1265 494 L 1262 491 L 1249 467 L 1242 458 L 1238 450 L 1234 446 L 1234 444 L 1232 443 L 1232 441 L 1223 430 L 1223 428 L 1207 408 L 1200 401 L 1197 396 L 1146 345 L 1144 345 L 1119 323 L 1117 323 L 1104 312 L 1098 309 L 1091 303 L 1080 297 L 1071 290 L 1067 289 L 1064 286 L 1061 285 L 1053 279 L 1047 277 L 1042 273 L 1040 273 L 1038 271 L 1020 262 L 1018 262 L 1012 258 L 1007 257 L 1001 253 L 998 253 L 981 245 L 978 245 L 974 242 L 971 242 L 968 240 L 954 235 L 948 234 L 945 232 L 928 228 L 925 226 L 909 223 L 906 221 L 901 221 L 896 219 L 887 218 L 884 216 L 858 213 L 857 212 L 849 212 L 846 210 L 824 209 L 823 208 L 808 208 L 807 207 L 737 207 L 736 208 L 719 208 L 718 209 Z M 690 934 L 709 935 L 726 940 L 736 945 L 750 955 L 760 965 L 761 968 L 763 969 L 764 972 L 769 978 L 776 993 L 777 1000 L 780 1007 L 780 1015 L 781 1016 L 781 1028 L 780 1029 L 779 1042 L 777 1045 L 774 1057 L 763 1075 L 748 1091 L 739 1098 L 723 1106 L 713 1109 L 709 1109 L 706 1111 L 683 1111 L 681 1109 L 671 1108 L 655 1101 L 643 1093 L 628 1078 L 618 1063 L 612 1049 L 612 1045 L 609 1038 L 609 1031 L 608 1030 L 609 1008 L 611 1005 L 613 995 L 621 978 L 629 967 L 641 955 L 653 946 L 655 946 L 659 943 L 661 943 L 663 941 L 668 940 L 671 93Line truncated
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

+168
View File
@@ -0,0 +1,168 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="煮糊了 OverCooked 为影视服务提供品牌门户、统一运营、媒体处理和播放节点调度。">
<title>煮糊了 OverCooked|影视流媒体平台</title>
<link rel="icon" href="favicon.svg">
<link rel="stylesheet" href="assets/apple.css">
</head>
<body>
<a class="skip-link" href="#content">跳至主要内容</a>
<header class="site-header" data-header>
<nav class="nav-island" aria-label="主导航">
<a class="wordmark" href="#top" aria-label="OverCooked 首页">
<img class="wordmark-logo" src="overcooked-white.png" alt="" aria-hidden="true">
<span>OverCooked</span>
</a>
<div class="desktop-nav">
<a href="#platform">平台</a>
<a href="#capabilities">能力</a>
<a href="#delivery">交付</a>
<a href="pricing.html">定价</a>
</div>
<div class="nav-actions">
<a class="nav-contact" href="pricing.html">选择方案 <span aria-hidden="true">→</span></a>
<button class="menu-button" type="button" aria-expanded="false" aria-controls="mobile-menu" aria-label="打开导航" data-menu-button><span></span><span></span></button>
</div>
</nav>
<div class="mobile-menu" id="mobile-menu" data-mobile-menu hidden>
<a href="#platform">平台</a><a href="#capabilities">能力</a><a href="#delivery">交付</a><a href="pricing.html">定价</a><a href="mailto:lachong930@gmail.com">联系团队</a>
</div>
</header>
<main id="content">
<section class="hero" id="top">
<div class="hero-media" aria-hidden="true"></div>
<div class="hero-inner">
<div class="hero-copy">
<p class="hero-eyebrow"><span></span>为影视运营而生</p>
<h1>OverCooked</h1>
<p class="hero-product">新一代流媒体一体服务平台</p>
<p class="hero-lead">让天下的服主安心开服。</p>
<div class="hero-actions">
<a class="button button-primary" href="pricing.html">查看服务定价 <span aria-hidden="true">→</span></a>
<a class="text-button" href="#platform">了解平台 <span aria-hidden="true">↓</span></a>
</div>
</div>
<div class="product-stage" data-product-stage>
<div class="product-window" data-product-window aria-label="OverCooked 控制台交互预览">
<div class="window-bar">
<div class="traffic-lights" aria-hidden="true"><i></i><i></i><i></i></div>
<div class="window-title"><span class="window-mark"></span>Manage Console</div>
<div class="window-status"><span></span>服务正常</div>
</div>
<div class="window-layout">
<aside class="window-sidebar" aria-label="控制台视图">
<button class="console-tab is-active" type="button" data-console-tab="overview" aria-pressed="true"><i>⌂</i><span>概览</span></button>
<button class="console-tab" type="button" data-console-tab="media" aria-pressed="false"><i>▶</i><span>媒体</span></button>
<button class="console-tab" type="button" data-console-tab="nodes" aria-pressed="false"><i>⌁</i><span>节点</span></button>
</aside>
<div class="window-main">
<section class="console-view is-active" data-console-view="overview">
<div class="console-heading"><div><small>7 月 29 日 · 今天</small><h2>运营概览</h2></div><span class="view-chip">实时更新</span></div>
<div class="metric-row">
<article><small>活跃用户</small><strong>8,642</strong><span class="trend">↑ 12.4%</span></article>
<article><small>正在播放</small><strong>1,284</strong><span>实时</span></article>
<article><small>节点可用率</small><strong>99.98%</strong><span>稳定</span></article>
</div>
<div class="chart-panel">
<div class="panel-title"><span>播放趋势</span><small>最近 24 小时</small></div>
<div class="bar-chart" aria-label="播放量持续增长的柱状图"><i style="--h:24%"></i><i style="--h:34%"></i><i style="--h:30%"></i><i style="--h:46%"></i><i style="--h:55%"></i><i style="--h:48%"></i><i style="--h:65%"></i><i style="--h:60%"></i><i style="--h:76%"></i><i style="--h:88%"></i><i style="--h:82%"></i><i style="--h:96%"></i></div>
</div>
</section>
<section class="console-view" data-console-view="media" hidden>
<div class="console-heading"><div><small>自动处理队列</small><h2>媒体中心</h2></div><span class="view-chip">3 个任务</span></div>
<div class="media-list">
<article><span class="poster poster-one"></span><div><b>远方来信</b><small>4K · HDR · 已就绪</small></div><em>可播放</em></article>
<article><span class="poster poster-two"></span><div><b>沉默海岸</b><small>1080P · 正在转码</small></div><em>68%</em></article>
<article><span class="poster poster-three"></span><div><b>城市片段</b><small>4K · HDR · 已就绪</small></div><em>可播放</em></article>
</div>
</section>
<section class="console-view" data-console-view="nodes" hidden>
<div class="console-heading"><div><small>全球播放网络</small><h2>节点健康</h2></div><span class="view-chip">7 个区域</span></div>
<div class="node-map" aria-label="全球播放节点状态图"><div class="map-grid"></div><span class="node node-a"><i></i>上海</span><span class="node node-b"><i></i>新加坡</span><span class="node node-c"><i></i>东京</span><span class="node node-d"><i></i>洛杉矶</span></div>
<div class="node-summary"><span><i></i>平均响应 42ms</span><b>运行稳定</b></div>
</section>
</div>
</div>
</div>
<div class="live-activity" aria-label="当前实时播放 1,284"><span class="live-activity-icon" aria-hidden="true"><i></i><i></i><i></i></span><span><small>实时播放</small><strong>1,284</strong></span></div>
</div>
</div>
</section>
<section class="signal-strip" aria-label="平台关键指标">
<div><span>可用率</span><strong>99.98%</strong></div><i></i><div><span>关键服务</span><strong>7 × 24</strong></div><i></i><div><span>统一控制台</span><strong>1 个</strong></div>
</section>
<section class="platform" id="platform">
<div class="platform-intro reveal">
<p class="section-kicker">OverCooked Platform</p>
<h2>复杂留在幕后。<br><span>运营回到一眼看清。</span></h2>
<p>门户、用户、订单、片库和播放节点不再散落在不同系统。所有关键状态围绕你的工作流出现,常用动作始终触手可及。</p>
</div>
<div class="principle-grid reveal">
<article><span>01</span><h3>看见</h3><p>重要状态实时呈现,异常不再藏在报表深处。</p></article>
<article><span>02</span><h3>行动</h3><p>控制与对象相邻,减少页面切换和重复确认。</p></article>
<article><span>03</span><h3>扩展</h3><p>从一个品牌到多节点网络,能力随业务自然生长。</p></article>
</div>
</section>
<section class="capabilities" id="capabilities">
<div class="capabilities-head reveal">
<div><p class="section-kicker">核心能力</p><h2>一个界面,<br>四种关键视角。</h2></div>
<div class="capabilities-side">
<p>连续浏览四种工作视角,看平台如何把复杂任务压缩成清楚、连贯的操作。</p>
<div class="feature-rail-controls" aria-label="核心能力卡片导航">
<button type="button" data-feature-prev aria-label="上一项能力">←</button>
<button type="button" data-feature-next aria-label="下一项能力">→</button>
</div>
</div>
</div>
<div class="feature-rail reveal" data-feature-rail tabindex="0" aria-label="平台核心能力">
<article class="feature-card">
<div class="feature-copy"><p><b>01</b> 品牌门户</p><h3>从第一帧开始,<br>就是你的品牌。</h3><span>首页、详情页和播放体验完整定制,多端适配与独立域名默认就绪。</span></div>
<div class="portal-preview" aria-hidden="true"><div class="portal-bar"><i></i><span></span></div><div class="portal-hero"><small>NOW STREAMING</small><b>远方来信</b><em>继续观看 →</em></div><div class="portal-posters"><i></i><i></i><i></i><i></i></div></div>
</article>
<article class="feature-card">
<div class="feature-copy"><p><b>02</b> 统一运营</p><h3>用户、套餐与订单,<br>在同一条时间线上。</h3><span>清楚掌握用户生命周期与经营数据,把日常运营动作放回业务上下文。</span></div>
<div class="operations-preview" aria-hidden="true"><div class="op-chart"><span>本月收入</span><strong>¥128,460</strong><div><i style="--h:28%"></i><i style="--h:42%"></i><i style="--h:36%"></i><i style="--h:58%"></i><i style="--h:71%"></i><i style="--h:66%"></i><i style="--h:86%"></i></div></div><div class="op-event"><i></i><span><b>专业套餐</b><small>刚刚完成续订</small></span><em>+¥599</em></div></div>
</article>
<article class="feature-card">
<div class="feature-copy"><p><b>03</b> 媒体处理</p><h3>内容进入之后,<br>流程自动向前。</h3><span>检查、转码、归类和可用性验证持续运行,团队只处理真正需要判断的部分。</span></div>
<div class="pipeline-preview" aria-hidden="true"><div class="pipeline-step is-done"><i>✓</i><span><b>媒体接入</b><small>S3 / WebDAV</small></span></div><em></em><div class="pipeline-step is-active"><i></i><span><b>智能转码</b><small>4K · HDR</small></span></div><em></em><div class="pipeline-step"><i></i><span><b>分发就绪</b><small>7 个节点</small></span></div></div>
</article>
<article class="feature-card">
<div class="feature-copy"><p><b>04</b> 节点网络</p><h3>让每一次播放,<br>走更合适的线路。</h3><span>按区域、延迟和健康状态自动调度,同时保留清楚的人工控制与审计记录。</span></div>
<div class="network-preview" aria-hidden="true"><div class="network-grid"></div><span class="pulse p1"></span><span class="pulse p2"></span><span class="pulse p3"></span><span class="pulse p4"></span><div class="network-card"><span>全球健康度</span><strong>99.98%</strong><small>全部区域正常</small></div></div>
</article>
</div>
</section>
<section class="delivery" id="delivery">
<div class="delivery-head reveal"><p class="section-kicker">清晰交付</p><h2>从想法到上线,<br>没有黑箱。</h2></div>
<ol class="delivery-steps">
<li class="reveal"><span>01</span><div><h3>理解业务</h3><p>品牌、内容来源、用户规模与部署环境。</p></div><i aria-hidden="true">→</i></li>
<li class="reveal"><span>02</span><div><h3>配置平台</h3><p>门户、控制台、权限和线路策略。</p></div><i aria-hidden="true">→</i></li>
<li class="reveal"><span>03</span><div><h3>接入数据</h3><p>媒体库、存储节点与现有用户体系。</p></div><i aria-hidden="true">→</i></li>
<li class="reveal"><span>04</span><div><h3>上线陪跑</h3><p>测试、迁移、上线与持续运行支持。</p></div><i aria-hidden="true">✓</i></li>
</ol>
</section>
<section class="closing">
<div class="closing-media" aria-hidden="true"></div>
<div class="closing-copy reveal"><p class="section-kicker">准备好开始了吗</p><h2>把注意力留给内容,<br>把平台交给我们。</h2><p>告诉我们你的业务模式和现有环境,我们会给出合适的建设与迁移方案。</p><div class="hero-actions"><a class="button button-primary" href="mailto:lachong930@gmail.com">联系团队 <span aria-hidden="true">→</span></a><a class="text-button" href="pricing.html">查看方案</a></div></div>
</section>
</main>
<footer class="site-footer">
<div class="footer-main"><a class="wordmark" href="#top"><img class="wordmark-logo" src="overcooked-white.png" alt="" aria-hidden="true"><span>煮糊了</span><b>OverCooked</b></a><p>让每一个影视服务,都有一套好平台。</p></div>
<div class="footer-meta"><span>© 2026 OverCooked Platform Service.</span><div><a href="pricing.html">服务定价</a><a href="mailto:lachong930@gmail.com">商务联系</a><a href="https://overcooked.top">Back to Global Website</a></div></div>
</footer>
<script src="script.js"></script>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

+88
View File
@@ -0,0 +1,88 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="选择适合当前规模的 OverCooked 影视流媒体平台方案,支持永久授权与定制部署。">
<title>服务定价|煮糊了 OverCooked</title>
<link rel="icon" href="favicon.svg">
<link rel="stylesheet" href="assets/apple.css">
</head>
<body class="pricing-page">
<a class="skip-link" href="#content">跳至主要内容</a>
<header class="site-header" data-header>
<nav class="nav-island" aria-label="主导航">
<a class="wordmark" href="index.html" aria-label="煮糊了 OverCooked 首页"><img class="wordmark-logo" src="overcooked-white.png" alt="" aria-hidden="true"><span>煮糊了</span><b>OverCooked</b></a>
<div class="desktop-nav"><a href="index.html#platform">平台</a><a href="index.html#capabilities">能力</a><a href="index.html#delivery">交付</a><a href="pricing.html" aria-current="page">定价</a></div>
<div class="nav-actions"><a class="nav-contact" href="mailto:lachong930@gmail.com">联系团队 <span aria-hidden="true">↗</span></a><button class="menu-button" type="button" aria-expanded="false" aria-controls="mobile-menu" aria-label="打开导航" data-menu-button><span></span><span></span></button></div>
</nav>
<div class="mobile-menu" id="mobile-menu" data-mobile-menu hidden><a href="index.html#platform">平台</a><a href="index.html#capabilities">能力</a><a href="index.html#delivery">交付</a><a href="pricing.html">定价</a><a href="mailto:lachong930@gmail.com">联系团队</a></div>
</header>
<main id="content">
<section class="pricing-hero">
<div class="pricing-hero-copy">
<p class="section-kicker">永久授权 · 按需升级</p>
<h1>从刚刚好开始。<br><span>随业务一起成长。</span></h1>
<p>一次购买,永久使用。规模变化时,保留已有配置和数据,平滑升级到下一阶段。</p>
</div>
<div class="pricing-orbit" aria-hidden="true"><span class="orbit-core"><i></i><b>OC</b></span><i class="orbit-ring ring-one"></i><i class="orbit-ring ring-two"></i><span class="orbit-node node-one">门户</span><span class="orbit-node node-two">媒体</span><span class="orbit-node node-three">节点</span></div>
</section>
<section class="plans" aria-labelledby="plans-title">
<div class="plans-heading"><div><p class="section-kicker">选择方案</p><h2 id="plans-title">现在需要多少,<br>就从多少开始。</h2></div><p>每个方案都包含完整部署能力。区别只在规模、自动化深度与支持等级。</p></div>
<div class="plan-grid">
<article class="plan reveal">
<div class="plan-top"><p class="plan-label">Starter</p><span>个人 / 小团队</span></div>
<h3>OCM 基础版</h3><p class="plan-desc">用于启动第一套独立影视服务。</p>
<div class="plan-price"><strong>¥399</strong><span>一次付费</span></div>
<a class="plan-button" href="https://buy.stripe.com/3cI00c2j0eEUdl3dUR0ZW06" target="_blank" rel="noreferrer">选择基础版 <span aria-hidden="true">→</span></a>
<ul><li><span>✓</span>1 个品牌门户</li><li><span>✓</span>基础用户与套餐管理</li><li><span>✓</span>2 个媒体或播放节点</li><li><span>✓</span>移动端完整适配</li><li><span>✓</span>基础运行监控</li><li><span>✓</span>工作日技术支持</li></ul>
</article>
<article class="plan plan-featured reveal">
<div class="plan-recommend">推荐</div>
<div class="plan-top"><p class="plan-label">Professional</p><span>成长型业务</span></div>
<h3>OCM 专业版</h3><p class="plan-desc">用于已有稳定用户规模的影视服务。</p>
<div class="plan-price"><strong>¥599</strong><span>一次付费</span></div>
<a class="plan-button" href="https://buy.stripe.com/14A28kg9Q68o5SB7wt0ZW07" target="_blank" rel="noreferrer">选择专业版 <span aria-hidden="true">→</span></a>
<ul><li><span>✓</span>3 个品牌门户</li><li><span>✓</span>完整用户、套餐与订单管理</li><li><span>✓</span>10 个媒体或播放节点</li><li><span>✓</span>高级品牌定制</li><li><span>✓</span>实时监控与操作审计</li><li><span>✓</span>开放接口与自动化</li><li><span>✓</span>优先技术支持</li></ul>
</article>
<article class="plan reveal">
<div class="plan-top"><p class="plan-label">Enterprise</p><span>多品牌 / 私有化</span></div>
<h3>旗舰版</h3><p class="plan-desc">用于多节点、深度集成或独立资源环境。</p>
<div class="plan-price"><strong>定制</strong><span>按需报价</span></div>
<a class="plan-button" href="mailto:lachong930@gmail.com">联系定制方案 <span aria-hidden="true">↗</span></a>
<ul><li><span>✓</span>品牌与门户数量按需配置</li><li><span>✓</span>多节点及私有化部署</li><li><span>✓</span>独立资源与数据迁移</li><li><span>✓</span>既有系统深度集成</li><li><span>✓</span>专属功能与接口开发</li><li><span>✓</span>上线陪跑与持续运维</li><li><span>✓</span>专属服务响应</li></ul>
</article>
</div>
<p class="payment-note reveal"><i></i>基础版与专业版通过 Stripe 安全结账。所有方案均为永久授权。</p>
</section>
<section class="comparison">
<div class="comparison-head reveal"><p class="section-kicker">详细比较</p><h2>差异,清楚列出。</h2><p>选择当前真正会用到的能力,不为暂时不需要的规模付费。</p></div>
<div class="comparison-list reveal" role="table" aria-label="方案能力比较">
<div class="comparison-row comparison-header" role="row"><span role="columnheader">平台能力</span><span role="columnheader">基础版</span><span role="columnheader">专业版</span><span role="columnheader">旗舰版</span></div>
<div class="comparison-row" role="row"><b role="rowheader">品牌门户</b><span>1 个</span><span>3 个</span><span>按需配置</span></div>
<div class="comparison-row" role="row"><b role="rowheader">媒体及播放节点</b><span>2 个</span><span>10 个</span><span>按需配置</span></div>
<div class="comparison-row" role="row"><b role="rowheader">用户与套餐管理</b><span>基础</span><span class="positive">完整</span><span class="positive">完整</span></div>
<div class="comparison-row" role="row"><b role="rowheader">实时监控</b><span>基础</span><span class="positive">完整</span><span class="positive">完整 + 定制</span></div>
<div class="comparison-row" role="row"><b role="rowheader">API 与自动化</b><span class="muted">—</span><span class="positive">支持</span><span class="positive">深度定制</span></div>
<div class="comparison-row" role="row"><b role="rowheader">私有化部署</b><span class="muted">—</span><span class="muted">—</span><span class="positive">支持</span></div>
<div class="comparison-row" role="row"><b role="rowheader">技术支持</b><span>工作日</span><span>优先响应</span><span>专属响应</span></div>
</div>
</section>
<section class="pricing-cta">
<div class="pricing-cta-media" aria-hidden="true"></div>
<div class="pricing-cta-copy reveal"><p class="section-kicker">需要不同的组合?</p><h2>让方案适应业务,<br>而不是反过来。</h2><p>多品牌、特殊存储、数据迁移、私有部署或既有系统集成,都可以按实际需求组合。</p><a class="button button-primary" href="mailto:lachong930@gmail.com">获取定制报价 <span aria-hidden="true">↗</span></a></div>
</section>
</main>
<footer class="site-footer">
<div class="footer-main"><a class="wordmark" href="index.html"><img class="wordmark-logo" src="overcooked-white.png" alt="" aria-hidden="true"><span>煮糊了</span><b>OverCooked</b></a><p>让每一个影视服务,都有一套好平台。</p></div>
<div class="footer-meta"><span>© 2026 OverCooked Platform Service.</span><div><a href="index.html">返回首页</a><a href="mailto:lachong930@gmail.com">商务联系</a><a href="https://overcooked.top">Back to Global Website</a></div></div>
</footer>
<script src="script.js"></script>
</body>
</html>
+289
View File
@@ -0,0 +1,289 @@
(() => {
const reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)");
const header = document.querySelector("[data-header]");
const menuButton = document.querySelector("[data-menu-button]");
const mobileMenu = document.querySelector("[data-mobile-menu]");
let headerScrollTimer = 0;
let lastHeaderScrollY = window.scrollY;
const updateHeader = () => header?.classList.toggle("is-scrolled", window.scrollY > 20);
const handleHeaderScroll = () => {
updateHeader();
if (!header) return;
const currentScrollY = window.scrollY;
if (!reducedMotion.matches && Math.abs(currentScrollY - lastHeaderScrollY) >= 2) {
header.classList.add("is-scroll-hidden");
}
lastHeaderScrollY = currentScrollY;
window.clearTimeout(headerScrollTimer);
headerScrollTimer = window.setTimeout(() => {
header.classList.remove("is-scroll-hidden");
}, 180);
};
updateHeader();
window.addEventListener("scroll", handleHeaderScroll, { passive: true });
reducedMotion.addEventListener("change", () => {
if (reducedMotion.matches) header?.classList.remove("is-scroll-hidden");
});
const glassNav = document.querySelector(".nav-island");
if (glassNav && !reducedMotion.matches && window.matchMedia("(pointer: fine)").matches) {
glassNav.addEventListener("pointermove", (event) => {
const rect = glassNav.getBoundingClientRect();
glassNav.style.setProperty("--glass-x", `${event.clientX - rect.left}px`);
glassNav.style.setProperty("--glass-y", `${event.clientY - rect.top}px`);
}, { passive: true });
glassNav.addEventListener("pointerleave", () => {
glassNav.style.setProperty("--glass-x", "50%");
glassNav.style.setProperty("--glass-y", "0%");
});
}
if (menuButton && mobileMenu) {
const closeMenu = () => {
menuButton.setAttribute("aria-expanded", "false");
menuButton.setAttribute("aria-label", "打开导航");
mobileMenu.hidden = true;
};
menuButton.addEventListener("click", () => {
const opening = menuButton.getAttribute("aria-expanded") !== "true";
menuButton.setAttribute("aria-expanded", String(opening));
menuButton.setAttribute("aria-label", opening ? "关闭导航" : "打开导航");
mobileMenu.hidden = !opening;
});
mobileMenu.addEventListener("click", (event) => {
if (event.target.closest("a")) closeMenu();
});
document.addEventListener("pointerdown", (event) => {
if (!mobileMenu.hidden && !header.contains(event.target)) closeMenu();
});
document.addEventListener("keydown", (event) => {
if (event.key === "Escape") closeMenu();
});
window.addEventListener("resize", () => {
if (window.innerWidth > 960) closeMenu();
}, { passive: true });
}
const activateSet = (buttons, panels, button, buttonKey, panelKey) => {
const target = button.dataset[buttonKey];
buttons.forEach((item) => {
const active = item === button;
item.classList.toggle("is-active", active);
item.setAttribute("aria-pressed", String(active));
});
panels.forEach((panel) => {
const active = panel.dataset[panelKey] === target;
panel.hidden = !active;
panel.classList.toggle("is-active", active);
});
};
const bindButtonSet = (buttonSelector, panelSelector, buttonKey, panelKey) => {
const buttons = [...document.querySelectorAll(buttonSelector)];
const panels = [...document.querySelectorAll(panelSelector)];
buttons.forEach((button, index) => {
button.addEventListener("click", () => activateSet(buttons, panels, button, buttonKey, panelKey));
button.addEventListener("keydown", (event) => {
if (!["ArrowRight", "ArrowDown", "ArrowLeft", "ArrowUp"].includes(event.key)) return;
event.preventDefault();
const direction = event.key === "ArrowRight" || event.key === "ArrowDown" ? 1 : -1;
const next = buttons[(index + direction + buttons.length) % buttons.length];
next.focus();
activateSet(buttons, panels, next, buttonKey, panelKey);
});
});
};
bindButtonSet("[data-console-tab]", "[data-console-view]", "consoleTab", "consoleView");
const featureRail = document.querySelector("[data-feature-rail]");
const featurePrev = document.querySelector("[data-feature-prev]");
const featureNext = document.querySelector("[data-feature-next]");
if (featureRail && featurePrev && featureNext) {
const originalCards = [...featureRail.querySelectorAll(".feature-card")];
const autoPauses = new Set();
let railFrame = 0;
let motionFrame = 0;
let lastMotionTime = 0;
let manualPauseUntil = 0;
// Three identical sets keep both automatic and manual movement seamless.
const cloneSet = () => {
const fragment = document.createDocumentFragment();
originalCards.forEach((card) => {
const clone = card.cloneNode(true);
clone.setAttribute("aria-hidden", "true");
fragment.append(clone);
});
return fragment;
};
featureRail.prepend(cloneSet());
featureRail.append(cloneSet());
const getStep = () => {
const card = originalCards[0];
if (!card) return 0;
const gap = parseFloat(getComputedStyle(featureRail).columnGap) || 0;
return card.getBoundingClientRect().width + gap;
};
const getLoopSpan = () => getStep() * originalCards.length;
const normalizeRail = () => {
const loopSpan = getLoopSpan();
if (!loopSpan) return;
if (featureRail.scrollLeft >= loopSpan * 2) featureRail.scrollLeft -= loopSpan;
if (featureRail.scrollLeft <= 1) featureRail.scrollLeft += loopSpan;
};
featureRail.scrollLeft = getLoopSpan();
const scheduleRailUpdate = () => {
if (railFrame) return;
railFrame = requestAnimationFrame(() => {
railFrame = 0;
normalizeRail();
});
};
const scrollRail = (direction) => {
const step = getStep();
if (!step) return;
manualPauseUntil = performance.now() + 700;
featureRail.scrollBy({
left: direction * step,
behavior: reducedMotion.matches ? "auto" : "smooth"
});
};
const stopAuto = () => {
cancelAnimationFrame(motionFrame);
motionFrame = 0;
lastMotionTime = 0;
};
const animateRail = (time) => {
if (!lastMotionTime) lastMotionTime = time;
const elapsed = Math.min(time - lastMotionTime, 40);
lastMotionTime = time;
if (!autoPauses.size && time >= manualPauseUntil) {
featureRail.scrollLeft += elapsed * 0.032;
normalizeRail();
}
motionFrame = requestAnimationFrame(animateRail);
};
const startAuto = () => {
if (reducedMotion.matches || document.hidden) {
stopAuto();
return;
}
if (!motionFrame) motionFrame = requestAnimationFrame(animateRail);
};
const pauseAuto = (reason) => autoPauses.add(reason);
const resumeAuto = (reason) => {
autoPauses.delete(reason);
startAuto();
};
const moveManually = (direction) => {
scrollRail(direction);
startAuto();
};
featurePrev.addEventListener("click", () => moveManually(-1));
featureNext.addEventListener("click", () => moveManually(1));
featureRail.addEventListener("scroll", scheduleRailUpdate, { passive: true });
featureRail.addEventListener("keydown", (event) => {
if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return;
event.preventDefault();
moveManually(event.key === "ArrowRight" ? 1 : -1);
});
featureRail.addEventListener("pointerdown", () => pauseAuto("pointer"), { passive: true });
window.addEventListener("pointerup", () => resumeAuto("pointer"), { passive: true });
window.addEventListener("pointercancel", () => resumeAuto("pointer"), { passive: true });
featureRail.addEventListener("wheel", () => {
manualPauseUntil = performance.now() + 900;
}, { passive: true });
document.addEventListener("visibilitychange", () => {
if (document.hidden) stopAuto();
else startAuto();
});
reducedMotion.addEventListener("change", startAuto);
window.addEventListener("resize", () => {
featureRail.scrollLeft = getLoopSpan();
scheduleRailUpdate();
}, { passive: true });
startAuto();
}
const productStage = document.querySelector("[data-product-stage]");
const productWindow = document.querySelector("[data-product-window]");
if (productStage && productWindow && !reducedMotion.matches && window.matchMedia("(pointer: fine)").matches) {
let currentX = 0;
let currentY = 0;
let targetX = 0;
let targetY = 0;
let velocityX = 0;
let velocityY = 0;
let frame = 0;
const animateTilt = () => {
velocityX = (velocityX + (targetX - currentX) * 0.16) * 0.72;
velocityY = (velocityY + (targetY - currentY) * 0.16) * 0.72;
currentX += velocityX;
currentY += velocityY;
productWindow.style.setProperty("--rx", `${currentX.toFixed(3)}deg`);
productWindow.style.setProperty("--ry", `${currentY.toFixed(3)}deg`);
const moving = Math.abs(targetX - currentX) + Math.abs(targetY - currentY) + Math.abs(velocityX) + Math.abs(velocityY) > 0.003;
frame = moving ? requestAnimationFrame(animateTilt) : 0;
};
const scheduleTilt = () => {
if (!frame) frame = requestAnimationFrame(animateTilt);
};
productStage.addEventListener("pointermove", (event) => {
const rect = productStage.getBoundingClientRect();
const x = (event.clientX - rect.left) / rect.width - 0.5;
const y = (event.clientY - rect.top) / rect.height - 0.5;
targetX = Math.max(-1.5, Math.min(1.5, -y * 3));
targetY = Math.max(-2.1, Math.min(2.1, x * 4.2));
scheduleTilt();
}, { passive: true });
productStage.addEventListener("pointerleave", () => {
targetX = 0;
targetY = 0;
scheduleTilt();
});
}
const reveals = document.querySelectorAll(".reveal");
if (reducedMotion.matches || !("IntersectionObserver" in window)) {
reveals.forEach((item) => item.classList.add("is-visible"));
} else {
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (!entry.isIntersecting) return;
entry.target.classList.add("is-visible");
observer.unobserve(entry.target);
});
}, { rootMargin: "0px 0px -7%", threshold: 0.08 });
reveals.forEach((item) => observer.observe(item));
}
})();