/* Original tide artwork. No external fonts, textures or animation libraries. */
:root { --tide-night:#111d27; --tide-text:#e6edf3; --tide-muted:#9cacb9; }
.tide-stage { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 82% 74%,#28475770,transparent 59%),linear-gradient(145deg,#15242f,#101b24 67%); color:var(--tide-text); }
.tide-canvas { position:absolute; inset:0; width:100%; height:100%; z-index:-2; pointer-events:none; }
.tide-stage::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,#111d27a6,transparent 72%),linear-gradient(0deg,#101a2350,transparent 30%); }
.entry-body { margin:0; min-width:320px; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; -webkit-font-smoothing:antialiased; background:var(--tide-night); }
.entry { box-sizing:border-box; min-height:100svh; padding:0 clamp(24px,6.2vw,110px); display:flex; flex-direction:column; }
.entry * { box-sizing:border-box; }
.entry-top { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:34px 0; border-bottom:1px solid #a2b5c213; }
.tide-brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:#dce7ee; }
.tide-emblem { display:grid; place-items:center; width:38px; height:38px; border:1px solid #8ba8ba35; background:linear-gradient(150deg,#56788c26,#304c5d16); border-radius:10px; box-shadow:0 1px 0 #ffffff0d inset; }
.tide-emblem svg { width:23px; height:23px; }
.tide-brand strong { display:block; font-size:14px; font-weight:550; letter-spacing:.03em; }
.tide-brand small { display:block; margin-top:4px; color:#849bab; font:8px ui-monospace,monospace; letter-spacing:.14em; }
.entry-top-note { display:flex; align-items:center; gap:10px; color:#92a8b7; font-size:11px; letter-spacing:.04em; }
.entry-top-note::before { content:""; width:4px; height:4px; border-radius:50%; background:#88afc3; box-shadow:0 0 0 4px #94c8e00a; }
.entry-copy { position:relative; width:min(680px,100%); padding:clamp(60px,11vh,140px) 0 55px; }
.entry-kicker { display:flex; align-items:center; gap:14px; margin:0 0 26px; color:#93aebe; font:10px ui-monospace,monospace; letter-spacing:.18em; }
.entry-kicker::before { content:""; display:block; width:27px; height:1px; background:#65899e; }
.entry h1 { color:#e9eff4; margin:0; font-size:clamp(40px,5vw,74px); line-height:1.32; letter-spacing:-.055em; font-weight:470; }
.entry h1 span { color:#9bb4c6; }
.entry-description { max-width:370px; margin:25px 0 31px; color:#a5b4c0; font-size:13px; font-weight:400; line-height:1.95; }
.entry-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.tide-enter { display:inline-flex; align-items:center; gap:29px; min-height:48px; padding:14px 20px; color:#e6f0f7; background:linear-gradient(180deg,#3f596c,#2c4253); border:1px solid #7794a761; border-radius:8px; font:500 13px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif; text-decoration:none; cursor:pointer; box-shadow:0 1px 0 #e2f1ff21 inset,0 7px 25px #00000017; transition:background 180ms ease,border-color 180ms ease,box-shadow 180ms ease,transform 150ms ease; }
.tide-enter svg { width:16px; height:16px; transition:transform 180ms ease; }
.tide-link { padding:10px 0; border:0; background:none; color:#a0b5c4; font:11px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif; text-decoration:none; cursor:pointer; transition:color 150ms; }
.entry-meta { display:flex; gap:22px; margin-top:36px; color:#829baa; font-size:10px; letter-spacing:.06em; }
.entry-meta span+span { padding-left:22px; border-left:1px solid #7794a737; }
.entry-bottom { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:auto; padding:25px 0; border-top:1px solid #a2b5c213; font-size:10px; color:#839aa9; letter-spacing:.05em; }
.entry-bottom a { color:#a2b7c5; text-decoration:none; }
.entry-coordinate { position:absolute; right:6.2vw; top:42%; display:grid; gap:8px; color:#779aac; font:8px ui-monospace,monospace; letter-spacing:.15em; }
.entry-coordinate::before { content:"+"; position:absolute; top:-25px; right:0; font-size:14px; color:#7090a0; }
.entry-preview-label { display:inline-block; border:1px solid #7189984d; border-radius:4px; padding:3px 6px; font-size:9px; margin-right:8px; }
.tide-stage a:focus-visible,.tide-stage button:focus-visible { outline:2px solid #9bc6de; outline-offset:5px; }
.tide-enter:active { transform:translateY(1px); }
.loading-layer.tide-wait { position:fixed; inset:0; z-index:50; display:grid; place-items:center; background:linear-gradient(130deg,#14232bf2,#111e28ed); backdrop-filter:blur(12px); animation:wait-appear 180ms ease 120ms backwards; }
.tide-wait::after { background:radial-gradient(ellipse at 50% 40%,#12212b80,transparent 75%); }
.tide-wait .wait-content { width:min(440px,calc(100% - 48px)); margin-top:-5vh; padding:32px 0; text-align:center; }
.wait-symbol { display:block; width:48px; height:38px; margin:0 auto 27px; color:#94b3c8; }
.wait-eyebrow { margin:0 0 14px; color:#849dad; font:9px ui-monospace,monospace; letter-spacing:.2em; }
.wait-title { display:block; font-size:24px; font-weight:460; letter-spacing:.025em; color:#e0e9ef; }
.wait-note { display:block; margin-top:15px; font-size:12px; color:#98aebb; line-height:1.9; }
.wait-track { position:relative; overflow:hidden; width:152px; height:1px; margin:32px auto 0; background:#8badc322; }
.wait-track::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,#a2c2d5,transparent); animation:tide-progress 2.2s ease-in-out infinite; }
.wait-caption { position:absolute; bottom:28px; left:24px; right:24px; text-align:center; color:#7893a4; font:9px ui-monospace,monospace; letter-spacing:.14em; }
.tide-wait.hidden { display:none !important; }
.demo-close { position:absolute; right:30px; top:27px; border:1px solid #718c9e55; padding:9px 12px; color:#b4c6d1; border-radius:6px; background:#2e46563d; font-size:11px; cursor:pointer; }
.entry-copy { animation:entry-in 650ms cubic-bezier(.2,.7,.2,1) both; }
@keyframes entry-in { from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none} }
@keyframes wait-appear { from{opacity:0}to{opacity:1} }
@keyframes tide-progress { from{transform:translateX(-100%)}to{transform:translateX(100%)} }
@media(hover:hover) { .tide-enter:hover { border-color:#91b6ce8c; background:linear-gradient(180deg,#496b82,#334f63); box-shadow:0 1px 0 #e2f1ff30 inset,0 5px 28px #78b2d117; } .tide-enter:hover svg{transform:translateX(2px)} .tide-link:hover,.entry-bottom a:hover{color:#deebf3} }
@media(max-width:700px) { .entry { min-height:100svh; } .entry-top { padding:25px 0; } .entry-top-note{font-size:9px;} .entry-copy{padding-top:75px;padding-bottom:75px} .entry h1{font-size:43px;} .entry-description{font-size:12px;max-width:295px;} .entry-coordinate{display:none;} .entry-actions{gap:22px;} .entry-bottom{font-size:9px;align-items:flex-start;line-height:1.7;} .entry-meta{gap:15px;font-size:9px}.entry-meta span+span{padding-left:15px}.tide-stage::after{background:linear-gradient(180deg,#111d2730,#111d2730 70%,#111d27a0)} }
@media(max-width:370px) { .entry h1{font-size:37px} .entry-top-note{display:none} .entry-actions{gap:12px} }
@media(prefers-reduced-motion:reduce) { .entry *, .tide-wait, .tide-wait *,.tide-wait *::after { animation:none !important; transition:none !important; } }

dialog.tide-wait{max-width:none;max-height:none;width:100%;height:100%;margin:0;padding:0;border:0;}dialog::backdrop{background:#111d27;}

.tide-brand { min-width:0; }
.tide-brand small { max-width:240px; letter-spacing:.025em; line-height:1.5; }
.entry-kicker { letter-spacing:.075em; }
@media(max-width:370px){.workspace-page .entry-top{flex-wrap:wrap;gap:8px}.entry-kicker{font-size:8px;letter-spacing:.03em}}

/* The moving wave surface resolves into three quiet header lines. */
.topbar { position:relative; }
.tide-trace { position:absolute; left:0; bottom:0; width:100%; height:32px; pointer-events:none; }
.journey-active .tide-trace { visibility:hidden; }
.tide-journey { position:fixed; inset:0; z-index:90; overflow:hidden; pointer-events:auto; }
.journey-skip { position:absolute;right:clamp(20px,3vw,44px);top:24px;min-height:40px;padding:9px 15px;border:1px solid #92aebf60;border-radius:7px;background:#152632c9;color:#cedfe8;font:12px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;cursor:pointer;transition:background .18s,border-color .18s; }
.journey-skip:hover { background:#2a4353;border-color:#9fbecfa0; }
.journey-skip:focus-visible { outline:2px solid #b4d1e1;outline-offset:4px; }
.tide-motion-paused .company-tide span,.tide-motion-paused .wait-track::after,.tide-motion-paused .workspace-option::after { animation-play-state:paused!important; }
.tide-journey canvas { display:block; width:100%; height:100%; }
.journey-wordmark { position:absolute; left:50%; top:47%; color:#d0e1eb; font:400 clamp(27px,3.3vw,43px)/1.4 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif; letter-spacing:.2em; white-space:nowrap; animation:journey-pass 2600ms cubic-bezier(.42,0,.2,1) both; }
.journey-wait-label { position:absolute; left:0; right:0; top:53%; text-align:center; font-size:12px; letter-spacing:.04em; color:#a8bfce; opacity:0; transition:opacity 200ms; }
.journey-waiting .journey-wait-label { opacity:1; }
.journey-arriving > main { animation:journey-land 1800ms cubic-bezier(.2,.7,.2,1) both; }
@keyframes journey-pass { 0% { opacity:0; transform:translate(-50%,-50%) perspective(650px) translateZ(-170px); filter:blur(2px); } 18% { opacity:.8; filter:blur(0); } 48% { opacity:.7; } 78%,100% { opacity:0; transform:translate(-50%,-50%) perspective(650px) translateZ(270px); filter:blur(3px); } }
@keyframes journey-land { from { transform:scale(.992) translateY(3px); } to { transform:none; } }
@media(prefers-reduced-motion:reduce) { .tide-journey { display:none; } .journey-arriving > main { animation:none; } }
@media print { .tide-trace { display:none; } }
/* One slow colour field runs continuously across all three lines. Geometry stays still. */
:root { --tide-a:#8fb1cc; --tide-b:#8ebdb1; --tide-c:#aba4c7; }
.tide-trace stop { transition:stop-color 900ms ease; }
.tide-stop-a { stop-color:var(--tide-a); }
.tide-stop-b { stop-color:var(--tide-b); }
.tide-stop-c { stop-color:var(--tide-c); }
@media(prefers-reduced-motion:reduce) { .tide-trace stop { transition:none; } }
.tide-brand .dc-company-logo { animation:company-mark-reveal 1000ms cubic-bezier(.2,.7,.2,1) both; }
@keyframes company-mark-reveal { from { opacity:0; clip-path:inset(0 100% 0 0); transform:translateY(2px); filter:blur(1px); } to { opacity:1; clip-path:inset(0); transform:none; filter:none; } }
@media(prefers-reduced-motion:reduce) { .tide-brand .dc-company-logo { animation:none; } }

/* Finite depth-of-field cue: the data-bound line remains on a sharp foreground layer. */
.tide-journey .journey-focus { position:absolute; inset:0; pointer-events:none; }
.journey-arriving .journey-scene:not(.no-depth) { animation:journey-scene-defocus 1800ms ease both; }
.journey-arriving .journey-focus { animation:journey-subject-focus 1800ms cubic-bezier(.2,.6,.25,1) both; }
.journey-arriving .filter-panel,
.journey-arriving #heroMetrics,
.journey-arriving .target-snapshot { animation:journey-context-focus 1800ms cubic-bezier(.2,.7,.2,1) both; }
@keyframes journey-scene-defocus { 0% { filter:blur(0); } 35% { filter:blur(1.6px); } 70% { filter:blur(.65px); } 100% { filter:blur(0); } }
@keyframes journey-subject-focus { 0% { filter:blur(0); } 22% { filter:blur(1.05px); } 68%,100% { filter:blur(0); } }
@keyframes journey-context-focus { 0% { filter:blur(2.4px); opacity:.68; } 42% { filter:blur(1.4px); opacity:.84; } 82%,100% { filter:blur(0); opacity:1; } }
@media(prefers-reduced-motion:reduce) {
  .tide-journey .journey-scene,
  .journey-arriving .journey-focus,
  .journey-arriving .filter-panel,
  .journey-arriving #heroMetrics,
  .journey-arriving .target-snapshot { animation:none !important; filter:none !important; opacity:1; }
}
