manual save(2026-01-23 15:07)

This commit is contained in:
SiteAgent Bot
2026-01-23 15:07:12 +08:00
parent d19f27a8de
commit 1260f7b37c
2 changed files with 217 additions and 105 deletions

View File

@@ -41,15 +41,37 @@ const PageHalf: React.FC<{ side: 'left' | 'right'; children?: React.ReactNode }>
> >
<div <div
className={[ className={[
'h-full', 'relative h-full',
'bg-[color-mix(in_srgb,var(--tf-bg)_55%,white)]', 'bg-[color-mix(in_srgb,white_92%,var(--tf-bg))]',
'shadow-[inset_0_1px_0_rgba(255,255,255,0.65)]', 'shadow-[inset_0_1px_0_rgba(255,255,255,0.9)]',
isLeft isLeft
? 'shadow-[inset_-18px_0_40px_rgba(0,0,0,0.06),inset_0_1px_0_rgba(255,255,255,0.65)]' ? 'shadow-[inset_-22px_0_50px_rgba(0,0,0,0.08),inset_0_1px_0_rgba(255,255,255,0.9)]'
: 'shadow-[inset_18px_0_40px_rgba(0,0,0,0.06),inset_0_1px_0_rgba(255,255,255,0.65)]', : 'shadow-[inset_22px_0_50px_rgba(0,0,0,0.08),inset_0_1px_0_rgba(255,255,255,0.9)]',
].join(' ')} ].join(' ')}
> >
<div className="h-full p-[clamp(18px,2.2vw,28px)]">{children}</div> <div
aria-hidden="true"
className={[
'pointer-events-none absolute inset-0 opacity-70',
'bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.95),rgba(255,255,255,0.45)_55%,rgba(255,255,255,0.25))]',
].join(' ')}
/>
<div
aria-hidden="true"
className={[
'pointer-events-none absolute inset-0 opacity-[0.18] mix-blend-multiply',
'bg-[repeating-linear-gradient(0deg,rgba(10,10,10,0.06)_0px,rgba(10,10,10,0.06)_1px,transparent_1px,transparent_6px)]',
].join(' ')}
/>
<div
aria-hidden="true"
className={[
'pointer-events-none absolute inset-0 opacity-[0.08]',
'bg-[repeating-linear-gradient(90deg,rgba(10,10,10,0.05)_0px,rgba(10,10,10,0.05)_1px,transparent_1px,transparent_10px)]',
].join(' ')}
/>
<div className="relative h-full p-[clamp(22px,2.6vw,34px)]">{children}</div>
</div> </div>
</div> </div>
) )
@@ -207,6 +229,7 @@ export const FlipBook: React.FC<FlipBookProps> = ({ title, sheets, className })
}, [currentIndex, sheets.length]) }, [currentIndex, sheets.length])
const currentSheet = sheets[currentIndex] const currentSheet = sheets[currentIndex]
const previousSheet = currentIndex > 0 ? sheets[currentIndex - 1] : null
return ( return (
<section <section
@@ -240,14 +263,18 @@ export const FlipBook: React.FC<FlipBookProps> = ({ title, sheets, className })
<div <div
className={[ className={[
'absolute inset-0 rounded-[26px]', 'absolute inset-0 rounded-[26px]',
'bg-[color-mix(in_srgb,var(--tf-bg)_42%,white)]', 'bg-[color-mix(in_srgb,white_88%,var(--tf-bg))]',
'shadow-[0_26px_80px_rgba(0,0,0,0.14)]', 'shadow-[0_30px_90px_rgba(0,0,0,0.18)]',
'border border-[color-mix(in_srgb,var(--tf-border)_70%,white)]', 'border border-[color-mix(in_srgb,var(--tf-border)_55%,white)]',
].join(' ')} ].join(' ')}
/> />
<div <div
aria-hidden="true" aria-hidden="true"
className="absolute inset-y-[22px] left-1/2 w-px bg-[color-mix(in_srgb,var(--tf-border)_80%,white)]" className="absolute inset-y-[18px] left-1/2 w-px bg-[color-mix(in_srgb,black_22%,transparent)]"
/>
<div
aria-hidden="true"
className="absolute inset-y-[18px] left-1/2 w-[22px] -translate-x-1/2 bg-[radial-gradient(ellipse_at_center,rgba(0,0,0,0.12),transparent_70%)]"
/> />
<div <div
@@ -256,7 +283,27 @@ export const FlipBook: React.FC<FlipBookProps> = ({ title, sheets, className })
busy ? 'opacity-0 pointer-events-none' : 'opacity-100', busy ? 'opacity-0 pointer-events-none' : 'opacity-100',
].join(' ')} ].join(' ')}
> >
<PageHalf side="left">{currentSheet?.back ?? currentSheet?.front}</PageHalf> <div
className={[
'absolute inset-y-0 left-0 w-1/2 overflow-hidden rounded-l-[22px]',
'opacity-60',
'[filter:blur(2.2px)_contrast(0.92)_saturate(0.9)]',
].join(' ')}
aria-hidden="true"
>
<div className="h-full bg-transparent">
<div className="h-full p-[clamp(22px,2.6vw,34px)]">{previousSheet?.front ?? currentSheet?.front}</div>
</div>
<div className="pointer-events-none absolute inset-0 bg-[linear-gradient(to_right,rgba(255,255,255,0.92),rgba(255,255,255,0.4)_55%,rgba(255,255,255,0))]" />
</div>
<div className="pointer-events-none absolute bottom-4 left-6 z-[65] text-[10px] font-[var(--tf-font-ui)] tracking-[0.18em] text-[color-mix(in_srgb,var(--tf-text)_45%,white)]">
{String(Math.max(1, currentIndex * 2)).padStart(2, '0')}
</div>
<div className="pointer-events-none absolute bottom-4 right-6 z-[65] text-[10px] font-[var(--tf-font-ui)] tracking-[0.18em] text-[color-mix(in_srgb,var(--tf-text)_45%,white)]">
{String(Math.max(2, currentIndex * 2 + 1)).padStart(2, '0')}
</div>
<PageHalf side="right">{currentSheet?.front}</PageHalf> <PageHalf side="right">{currentSheet?.front}</PageHalf>
</div> </div>
@@ -293,9 +340,9 @@ export const FlipBook: React.FC<FlipBookProps> = ({ title, sheets, className })
disabled={!canPrev} disabled={!canPrev}
className={[ className={[
'inline-flex items-center justify-center rounded-full border px-4 py-2 text-sm transition', 'inline-flex items-center justify-center rounded-full border px-4 py-2 text-sm transition',
'border-[var(--tf-border)] bg-[color-mix(in_srgb,var(--tf-bg)_50%,white)]', 'border-[color-mix(in_srgb,var(--tf-border)_70%,white)] bg-[color-mix(in_srgb,white_76%,var(--tf-bg))]',
canPrev canPrev
? 'text-[var(--tf-text)] hover:bg-[color-mix(in_srgb,var(--tf-bg)_34%,white)]' ? 'text-[var(--tf-text)] hover:bg-[color-mix(in_srgb,white_64%,var(--tf-bg))]'
: 'text-[var(--tf-text-subtle)] opacity-60 cursor-not-allowed', : 'text-[var(--tf-text-subtle)] opacity-60 cursor-not-allowed',
].join(' ')} ].join(' ')}
aria-label="上一页" aria-label="上一页"
@@ -303,8 +350,8 @@ export const FlipBook: React.FC<FlipBookProps> = ({ title, sheets, className })
Prev Prev
</button> </button>
<div className="min-w-[88px] text-center text-xs font-[var(--tf-font-ui)] tracking-wide text-[var(--tf-text-subtle)]"> <div className="min-w-[120px] text-center text-xs font-[var(--tf-font-ui)] tracking-[0.16em] text-[var(--tf-text-subtle)]">
{progressLabel} ISSUE 01 · {progressLabel}
</div> </div>
<button <button
@@ -313,9 +360,9 @@ export const FlipBook: React.FC<FlipBookProps> = ({ title, sheets, className })
disabled={!canNext} disabled={!canNext}
className={[ className={[
'inline-flex items-center justify-center rounded-full border px-4 py-2 text-sm transition', 'inline-flex items-center justify-center rounded-full border px-4 py-2 text-sm transition',
'border-[var(--tf-border)] bg-[color-mix(in_srgb,var(--tf-bg)_50%,white)]', 'border-[color-mix(in_srgb,var(--tf-border)_70%,white)] bg-[color-mix(in_srgb,white_76%,var(--tf-bg))]',
canNext canNext
? 'text-[var(--tf-text)] hover:bg-[color-mix(in_srgb,var(--tf-bg)_34%,white)]' ? 'text-[var(--tf-text)] hover:bg-[color-mix(in_srgb,white_64%,var(--tf-bg))]'
: 'text-[var(--tf-text-subtle)] opacity-60 cursor-not-allowed', : 'text-[var(--tf-text-subtle)] opacity-60 cursor-not-allowed',
].join(' ')} ].join(' ')}
aria-label="下一页" aria-label="下一页"

View File

@@ -14,11 +14,18 @@ const BookPage: React.FC<{ children: React.ReactNode; align?: 'center' | 'top' }
className={[ className={[
'h-full', 'h-full',
'w-full', 'w-full',
'px-[clamp(6px,1vw,10px)]', align === 'top' ? 'pt-[clamp(8px,1.6vw,22px)]' : 'flex items-center',
align === 'top' ? 'pt-[clamp(6px,1.4vw,18px)]' : 'flex items-center',
].join(' ')} ].join(' ')}
> >
<div className="w-full max-w-[40ch]">{children}</div> <div className="w-full max-w-[46ch]">{children}</div>
</div>
)
}
const Kicker: React.FC<{ children: React.ReactNode }> = ({ children }) => {
return (
<div className="text-[11px] font-[var(--tf-font-ui)] tracking-[0.22em] text-[var(--tf-text-subtle)]">
{children}
</div> </div>
) )
} }
@@ -33,8 +40,8 @@ const SectionTitle: React.FC<{ children: React.ReactNode; serif?: boolean; cente
className={[ className={[
serif ? 'font-[var(--tf-font-serif)]' : 'font-medium', serif ? 'font-[var(--tf-font-serif)]' : 'font-medium',
center ? 'text-center' : 'text-left', center ? 'text-center' : 'text-left',
'text-[clamp(22px,2.4vw,34px)]', 'text-[clamp(22px,2.5vw,36px)]',
'leading-[1.18]', 'leading-[1.14]',
'tracking-tight', 'tracking-tight',
'text-[var(--tf-text)]', 'text-[var(--tf-text)]',
].join(' ')} ].join(' ')}
@@ -44,6 +51,12 @@ const SectionTitle: React.FC<{ children: React.ReactNode; serif?: boolean; cente
) )
} }
const BodyText: React.FC<{ children: React.ReactNode }> = ({ children }) => {
return (
<p className="text-[clamp(14px,1.3vw,16px)] leading-[1.95] text-[var(--tf-text-muted)]">{children}</p>
)
}
const LastPage: React.FC<{ entries: Entry[] }> = ({ entries }) => { const LastPage: React.FC<{ entries: Entry[] }> = ({ entries }) => {
return ( return (
<div className="flex h-full flex-col justify-between"> <div className="flex h-full flex-col justify-between">
@@ -107,19 +120,22 @@ export const Home: React.FC = () => {
id: 'section-01', id: 'section-01',
front: ( front: (
<BookPage> <BookPage>
<h1 className="font-[var(--tf-font-serif)] font-medium text-[clamp(36px,4.2vw,52px)] leading-[1.06] tracking-tight text-[var(--tf-text)]"> <Kicker>SECTION 01 · WORLDVIEW</Kicker>
<h1 className="mt-4 font-[var(--tf-font-serif)] font-medium text-[clamp(38px,4.4vw,56px)] leading-[1.04] tracking-tight text-[var(--tf-text)]">
</h1> </h1>
<p className="mt-8 text-[clamp(16px,1.5vw,18px)] leading-[1.85] text-[var(--tf-text-muted)]"> <div className="mt-10 max-w-[40ch]">
<p className="text-[clamp(16px,1.5vw,18px)] leading-[1.9] text-[var(--tf-text-muted)]">
<br />
<br />
</p>
<p className="mt-6 text-[clamp(14px,1.3vw,16px)] leading-[1.85] text-[var(--tf-text-subtle)]"> </p>
<p className="mt-8 text-[clamp(14px,1.3vw,16px)] leading-[1.9] text-[var(--tf-text-subtle)]">
<br />
<br />
</p>
</p>
</div>
</BookPage> </BookPage>
), ),
}, },
@@ -127,20 +143,24 @@ export const Home: React.FC = () => {
id: 'section-02', id: 'section-02',
front: ( front: (
<BookPage align="top"> <BookPage align="top">
<SectionTitle></SectionTitle> <Kicker>SECTION 02 · DECISION UNCERTAINTY</Kicker>
<div className="mt-8 grid gap-4"> <div className="mt-4">
<SectionTitle></SectionTitle>
</div>
<div className="mt-10 grid gap-4">
{[ {[
'现在是否适合进入这个国家或区域?', '现在是否适合进入这个国家或区域?',
'合规风险会不会在后期集中爆发?', '合规风险会不会在后期集中爆发?',
'当前的增长模式,是否能复制到下一个市场?', '当前的增长模式,是否能复制到下一个市场?',
'如果业务受挫,是战略判断错误,还是信息不足?', '如果业务受挫,是战略判断错误,还是信息不足?',
'是否存在尚未被识别的关键风险?', '是否存在尚未被识别的关键风险?',
].map((item) => ( ].map((item, index) => (
<div <div key={item} className="border-l-2 border-[color-mix(in_srgb,var(--tf-border)_75%,white)] pl-4">
key={item} <div className="text-[10px] font-[var(--tf-font-ui)] tracking-[0.22em] text-[var(--tf-text-subtle)]">
className="rounded-2xl border border-[var(--tf-border)] bg-[color-mix(in_srgb,var(--tf-bg)_58%,white)] p-4" Q{String(index + 1).padStart(2, '0')}
> </div>
<p className="text-[clamp(14px,1.3vw,16px)] leading-[1.9] text-[var(--tf-text-muted)]">{item}</p> <p className="mt-2 text-[clamp(14px,1.3vw,16px)] leading-[1.95] text-[var(--tf-text-muted)]">{item}</p>
</div> </div>
))} ))}
</div> </div>
@@ -152,13 +172,14 @@ export const Home: React.FC = () => {
front: ( front: (
<BookPage> <BookPage>
<div className="text-center"> <div className="text-center">
<div className="mx-auto max-w-[34ch]"> <Kicker>SECTION 03 · CORE THESIS</Kicker>
<p className="font-[var(--tf-font-serif)] text-[clamp(28px,3.2vw,40px)] leading-[1.42] tracking-tight text-[var(--tf-text)]"> <div className="mx-auto mt-8 max-w-[34ch]">
<p className="font-[var(--tf-font-serif)] text-[clamp(30px,3.4vw,44px)] leading-[1.4] tracking-tight text-[var(--tf-text)]">
<br /> <br />
</p> </p>
<p className="mt-8 text-[clamp(14px,1.3vw,16px)] leading-[1.9] text-[var(--tf-text-subtle)]"> <p className="mt-10 text-[clamp(14px,1.3vw,16px)] leading-[1.95] text-[var(--tf-text-subtle)]">
<br /> <br />
@@ -172,21 +193,29 @@ export const Home: React.FC = () => {
id: 'section-04', id: 'section-04',
front: ( front: (
<BookPage align="top"> <BookPage align="top">
<SectionTitle></SectionTitle> <Kicker>SECTION 04 · METHODOLOGY</Kicker>
<div className="mt-8 space-y-6 text-[clamp(14px,1.3vw,16px)] leading-[1.9] text-[var(--tf-text-muted)]"> <div className="mt-4">
<p> <SectionTitle></SectionTitle>
</div>
<div className="mt-10 space-y-7">
<BodyText>
<br /> <br />
</p> </BodyText>
<p> <BodyText>
<br /> <br />
</p> </BodyText>
</div> </div>
<div className="mt-10 border-t border-[color-mix(in_srgb,var(--tf-border)_60%,white)] pt-6">
<p className="font-[var(--tf-font-serif)] text-[clamp(16px,1.5vw,18px)] tracking-tight text-[var(--tf-text)]"> <div className="mt-12 border-t border-[color-mix(in_srgb,var(--tf-border)_60%,white)] pt-6">
<div className="text-[11px] font-[var(--tf-font-ui)] tracking-[0.22em] text-[var(--tf-text-subtle)]">
METHOD
</div>
<p className="mt-2 font-[var(--tf-font-serif)] text-[clamp(16px,1.5vw,18px)] tracking-tight text-[var(--tf-text)]">
Compliance as Growth Compliance as Growth
</p> </p>
</div> </div>
@@ -197,14 +226,20 @@ export const Home: React.FC = () => {
id: 'section-05', id: 'section-05',
front: ( front: (
<BookPage align="top"> <BookPage align="top">
<SectionTitle></SectionTitle> <Kicker>SECTION 05 · SYSTEM OVERVIEW</Kicker>
<p className="mt-6 text-[clamp(14px,1.3vw,16px)] leading-[1.9] text-[var(--tf-text-muted)]"> <div className="mt-4">
TuringFlow <SectionTitle></SectionTitle>
<br /> </div>
</p>
<div className="mt-8 grid gap-3 sm:grid-cols-2"> <div className="mt-8">
<BodyText>
TuringFlow
<br />
</BodyText>
</div>
<div className="mt-10 grid gap-4 sm:grid-cols-2">
{[ {[
{ title: 'G-Comply', desc: '我如何合法进入并持续运营一个海外市场?' }, { title: 'G-Comply', desc: '我如何合法进入并持续运营一个海外市场?' },
{ title: 'G-Growth', desc: '我如何在合规前提下,实现可持续且可复制的增长?' }, { title: 'G-Growth', desc: '我如何在合规前提下,实现可持续且可复制的增长?' },
@@ -214,38 +249,50 @@ export const Home: React.FC = () => {
<div <div
key={item.title} key={item.title}
className={[ className={[
'rounded-2xl border border-[var(--tf-border)]', 'rounded-2xl border border-[color-mix(in_srgb,var(--tf-border)_70%,white)]',
'bg-[color-mix(in_srgb,var(--tf-bg)_58%,white)]', 'bg-[color-mix(in_srgb,white_82%,var(--tf-bg))]',
'p-4', 'p-4',
].join(' ')} ].join(' ')}
> >
<div className="text-sm font-[var(--tf-font-ui)] font-semibold tracking-tight text-[var(--tf-text)]"> <div className="text-[11px] font-[var(--tf-font-ui)] tracking-[0.22em] text-[var(--tf-text-subtle)]">
MODULE
</div>
<div className="mt-2 text-sm font-[var(--tf-font-ui)] font-semibold tracking-tight text-[var(--tf-text)]">
{item.title} {item.title}
</div> </div>
<p className="mt-2 text-xs leading-[1.75] text-[var(--tf-text-muted)]">{item.desc}</p> <p className="mt-2 text-xs leading-[1.85] text-[var(--tf-text-muted)]">{item.desc}</p>
</div> </div>
))} ))}
</div> </div>
</BookPage> </BookPage>
), ),
}, },
{ {
id: 'section-06', id: 'section-06',
front: ( front: (
<BookPage align="top"> <BookPage align="top">
<SectionTitle serif>Discovery</SectionTitle> <Kicker>SECTION 06 · DISCOVERY</Kicker>
<p className="mt-6 text-[clamp(14px,1.3vw,16px)] leading-[1.9] text-[var(--tf-text-muted)]"> <div className="mt-4">
<SectionTitle serif>Discovery</SectionTitle>
<br /> </div>
<div className="mt-8">
</p> <BodyText>
<br />
</BodyText>
</div>
<div className="mt-8 flex flex-wrap items-center gap-2 text-xs font-[var(--tf-font-ui)] text-[var(--tf-accent-link)]"> <div className="mt-10">
{['每日晨报', '政策研究', '行业趋势', '深度报告'].map((tag) => ( <div className="text-[11px] font-[var(--tf-font-ui)] tracking-[0.22em] text-[var(--tf-text-subtle)]">CONTENT</div>
<span key={tag} className="rounded-full bg-[var(--tf-accent-soft)] px-3 py-1"> <div className="mt-3 flex flex-wrap items-center gap-2 text-xs font-[var(--tf-font-ui)] text-[var(--tf-accent-link)]">
{tag} {['每日晨报', '政策研究', '行业趋势', '深度报告'].map((tag) => (
</span> <span key={tag} className="rounded-full bg-[var(--tf-accent-soft)] px-3 py-1">
))} {tag}
</span>
))}
</div>
</div> </div>
</BookPage> </BookPage>
), ),
@@ -254,17 +301,23 @@ export const Home: React.FC = () => {
id: 'section-07', id: 'section-07',
front: ( front: (
<BookPage align="top"> <BookPage align="top">
<SectionTitle></SectionTitle> <Kicker>SECTION 07 · MEASURABLE OUTCOME</Kicker>
<div className="mt-8 grid gap-4"> <div className="mt-4">
<SectionTitle></SectionTitle>
</div>
<div className="mt-10 grid gap-5">
{[ {[
'全球合规与市场进入决策周期显著缩短', '全球合规与市场进入决策周期显著缩短',
'关键风险提前识别与预警', '关键风险提前识别与预警',
'增长路径的可复制性明显提升', '增长路径的可复制性明显提升',
'跨市场决策一致性持续增强', '跨市场决策一致性持续增强',
].map((point) => ( ].map((point, index) => (
<div key={point} className="flex items-start gap-3"> <div key={point} className="grid grid-cols-[32px_1fr] gap-3">
<span aria-hidden="true" className="mt-2 h-2 w-2 rounded-full bg-[var(--tf-border)]" /> <div className="text-[10px] font-[var(--tf-font-ui)] tracking-[0.22em] text-[var(--tf-text-subtle)]">
<p className="text-[clamp(14px,1.3vw,16px)] leading-[1.9] text-[var(--tf-text-muted)]">{point}</p> {String(index + 1).padStart(2, '0')}
</div>
<p className="text-[clamp(14px,1.3vw,16px)] leading-[1.95] text-[var(--tf-text-muted)]">{point}</p>
</div> </div>
))} ))}
</div> </div>
@@ -275,21 +328,27 @@ export const Home: React.FC = () => {
id: 'section-08', id: 'section-08',
front: ( front: (
<BookPage align="top"> <BookPage align="top">
<SectionTitle></SectionTitle> <Kicker>SECTION 08 · TRUST</Kicker>
<p className="mt-6 text-[clamp(14px,1.3vw,16px)] leading-[1.9] text-[var(--tf-text-subtle)]"> <div className="mt-4">
<SectionTitle></SectionTitle>
</p> </div>
<div className="mt-8">
<BodyText></BodyText>
</div>
<div className="mt-8 grid grid-cols-3 gap-3"> <div className="mt-10">
{['Gov', 'Enterprise', 'Consortium', 'ThinkTank', 'Academia', 'Partner'].map((label) => ( <div className="text-[11px] font-[var(--tf-font-ui)] tracking-[0.22em] text-[var(--tf-text-subtle)]">SELECTED</div>
<div <div className="mt-4 grid grid-cols-3 gap-3">
key={label} {['Gov', 'Enterprise', 'Consortium', 'ThinkTank', 'Academia', 'Partner'].map((label) => (
className="rounded-xl border border-[color-mix(in_srgb,var(--tf-border)_65%,white)] bg-[color-mix(in_srgb,var(--tf-bg)_62%,white)] px-3 py-3 text-center text-[10px] font-[var(--tf-font-ui)] tracking-wide text-[var(--tf-text-subtle)] grayscale" <div
aria-label="Logo 占位" key={label}
> className="rounded-xl border border-[color-mix(in_srgb,var(--tf-border)_65%,white)] bg-[color-mix(in_srgb,white_86%,var(--tf-bg))] px-3 py-3 text-center text-[10px] font-[var(--tf-font-ui)] tracking-wide text-[var(--tf-text-subtle)] grayscale"
{label} aria-label="Logo 占位"
</div> >
))} {label}
</div>
))}
</div>
</div> </div>
</BookPage> </BookPage>
), ),
@@ -298,14 +357,20 @@ export const Home: React.FC = () => {
id: 'section-09', id: 'section-09',
front: ( front: (
<BookPage align="top"> <BookPage align="top">
<SectionTitle serif></SectionTitle> <Kicker>SECTION 09 · NEXT STEP</Kicker>
<div className="mt-8 grid gap-3"> <div className="mt-4">
<div className="rounded-2xl border border-[var(--tf-border)] bg-[color-mix(in_srgb,var(--tf-bg)_58%,white)] p-4"> <SectionTitle serif></SectionTitle>
<p className="text-[clamp(14px,1.3vw,16px)] leading-[1.85] text-[var(--tf-text-muted)]"></p> </div>
</div>
<div className="rounded-2xl border border-[var(--tf-border)] bg-[color-mix(in_srgb,var(--tf-bg)_58%,white)] p-4"> <div className="mt-10 grid gap-4">
<p className="text-[clamp(14px,1.3vw,16px)] leading-[1.85] text-[var(--tf-text-muted)]"></p> {['查看一份真实的全球决策示例', '与我们交流一个具体市场或业务场景'].map((line) => (
</div> <div
key={line}
className="rounded-2xl border border-[color-mix(in_srgb,var(--tf-border)_70%,white)] bg-[color-mix(in_srgb,white_86%,var(--tf-bg))] p-4"
>
<p className="text-[clamp(14px,1.3vw,16px)] leading-[1.95] text-[var(--tf-text-muted)]">{line}</p>
</div>
))}
</div> </div>
</BookPage> </BookPage>
), ),
@@ -322,10 +387,10 @@ export const Home: React.FC = () => {
<div className="relative overflow-hidden"> <div className="relative overflow-hidden">
<div <div
aria-hidden="true" aria-hidden="true"
className="pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(30,91,176,0.12),transparent_55%)]" className="pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(30,91,176,0.10),transparent_58%),radial-gradient(circle_at_bottom,rgba(17,17,17,0.06),transparent_55%)]"
/> />
<div className="mx-auto flex min-h-[calc(100vh-0px)] max-w-[1200px] items-center px-[clamp(18px,4vw,56px)] py-[clamp(28px,6vh,64px)]"> <div className="mx-auto flex min-h-[calc(100vh-0px)] max-w-[1200px] items-center px-[clamp(18px,4vw,56px)] py-[clamp(28px,6vh,64px)]">
<FlipBook title="TuringFlow" sheets={sheets} className="w-full" /> <FlipBook title="TuringFlow Magazine" sheets={sheets} className="w-full" />
</div> </div>
</div> </div>
) )