/* Tofai — 几何航线 / 冷静信号（独立模板） */
:root{
  --teal:#0d9488;--teal-deep:#0f766e;--ink:#0f2a28;--muted:#4b6b68;--line:#99f6e4;
  --panel:#f0fdfa;--signal:#14b8a6;--float-h:70px;--safe:env(safe-area-inset-bottom,0px);
  --display:"DIN Alternate","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --body:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --mono:"Cascadia Mono","Consolas","Microsoft YaHei",monospace;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--body);color:var(--ink);line-height:1.65;
  background:
    linear-gradient(90deg,rgba(13,148,136,.08) 0 48px,transparent 48px),
    repeating-linear-gradient(0deg,transparent,transparent 23px,rgba(153,246,228,.35) 24px),
    linear-gradient(180deg,#ecfeff 0%,#f0fdfa 30%,#f8fffd 100%);
  padding-bottom:calc(var(--float-h) + var(--safe) + 18px);
}
img{max-width:100%;display:block;height:auto}a{color:var(--teal-deep)}
.tf-frame{width:min(1080px,calc(100% - 32px));margin:0 auto;padding-left:12px}

.site-header{position:sticky;top:0;z-index:50;background:rgba(240,253,250,.92);backdrop-filter:blur(10px);border-bottom:2px solid var(--teal)}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:54px;gap:12px;position:relative}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand img{width:34px;height:34px;border-radius:4px;outline:2px solid var(--teal)}
.brand span{font-family:var(--display);font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.95rem}
.brand b{display:block;font-size:.65rem;font-weight:600;color:var(--muted);letter-spacing:.2em}
.nav-toggle{margin-left:auto;width:40px;height:40px;border:2px solid var(--teal);background:#fff;cursor:pointer;border-radius:2px}
.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{display:block;width:16px;height:2px;background:var(--teal-deep);margin:0 auto;position:relative}
.nav-toggle-bars::before,.nav-toggle-bars::after{content:"";position:absolute;left:0}
.nav-toggle-bars::before{top:-5px}.nav-toggle-bars::after{top:5px}
.nav-open .nav-toggle-bars{background:transparent}
.nav-open .nav-toggle-bars::before{top:0;transform:rotate(45deg)}
.nav-open .nav-toggle-bars::after{top:0;transform:rotate(-45deg)}
.nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#fff;border:2px solid var(--teal);z-index:60}
.nav-open .nav-links{display:flex}
.nav-links a{padding:12px 14px;text-decoration:none;color:var(--muted);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.85rem}
.nav-links a.active,.nav-links a:hover{background:var(--panel);color:var(--teal-deep)}
@media(min-width:768px){
  .nav-toggle{display:none}
  .nav-links,.nav-open .nav-links{display:flex;flex-direction:row;position:static;border:none;gap:0;background:transparent}
  .nav-links a{border:none;border-left:1px solid var(--line);padding:8px 12px}
}

.tf-hero{padding:32px 0 20px;display:grid;gap:24px}
.tf-signal{font-family:var(--mono);font-size:.75rem;letter-spacing:.16em;color:var(--teal-deep);display:inline-flex;align-items:center;gap:8px;margin-bottom:12px}
.tf-signal::before{content:"";width:10px;height:10px;background:var(--signal);box-shadow:0 0 0 4px rgba(20,184,166,.25);animation:tfPulse 1.6s infinite}
@keyframes tfPulse{0%,100%{opacity:1}50%{opacity:.45}}
.tf-hero h1{font-family:var(--display);font-size:clamp(1.9rem,5.5vw,2.7rem);margin:0 0 12px;letter-spacing:.04em;line-height:1.2}
.tf-hero .lead{margin:0 0 20px;color:var(--muted);max-width:38em}
.cta-row{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;font-weight:800;text-decoration:none!important;cursor:pointer;font-family:var(--display);letter-spacing:.04em;border:2px solid transparent;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));transition:transform .15s}
.btn:active{transform:translateY(1px)}
.btn-android{background:var(--teal);color:#fff}
.btn-ios{background:var(--ink);color:#fff}
.btn-ghost{background:#fff;color:var(--teal-deep);border-color:var(--teal)}
.tf-side{
  background:var(--ink);color:#ecfeff;padding:22px;position:relative;overflow:hidden;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%);
}
.tf-side::after{content:"TOFAI";position:absolute;right:-8px;bottom:-10px;font-size:4rem;font-family:var(--display);opacity:.12;letter-spacing:.2em}
.tf-side img{width:72px;height:72px;border-radius:4px;margin-bottom:12px;outline:2px solid var(--signal)}
.tf-side h3{margin:0 0 6px;font-family:var(--display);letter-spacing:.1em}
.tf-side p{margin:0;opacity:.85;font-size:.9rem}
.tf-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;font-family:var(--mono);font-size:.72rem}

.tf-section{padding:36px 0}
.tf-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px;border-bottom:2px solid var(--teal);padding-bottom:10px}
.tf-head h2{margin:0;font-family:var(--display);font-size:clamp(1.3rem,3.5vw,1.7rem);letter-spacing:.06em}
.tf-head span{font-family:var(--mono);font-size:.75rem;color:var(--muted)}
.tf-panel{background:rgba(255,255,255,.85);border:1px solid var(--line);border-left:4px solid var(--teal);padding:20px}
.tf-panel h2,.tf-panel h3{font-family:var(--display);letter-spacing:.04em}
.tf-panel p,.tf-panel li{color:var(--muted)}

.tf-timeline{display:grid;gap:0;border-left:2px solid var(--teal);margin-left:12px}
.tf-node{padding:14px 0 18px 22px;position:relative}
.tf-node::before{content:"";position:absolute;left:-7px;top:18px;width:12px;height:12px;background:var(--signal);border:2px solid #fff;box-shadow:0 0 0 2px var(--teal)}
.tf-node h3{margin:0 0 4px;font-family:var(--display)}.tf-node p{margin:0;color:var(--muted);font-size:.92rem}

.tf-shots{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tf-shot{border:2px solid var(--teal);background:#fff}
.tf-shot img{width:100%;aspect-ratio:9/16;object-fit:cover;background:var(--panel)}
.tf-shot figcaption{padding:8px 10px;font-family:var(--mono);font-size:.75rem;color:var(--teal-deep);border-top:1px solid var(--line)}

.tf-steps{display:grid;gap:10px}
.tf-step{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:14px;background:#fff;border:1px solid var(--line)}
.tf-step i{font-style:normal;font-family:var(--mono);display:grid;place-items:center;background:var(--teal);color:#fff;font-weight:800}
.tf-step h3{margin:0 0 4px}.tf-step p{margin:0;color:var(--muted);font-size:.92rem}

.tf-tags{display:flex;flex-wrap:wrap;gap:8px}
.tf-tags a{padding:8px 12px;border:1px solid var(--teal);color:var(--ink);text-decoration:none;font-family:var(--mono);font-size:.8rem;background:#fff}
.tf-tags a:hover{background:var(--teal);color:#fff}

.faq details{background:#fff;border:1px solid var(--line);border-left:3px solid var(--teal);padding:12px 14px;margin-bottom:8px}
.faq summary{cursor:pointer;font-weight:700;font-family:var(--display)}.faq p{margin:8px 0 0;color:var(--muted)}
.notice{margin-top:14px;padding:12px 14px;border:1px solid #fdba74;background:#fff7ed;color:#9a3412;font-size:.9rem}

.site-footer{margin-top:20px;padding:24px 0 16px;border-top:2px solid var(--teal)}
.disclaimer{padding:12px 14px;border:2px solid #fb7185;background:#fff1f2;color:#9f1239;font-weight:800;text-align:center;margin-bottom:12px;font-family:var(--display)}
.stats-line{text-align:center;margin-bottom:10px;font-family:var(--mono);font-size:.85rem}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 12px;margin-bottom:8px}
.footer-links a{color:var(--muted);font-size:.82rem;font-family:var(--mono)}
.copyright{text-align:center;color:var(--muted);font-size:.78rem}

.float-bar{position:fixed;left:0;right:0;bottom:0;z-index:100;transform:translateY(100%);transition:transform .22s linear;padding:8px 10px calc(8px + var(--safe));background:rgba(15,42,40,.94);border-top:2px solid var(--signal)}
.float-bar.show{transform:translateY(0)}
.float-inner{width:min(520px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.float-bar .btn{min-height:44px;clip-path:none;border-radius:2px}
.float-bar .btn-android{background:var(--signal);color:#042f2e}
.float-bar .btn-ios{background:#ecfeff;color:var(--ink)}

.breadcrumb{padding:14px 0 0;font-family:var(--mono);font-size:.78rem;color:var(--muted)}
.content-block{background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);padding:18px;margin:12px 0}
.related-box{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}

@media(min-width:768px){
  .tf-hero{grid-template-columns:1.2fr .8fr;align-items:center}
  .tf-shots{grid-template-columns:repeat(4,1fr)}
  .tf-steps{grid-template-columns:repeat(3,1fr)}
}