:root{color-scheme:light;--ink:#163c40;--muted:#597371;--line:#d6e2dc;--green:#0e6b58;--mint:#b9e6d6;--paper:#f4f5ed}
*{box-sizing:border-box}html{scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,"Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}select{font:inherit}a:focus-visible,select:focus-visible{outline:3px solid #1856be;outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.masthead{position:sticky;top:0;z-index:10;padding:12px max(20px,calc((100% - 900px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:3px;font-size:18px}.brand small{display:block;font-size:9px;letter-spacing:4px;margin-top:3px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--ink);color:var(--mint);border-radius:12px;font-size:28px;letter-spacing:0}.language select{background:var(--paper);color:var(--ink);border:1px solid #b8cbc1;border-radius:10px;padding:10px 30px 10px 12px;min-height:44px;font-weight:600}
main{max-width:900px;margin:auto;padding:28px 20px 0}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{letter-spacing:1.5px;font-size:10px;font-weight:800;margin:0 0 12px;color:var(--green)}h1{font-size:clamp(28px,3vw,38px);line-height:1.2;letter-spacing:-1px;margin:0}#intro{margin:12px 0 0;color:var(--muted);font-size:16px;line-height:1.5}.demo-tag{font-size:11px;line-height:1.6;max-width:155px;padding:10px 14px;border-radius:12px;background:#e5ece3;color:var(--green)}.scroll-cue{color:var(--green);font-size:24px;margin:12px 0;text-align:center}
#guide{max-width:589px;margin:auto}.stage{margin:0 0 34px;scroll-margin-top:90px}.stage-heading{display:flex;align-items:flex-start;gap:14px;padding:24px 0 18px;border-top:1px solid var(--line)}.step-number{flex:none;display:grid;place-items:center;background:var(--ink);color:var(--mint);border-radius:10px;width:44px;height:44px;font-size:17px;font-weight:750}.stage-heading h2{font-size:29px;line-height:1.2;letter-spacing:-.5px;margin:0 0 8px;overflow-wrap:anywhere}.stage-heading p{font-size:16px;line-height:1.5;color:var(--muted);margin:0;overflow-wrap:anywhere}.screen{position:relative;width:100%;max-width:589px;margin:0 0 18px;background:white;box-shadow:0 5px 22px #153d3712;isolation:isolate;scroll-margin-top:90px}.screen img{display:block;width:100%;height:auto;aspect-ratio:589 / 1280}.screen svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.highlight{fill:none;stroke:#e16e27;stroke-width:5;stroke-dasharray:12 6}.arrow-line{fill:none;stroke:#e16e27;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.callout-text{font-family:Inter,"Segoe UI",Arial,"Microsoft YaHei",sans-serif;font-size:28px;font-weight:650;line-height:1.24;white-space:pre-line;overflow-wrap:anywhere;padding:10px 14px;background:#153f43f5;color:#fff;border:2px solid #c1e9db;border-radius:14px;box-sizing:border-box;max-width:100%;text-align:left}.callout{overflow:visible}.annotation.active .highlight{animation:mark-pulse 1.2s ease-in-out 3}.annotation.active .arrow-line{animation:arrow-in 1s ease-in-out 3 alternate}@keyframes mark-pulse{0%,100%{stroke-opacity:1;stroke-width:5;stroke-dashoffset:0}50%{stroke-opacity:.65;stroke-width:8;stroke-dashoffset:18}}@keyframes arrow-in{from{opacity:.6}to{opacity:1}}
/* Opaque tutorial notes contrast with the app's white, blue and green UI.
   Preserve text metrics and target geometry across all four languages. */
.callout-text{background:#fff1b8;color:#15343a;border-color:#d58b17;box-shadow:inset 6px 0 0 #efa928,0 0 0 3px #fff,0 8px 20px #102b3440}
.completion{max-width:589px;margin:20px auto;display:flex;gap:16px;align-items:center;background:var(--ink);color:white;padding:24px;border-radius:14px}.completion>span{font-size:27px;color:var(--mint);flex:none}.completion h2{font-size:21px;line-height:1.4;margin:0 0 8px}.completion p{font-size:12px;line-height:1.5;color:#cbe1d9;margin:0}footer{max-width:589px;margin:auto;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0;color:var(--muted);font-size:10px;letter-spacing:1px}
@media(max-width:650px){.masthead{padding:10px 16px}.brand{font-size:15px}.brand-mark{width:34px;height:34px;font-size:26px}.brand small{font-size:8px}.language select{font-size:14px;max-width:145px}main{padding:20px 10px 0}.intro{margin:0 8px}.demo-tag{display:none}.eyebrow{font-size:9px;margin-bottom:8px}h1{font-size:29px}#intro{font-size:15px}.scroll-cue{margin:6px 0}.stage{margin-bottom:22px}.stage-heading{gap:10px;padding:18px 8px 14px}.step-number{width:36px;height:36px;font-size:15px;border-radius:8px}.stage-heading h2{font-size:24px;margin-bottom:6px}.stage-heading p{font-size:15px}.screen{margin-bottom:12px}.completion{padding:18px}.completion h2{font-size:20px}footer{padding:16px 8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.masthead{position:static}.language,.scroll-cue{display:none}body{background:white}.screen{break-inside:avoid;box-shadow:none}.stage-heading{break-after:avoid}.annotation.active .highlight,.annotation.active .arrow-line{animation:none}.completion{background:white;color:var(--ink);border:1px solid var(--line)}.completion p{color:var(--ink)}}
