.canvas{
  position:relative;isolation:isolate;overflow:hidden;
  height:clamp(600px,calc(100vh - 180px),720px);
  padding:40px 48px;border-radius:var(--r-section);
  display:grid;grid-template-rows:auto 1fr;justify-items:center;
  background:var(--gradient-field);color:var(--text);
}
.canvas::before{content:"";position:absolute;inset:-14%;z-index:-1;background:radial-gradient(38% 34% at 66% 40%,var(--glow-lilac-a),var(--clear) 70%),radial-gradient(34% 30% at 22% 78%,var(--glow-pink-a),var(--clear) 72%);color:var(--text);opacity:.7}
.canvas-label{font-size:13.5px;letter-spacing:.08em;color:var(--accent-dark)}
.collage{align-self:center;display:grid;grid-template-columns:minmax(0,248fr) minmax(0,300fr);align-items:start;gap:12px;width:560px;max-width:100%}
.collage-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.collage-col.is-b{transform:translateY(28px)}
.tile{position:relative;min-width:0;border-radius:var(--r-float)}
.tile-cap{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-muted);letter-spacing:.02em}
.tile-cap code{font-family:var(--font-mono);font-size:11.5px;color:var(--accent-dark)}
.tile-phone{height:292px;display:grid;place-items:center;background:linear-gradient(155deg,var(--cell-deep-a),var(--cell-deep-b));color:var(--text);box-shadow:inset 0 1px 0 var(--white-faint),var(--shadow-tile)}
.phone{width:122px;height:240px;overflow:visible}
.phone-screen{opacity:.92}
.phone-body{fill:none;stroke:var(--white-line);stroke-width:1.6}
.phone-island{fill:var(--white-line)}
.phone-key{fill:none;stroke:var(--white-line);stroke-width:2;stroke-linecap:round}
.phone-arcs circle{fill:none;stroke:var(--white-faint);stroke-width:1.3}
.scr-a{stop-color:var(--screen-a)}
.scr-b{stop-color:var(--screen-b)}
.scr-c{stop-color:var(--screen-c)}
.tile-rules{height:236px;padding:20px 22px;background:var(--bg);color:var(--text);box-shadow:inset 0 0 0 1px var(--glass-edge),var(--shadow-tile)}
.rule-lines{position:relative;z-index:0;margin:16px 0 0;padding-left:12px;border-left:2px solid var(--bg-panel-2);list-style:none;font-family:var(--font-mono);font-size:12.5px;line-height:2.25}
.rule-lines li{white-space:nowrap}
.rk{color:var(--text);font-weight:var(--weight-medium)}
.rv,.rs,.rd{color:var(--text-muted)}
.rp{position:relative;color:var(--accent);font-weight:var(--weight-strong)}
.rp::before{content:"";position:absolute;inset:1px -4px;z-index:-1;border-radius:var(--r-small);background:var(--accent-wash)}
.tile-index{height:200px;padding:16px 14px 14px;background:var(--glass);color:var(--text);border:1px solid var(--glass-edge);box-shadow:var(--shadow-tile)}
.index-title{margin:2px 6px 10px;font-size:12px;color:var(--text-muted)}
.index-group{background:var(--bg);color:var(--text);border-radius:var(--r-group);overflow:hidden}
.index-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:10px 12px 10px 16px;font-size:14.5px;color:var(--text)}
.index-row+.index-row::before{content:"";position:absolute;top:0;left:16px;right:0;height:1px;background:var(--border)}
.index-row .ico{width:14px;height:14px;color:var(--text-muted)}
.index-row::after{content:"›";flex-shrink:0;color:var(--text-muted);font-size:20px;line-height:1}
.index-row:hover{background:var(--bg-panel);color:var(--accent)}
.index-row small{display:block;color:var(--text-muted);font-size:13px;margin-top:3px}
.tile-proto{height:228px;padding:20px 20px 22px;display:flex;flex-direction:column;justify-content:space-between;background:var(--glass);color:var(--text);border:1px solid var(--glass-edge);box-shadow:var(--shadow-tile)}
.chips,.fact-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.chip,.badge,.fact-pill{display:inline-flex;align-items:center;gap:7px;min-height:32px;max-width:100%;padding:5px 13px;border-radius:var(--r-pill);background:var(--chip-bg);color:var(--text);border:1px solid var(--glass-edge);font-size:13px;font-weight:var(--weight-medium);line-height:1.5;overflow-wrap:anywhere}
.fact-row{margin-top:22px}
.fact-pill{background:var(--bg-panel);color:var(--text-muted);border-color:var(--border);font-weight:var(--weight-regular)}
.badge{background:var(--accent-wash);color:var(--accent-dark);border-color:var(--clear)}
.badge-dot::before{content:"";width:6px;height:6px;flex-shrink:0;border-radius:var(--r-circle);background:var(--accent)}
.store{padding-top:28px;padding-bottom:160px}
.store-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.store-card{min-width:0;min-height:340px;padding:52px 52px 56px;border-radius:var(--r-section);background:var(--bg-panel);color:var(--text);display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.store-tag{font-size:13px;color:var(--text-muted)}
.store-card h2{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:28px;line-height:1.25;letter-spacing:var(--track-cjk)}
.store-card p{max-width:36em;font-size:15.5px;line-height:1.75;color:var(--text-muted)}
.store-link{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:var(--weight-medium);color:var(--accent)}
.store-link:hover{color:var(--accent-dark)}
.feature-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px}
.feature-selector{position:relative;isolation:isolate;overflow:hidden;grid-row:span 2;padding:44px;border-radius:var(--r-section);background:var(--bg);color:var(--text);border:1px solid var(--border)}
.feature-selector::before{content:"";position:absolute;inset:45% 0 0;z-index:-1;background:linear-gradient(var(--clear),var(--glow-lilac-a)),var(--gradient-field)}
.feature-selector h2{margin-bottom:32px}
.tab-list{display:flex;flex-wrap:wrap;gap:8px}
.tab-list[aria-orientation="vertical"]{flex-direction:column;align-items:stretch;gap:8px}
.tab-list [role="tab"]{position:relative;display:flex;align-items:center;min-height:48px;padding:12px 20px;text-align:left;background:var(--bg-panel);color:var(--text-muted);border-radius:var(--r-group);border:1px solid var(--clear)}
.tab-list [role="tab"]:hover{background:var(--bg-panel-2);color:var(--text)}
.tab-list [role="tab"][aria-selected="true"]{background:var(--bg);color:var(--accent);border-color:var(--border)}
.tab-list [role="tab"][aria-selected="true"]::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:var(--r-pill);background:var(--accent)}
.tab-panel{min-width:0;padding:40px;background:var(--bg-panel);color:var(--text);border-radius:var(--r-section)}
.tab-panel h3{margin-bottom:18px}
.tab-panel p{color:var(--text-muted);line-height:1.85}
.tab-panel pre{margin-bottom:0;background:var(--bg);color:var(--text)}
.settings-index{padding:40px;background:var(--bg-panel);color:var(--text);border-radius:var(--r-section)}
.settings-index h3{margin-bottom:24px}
.toc{position:sticky;top:80px;z-index:12;display:flex;align-items:center;flex-wrap:wrap;gap:8px;max-width:100%;padding:12px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--r-float)}
.toc a{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:var(--r-pill);font-size:14px;color:var(--text-muted)}
.toc a:hover,.toc a[aria-current="location"]{background:var(--accent-wash);color:var(--accent)}
.toc.is-static{position:static}
.faq-list{display:grid;gap:12px}
.faq-item{border:1px solid var(--border);border-radius:var(--r-float);background:var(--bg);color:var(--text)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;padding:22px 28px;list-style:none;font-weight:var(--weight-medium);cursor:pointer}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";flex-shrink:0;font-size:24px;font-weight:var(--weight-regular);color:var(--accent)}
.faq-item[open] summary::after{content:"−"}
.faq-answer{padding:0 28px 26px;color:var(--text-muted);line-height:1.85}
.term-card{padding:32px;background:var(--bg-panel);color:var(--text);border-radius:var(--r-float);min-width:0}
.term-card h3{font-size:23px;margin-top:14px}
.term-card p{margin-top:16px;color:var(--text-muted);line-height:1.8}
.term-card .term-key{font-family:var(--font-mono);font-size:13px;color:var(--accent-dark)}
.appstore-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;max-width:100%;padding:10px 23px;border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent);font-weight:var(--weight-medium)}
.appstore-button:hover{background:var(--accent-dark);color:var(--on-accent)}
.appstore-button .ico{width:25px;height:29px}
.appstore-copy{display:block;text-align:left;line-height:1.3}
.appstore-copy small{display:block;font-size:11px;font-weight:var(--weight-regular)}
.appstore-copy strong{display:block;font-size:16px;font-weight:var(--weight-medium);margin-top:2px}
.plat-grid{display:flex;flex-wrap:wrap;gap:24px;align-items:stretch}
.plat-card{position:relative;flex:1 1 calc(50% - 24px);min-width:0;max-width:100%;padding:40px;background:var(--bg-panel);color:var(--text);border:1px solid var(--clear);border-radius:var(--r-section)}
.plat-card h3{margin-top:12px}
.plat-card p{margin-top:16px;color:var(--text-muted);line-height:1.8}
.plat-card>.ico{width:28px;height:28px;color:var(--accent)}
.plat-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px}
.plat-actions .btn{font-size:14px;min-height:48px;padding-inline:20px}
html[data-visitor-os="ios"] .plat-card[data-plat="ios"]{order:-1;border-color:var(--accent-line)}
html[data-visitor-os="mac"] .plat-card[data-plat="mac"]{order:-1;border-color:var(--accent-line)}
html[data-visitor-os="windows"] .plat-card[data-plat="windows"]{order:-1;border-color:var(--accent-line)}
html[data-visitor-os="android"] .plat-card[data-plat="android"]{order:-1;border-color:var(--accent-line)}
html[data-visitor-os="linux"] .plat-card[data-plat="linux"]{order:-1;border-color:var(--accent-line)}
html[data-visitor-os="ios"] .plat-card[data-plat="ios"]::before,
html[data-visitor-os="mac"] .plat-card[data-plat="mac"]::before,
html[data-visitor-os="windows"] .plat-card[data-plat="windows"]::before,
html[data-visitor-os="android"] .plat-card[data-plat="android"]::before,
html[data-visitor-os="linux"] .plat-card[data-plat="linux"]::before{content:attr(data-mine);position:absolute;top:18px;right:20px;padding:4px 10px;background:var(--accent-wash);color:var(--accent-dark);border-radius:var(--r-pill);font-size:12px}
.wx-open-tip{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:80;width:calc(100% - 40px);max-width:520px;padding:22px 26px;background:var(--bg);color:var(--text);border:1px solid var(--accent-line);border-radius:var(--r-float);box-shadow:var(--shadow-pop);font-size:15px;line-height:1.8}
.wx-open-tip button{min-height:44px;padding:8px 16px;margin-top:10px;border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent)}
.shot-row{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:32px}
.official-shot{width:280px;max-width:100%;flex-shrink:0;margin:0}
.official-shot img{display:block;width:100%;height:auto;border-radius:var(--r-shot-limit)}
.official-shot img{border:1px solid var(--border)}
.official-shot figcaption{margin-top:14px;font-size:13px;line-height:1.7;color:var(--text-muted)}
.shot-placeholder{display:grid;place-items:center;width:100%;aspect-ratio:750 / 1334;border-radius:var(--r-shot-limit);border:1px solid var(--border);background:var(--bg-panel-2);color:var(--text-muted);font-family:var(--font-mono);font-size:14px}
.device-card{display:flex;align-items:flex-start;gap:24px;min-width:0;padding:32px;border-radius:var(--r-float);background:var(--bg-panel);color:var(--text)}
.device-card:hover{background:var(--bg-panel-2);color:var(--text)}
.device-card>.ico{width:36px;height:48px;color:var(--accent)}
.device-card strong{display:block;font-size:21px;font-weight:var(--weight-regular)}
.device-card p{margin-top:10px;color:var(--text-muted);font-size:14px;line-height:1.8}
.article-card{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:36px;background:var(--bg-panel);color:var(--text);border-radius:var(--r-section);min-width:0}
.article-card h3{font-size:24px;line-height:1.5}
.article-card h3 a{color:var(--text)}
.article-card h3 a:hover{color:var(--accent)}
.article-card p{font-size:15px;color:var(--text-muted);line-height:1.8}
.article-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--text-muted)}
.article-card>.store-link{margin-top:auto}
.callout{margin:24px 0;padding:24px 28px;background:var(--accent-wash);color:var(--text);border-left:3px solid var(--accent);border-radius:0 var(--r-group) var(--r-group) 0;line-height:1.85}
.callout p+p{margin-top:12px}
.callout-title{display:block;margin-bottom:8px;font-weight:var(--weight-medium)}
.end-store-card{display:block;padding:36px;margin-top:64px;background:var(--bg-panel);color:var(--text);border-radius:var(--r-section)}
.end-store-card p{margin-top:12px;color:var(--text-muted)}
.end-store-card .appstore-button{flex-shrink:0}
.table-scroll{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--border);border-radius:var(--r-group)}
.data-table{width:100%;border-collapse:collapse;background:var(--bg);color:var(--text);font-size:14px}
.data-table th,.data-table td,.prose table th,.prose table td{min-width:7em;padding:18px 20px;vertical-align:top;text-align:left;border-bottom:1px solid var(--border);overflow-wrap:normal;word-break:normal}
.data-table th,.prose table th{background:var(--bg-panel);color:var(--text);font-weight:var(--weight-medium)}
.data-table tr:last-child td{border-bottom:0}
.prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;min-width:0;border-collapse:collapse;overscroll-behavior-x:contain}
.data-table code{overflow-wrap:anywhere}
.dl-fab{position:fixed;right:24px;bottom:24px;z-index:25;display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 22px;border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-pop);font-size:14px;font-weight:var(--weight-medium)}
.dl-fab:hover{background:var(--accent-dark);color:var(--on-accent)}
.dl-fab .ico{width:20px;height:20px}
.preview-section{padding-top:80px;padding-bottom:80px}
.preview-section>.section-heading{margin-bottom:40px}
.preview-stack{display:grid;gap:24px}
.preview-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:20px}
.preview-type{display:grid;gap:28px}
.preview-caption{font-size:13px;color:var(--text-muted)}
.swatch-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.swatch{padding:12px;border:1px solid var(--border);border-radius:var(--r-group);background:var(--bg);color:var(--text);min-width:0}
.swatch span{display:block;height:64px;border-radius:var(--r-small);margin-bottom:10px;border:1px solid var(--border)}
.swatch code{font-size:11px}
.sw-bg{background:var(--bg)}
.sw-panel{background:var(--bg-panel)}
.sw-panel2{background:var(--bg-panel-2)}
.sw-border{background:var(--border)}
.sw-accent{background:var(--accent)}
.sw-accent-dark{background:var(--accent-dark)}
.sw-accent-light{background:var(--accent-light)}
.sw-accent-wash{background:var(--accent-wash)}
.sw-accent-ring{background:var(--accent-ring)}
.sw-accent-line{background:var(--accent-line)}
.sw-text{background:var(--text)}
.sw-muted{background:var(--text-muted)}
.sw-chev{background:var(--chev)}
.sw-success{background:var(--success)}
.sw-warn{background:var(--warn)}
.sw-error{background:var(--error)}
.sw-on-accent{background:var(--on-accent)}
.sw-pink{background:var(--glow-pink)}
.sw-lilac{background:var(--glow-lilac)}
.sw-blue{background:var(--glow-blue)}
.sw-pink-a{background:var(--glow-pink-a)}
.sw-lilac-a{background:var(--glow-lilac-a)}
.sw-blue-a{background:var(--glow-blue-a)}
.sw-mist{background:var(--mist)}
.sw-clear{background:var(--clear)}
.sw-cell-a{background:var(--cell-deep-a)}
.sw-cell-b{background:var(--cell-deep-b)}
.sw-screen-a{background:var(--screen-a)}
.sw-screen-b{background:var(--screen-b)}
.sw-screen-c{background:var(--screen-c)}
.sw-glass{background:var(--glass)}
.sw-glass-edge{background:var(--glass-edge)}
.sw-chip{background:var(--chip-bg)}
.sw-white-line{background:var(--white-line)}
.sw-white-faint{background:var(--white-faint)}
.sw-shade{background:var(--shade)}
.sw-shade-soft{background:var(--shade-soft)}
.sw-veil{background:var(--veil)}
.sw-gradient{background:var(--gradient-field)}
@media(min-width:1025px) and (max-width:1400px){
  .canvas{padding-inline:28px}
  .tile-rules{padding-inline:16px}
  .rule-lines{font-size:10.5px;padding-left:8px}
}
@media(max-width:1024px){
  .canvas{height:auto;padding:28px 14px 16px;border-radius:var(--r-section)}
  .collage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;width:100%;gap:10px;margin-top:20px}
  .collage-col{display:contents}
  .collage-col.is-b{transform:none}
  .tile-phone,.tile-rules,.tile-index,.tile-proto{height:auto;min-height:180px}
  .tile-phone{order:1}
  .tile-rules{order:2;padding:16px 14px}
  .tile-index{order:3;padding:12px 10px 10px}
  .tile-proto{order:4;padding:16px 14px;gap:18px}
  .phone{width:84px;height:166px}
  .rule-lines{font-size:10.5px;line-height:1.9;padding-left:8px}
  .rule-lines li{white-space:normal;overflow-wrap:anywhere}
  .index-row{min-height:38px;font-size:13px;padding:8px 8px 8px 12px}
  .index-row+.index-row::before{left:12px}
  .chip{min-height:28px;padding:4px 10px;font-size:12px}
  .store{padding-top:20px;padding-bottom:160px}
  .store-grid{grid-template-columns:minmax(0,1fr)}
  .store-card{min-height:0;padding:36px 28px 40px;border-radius:var(--r-section)}
  .store-card h2{font-size:24px}
  .feature-grid{grid-template-columns:minmax(0,1fr)}
  .feature-selector{grid-row:auto}
}
@media(max-width:640px){
  .canvas{border-radius:var(--r-float)}
  .tile{border-radius:var(--r-group)}
  .tile-cap{font-size:11px}
  .tile-cap code{font-size:10px}
  .tile-rules{padding-inline:10px}
  .rule-lines{padding-left:6px;font-size:9px}
  .index-row{font-size:11.5px;padding-left:8px}
  .index-title{margin-inline:2px;font-size:11px}
  .tile-proto{padding-inline:10px}
  .chips{gap:6px}
  .tile-proto .chip{font-size:10px;padding-inline:8px}
  .fact-row{flex-direction:row;justify-content:center;gap:6px}
  .fact-pill{font-size:11px;min-height:28px;padding:4px 9px}
  .feature-selector,.tab-panel,.settings-index{padding:26px;border-radius:var(--r-float)}
  .plat-card{flex-basis:100%;padding:30px 24px;border-radius:var(--r-float)}
  .plat-actions .btn{font-size:13px}
  .device-card{padding:24px;gap:16px}
  .article-card{padding:28px;border-radius:var(--r-float)}
  .article-card h3{font-size:21px}
  .faq-item summary{padding:20px;gap:14px;font-size:15px}
  .faq-answer{padding:0 20px 22px}
  .toc{position:static;flex-wrap:nowrap;overflow-x:auto;border-radius:var(--r-group)}
  .toc a{flex-shrink:0;white-space:nowrap}
  .shot-row{flex-direction:column;align-items:center}
  .callout{padding:20px}
  .end-store-card{align-items:flex-start;flex-direction:column;padding:28px;border-radius:var(--r-float)}
  .dl-fab{right:16px;bottom:max(16px,env(safe-area-inset-bottom));width:52px;height:52px;min-height:52px;padding:0;border-radius:var(--r-circle)}
  .dl-fab .dl-fab-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .swatch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #install table,#install .data-table{display:block;width:100%}
  #install thead{display:none}
  #install tbody,#install tr,#install td{display:block;width:100%;min-width:0}
  #install tr{padding-block:12px;border-bottom:1px solid var(--border)}
  #install td{border:0;padding:10px 16px}
  #install td[data-label]::before{content:attr(data-label);display:block;font-size:12px;font-weight:var(--weight-medium);color:var(--text-muted);margin-bottom:6px}
  #install code,#install pre code{white-space:pre;word-break:normal;overflow-wrap:normal}
  #install td code{display:block;max-width:100%;overflow-x:auto;padding-bottom:4px}
}