:root{--page-bg:#fffaf1;--page-text:#2d2118;--page-muted:#6f6258;--accent:#f47b20;--accent-dark:#c7520f;--surface:rgba(255,255,255,.84);--border:#eadcc9;--nav:rgba(255,255,255,.94);--shadow:0 18px 50px rgba(112,71,29,.12);--radius:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 90% 5%,rgba(244,123,32,.13),transparent 28rem),var(--page-bg);color:var(--page-text);font-family:Inter,"Noto Sans TC","Microsoft JhengHei",sans-serif;line-height:1.7}a{color:inherit}.container{width:min(1180px,calc(100% - 40px));margin:auto}.site-header{position:sticky;top:0;z-index:10;background:var(--nav);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}.nav-wrapper{min-height:72px;display:flex;align-items:center;gap:22px}.logo{display:flex;align-items:center;gap:7px;font-weight:900;letter-spacing:.08em;text-decoration:none;font-size:1.25rem}.logo-badge{background:var(--accent);color:#fff;border-radius:9px;padding:1px 7px;font-size:.78rem}.nav-menu{display:flex;align-items:center;gap:14px;margin-left:auto}.nav-menu a,.theme-toggle{font:inherit;font-size:.88rem;text-decoration:none;color:var(--page-muted);border:0;background:transparent;cursor:pointer;padding:8px 9px;border-radius:10px}.nav-menu a:hover,.theme-toggle:hover{background:rgba(244,123,32,.1);color:var(--accent-dark)}.fb-pill{background:var(--accent)!important;color:#fff!important;border-radius:999px!important;padding:9px 14px!important;font-weight:700}.hamburger{display:none;margin-left:auto;border:1px solid var(--border);background:var(--surface);border-radius:12px;font-size:1.3rem;padding:7px 10px;color:var(--page-text)}.hero{display:grid;grid-template-columns:.88fr 1.12fr;align-items:center;gap:50px;padding:78px 0 44px}.eyebrow,.section-kicker{margin:0 0 8px;color:var(--accent-dark);font-weight:800;letter-spacing:.12em;font-size:.76rem;text-transform:uppercase}.hero h1{font-size:clamp(3.2rem,7vw,6.8rem);line-height:1;letter-spacing:-.07em;margin:0 0 18px}.hero-subtitle{font-size:clamp(1.05rem,2vw,1.4rem);color:var(--page-muted);max-width:29rem;margin:0}.hero-actions{display:flex;gap:12px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:800;border-radius:999px;padding:11px 18px;border:1px solid var(--accent)}.button-primary{background:var(--accent);color:#fff}.button-ghost{color:var(--accent-dark);background:transparent}.hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.hero-meta span{padding:6px 10px;border:1px solid var(--border);border-radius:999px;color:var(--page-muted);font-size:.78rem;background:rgba(255,255,255,.55)}.hero-visual{margin:0;background:linear-gradient(140deg,#fff,#fff0d9);border:14px solid rgba(255,255,255,.8);border-radius:34px;box-shadow:var(--shadow);overflow:hidden;aspect-ratio:16/9}.hero-visual img{width:100%;height:100%;display:block;object-fit:cover}.page-grid{display:grid;grid-template-columns:220px 1fr;gap:36px;align-items:start}.toc-card{position:sticky;top:96px;border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:17px;box-shadow:0 10px 30px rgba(112,71,29,.06)}.toc-title{font-size:.78rem;color:var(--accent-dark);font-weight:900;letter-spacing:.12em;margin:0 0 10px}.toc-card a{display:block;text-decoration:none;color:var(--page-muted);padding:7px 8px;border-radius:9px;font-size:.88rem}.toc-card a:hover{background:rgba(244,123,32,.1);color:var(--accent-dark)}.article-content{min-width:0}.section-block{padding:42px 0;border-top:1px solid var(--border);scroll-margin-top:94px}.intro-card{border:0;border-radius:var(--radius);padding:35px;background:linear-gradient(135deg,#fff,#fff0dc);box-shadow:var(--shadow);margin-bottom:18px}.section-block h2{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.2;margin:0 0 14px;letter-spacing:-.03em}.section-block h3{margin:0 0 7px;line-height:1.3}.section-block p{color:var(--page-muted)}.goal-grid,.tool-grid,.skill-grid,.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.goal-grid div,.settings-grid div{padding:17px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.66)}.goal-grid strong{display:block;color:var(--accent-dark);font-size:1.05rem}.goal-grid span{display:block;color:var(--page-muted);font-size:.9rem}.chapter-heading{display:flex;gap:15px;align-items:flex-start;margin-bottom:20px}.chapter-heading>span{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:15px;background:var(--accent);color:#fff;font-weight:900;font-size:1.2rem}.chapter-heading .section-kicker{margin-top:2px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.two-col.compact{align-items:stretch}.diagram{width:100%;max-height:300px}.check-list{padding-left:1.2rem;color:var(--page-muted)}.check-list li{margin:.45rem 0}.callout,.permission-note,.mini-brief{border-left:4px solid var(--accent);background:rgba(244,123,32,.1);padding:15px 18px;border-radius:0 14px 14px 0;margin-top:22px;color:var(--page-muted)}.callout strong,.permission-note strong,.mini-brief strong{color:var(--accent-dark)}.tool-grid{grid-template-columns:repeat(2,1fr)}.tool-card{border:1px solid var(--border);border-radius:20px;padding:22px;background:rgba(255,255,255,.7)}.tool-card.orange{border-top:5px solid var(--accent)}.tool-card.blue{border-top:5px solid #2474d8}.tool-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--accent);color:#fff;font-weight:900}.blue .tool-mark{background:#2474d8}.tool-card a,.runtime-list a{display:inline-block;color:var(--accent-dark);font-weight:800;text-decoration:none;margin-top:5px}.steps{margin-top:22px;padding:20px 22px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.steps ol{margin:8px 0 0;padding-left:1.3rem;color:var(--page-muted)}.permission-note{border-left-color:#2474d8;background:rgba(36,116,216,.1)}.permission-note strong{color:#1659ab}.runtime-list{display:grid;gap:12px}.runtime-list>div{display:flex;gap:15px;align-items:flex-start;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.runtime-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:#2f7c4a;color:#fff;font-weight:900;font-size:.82rem}.runtime-list p{margin:0}.matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.matrix div{display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:14px;background:#2d2118;color:#fff}.matrix span{color:#ffd69d;font-weight:800}.skill-grid{grid-template-columns:1fr 1fr}.skill-grid>div{border:1px solid var(--border);border-radius:18px;padding:20px;background:var(--surface)}.skill-grid ul{padding-left:1.2rem;color:var(--page-muted);margin-bottom:0}.flow-strip{display:flex;align-items:center;justify-content:space-around;gap:10px;flex-wrap:wrap;margin-top:22px;padding:17px;border-radius:17px;background:linear-gradient(90deg,#fff0dc,#fff)}.flow-strip span{font-weight:800;color:var(--accent-dark)}.flow-strip b{color:var(--accent)}.scope-visual{max-width:620px;margin:0 auto 22px}.scope-visual img{width:100%;display:block}.settings-grid{grid-template-columns:repeat(3,1fr)}.settings-grid span{font-weight:900;color:var(--accent-dark)}.settings-grid p{font-size:.88rem;margin:.3rem 0 0}.mini-brief{height:100%;margin:0}.glossary-toolbar{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;align-items:center;padding:17px;border:1px solid var(--border);border-radius:18px;background:var(--surface);margin:22px 0}.glossary-toolbar label{font-weight:800}.glossary-toolbar input{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 13px;background:#fff;color:var(--page-text);font:inherit}.filter-row{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}.filter-btn{border:1px solid var(--border);background:transparent;color:var(--page-muted);border-radius:999px;padding:6px 11px;cursor:pointer}.filter-btn.active,.filter-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.term-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.term-card{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:16px}.term-card h3{font-size:1.05rem;margin-bottom:3px}.term-card .term-en{color:var(--accent-dark);font-size:.8rem;font-weight:800}.term-card p{font-size:.86rem;margin:.35rem 0 0}.term-card small{display:inline-block;color:var(--accent-dark);font-weight:800;margin-top:8px}.empty-state{text-align:center;color:var(--page-muted)}.small-note{font-size:.82rem}.project-section{background:linear-gradient(135deg,rgba(36,116,216,.08),rgba(244,123,32,.08));padding:32px;border:1px solid var(--border);border-radius:var(--radius);margin:22px 0}.project-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;list-style:none;padding:0;margin:24px 0 0;counter-reset:project}.project-steps li{counter-increment:project;border:1px solid var(--border);background:rgba(255,255,255,.75);padding:16px;border-radius:15px}.project-steps li:before{content:counter(project,decimal-leading-zero);display:block;color:var(--accent);font-weight:900;font-size:1.35rem}.project-steps strong,.project-steps span{display:block}.project-steps span{color:var(--page-muted);font-size:.88rem}.section-block details{border-bottom:1px solid var(--border);padding:15px 0}.section-block summary{cursor:pointer;font-weight:800}.section-block details p{margin:.55rem 0 0}.site-footer{margin-top:60px;background:#2d2118;color:#fff;padding:23px 0}.site-footer .container{display:flex;justify-content:space-between;gap:20px}.site-footer a{color:#ffd69d;text-decoration:none}@media(max-width:980px){.nav-menu{gap:4px}.nav-menu a{font-size:.78rem}.page-grid{grid-template-columns:1fr}.toc-card{position:static;display:flex;gap:6px;overflow:auto;white-space:nowrap}.toc-title{display:none}.toc-card a{font-size:.78rem}.term-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.container{width:min(100% - 28px,620px)}.nav-wrapper{min-height:64px}.hamburger{display:block}.nav-menu{display:none;position:absolute;top:64px;left:14px;right:14px;flex-direction:column;align-items:stretch;padding:12px;background:var(--nav);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}.nav-menu.open{display:flex}.nav-menu a,.theme-toggle{text-align:left}.hero{grid-template-columns:1fr;gap:28px;padding-top:45px}.hero h1{font-size:clamp(3.2rem,17vw,5.2rem)}.hero-visual{border-width:8px}.goal-grid,.tool-grid,.skill-grid,.settings-grid,.two-col,.matrix{grid-template-columns:1fr}.project-steps{grid-template-columns:1fr 1fr}.term-grid{grid-template-columns:1fr}.glossary-toolbar{grid-template-columns:1fr}.flow-strip{justify-content:flex-start}.flow-strip b{display:none}.site-footer .container{flex-direction:column}.section-block{padding:32px 0}.project-section{padding:23px}}
body.dark{--page-bg:#0a1128;--page-text:#e2e8f0;--page-muted:#c2cedd;--accent:#00b4d8;--accent-dark:#00f5d4;--surface:rgba(10,17,40,.88);--border:rgba(148,163,184,.3);--nav:rgba(10,17,40,.92);--shadow:0 18px 55px rgba(0,0,0,.26)}body.dark .hero-visual{background:#101c3d;border-color:rgba(10,17,40,.7)}body.dark .intro-card{background:linear-gradient(135deg,#111d3b,#132b4a)}body.dark .button-primary{color:#06111f}body.dark .hero-meta span,body.dark .tool-card,body.dark .steps,body.dark .skill-grid>div,body.dark .term-card,body.dark .project-steps li,body.dark .goal-grid div,body.dark .settings-grid div{background:rgba(20,34,61,.94)}body.dark .goal-grid span,body.dark .settings-grid p,body.dark .tool-card p,body.dark .skill-grid li,body.dark .term-card p,body.dark .section-block p,body.dark .check-list{color:#d2dcea}body.dark .glossary-toolbar input{background:#101c3d;color:var(--page-text)}body.dark .matrix div{background:#020817}body.dark .site-footer{background:#020817}@media(max-width:980px) and (min-width:721px){.hero{grid-template-columns:1fr;gap:28px}.hero h1{white-space:nowrap;font-size:clamp(3rem,10vw,5.6rem)}}
.skill-link{display:inline-block;margin-top:15px;color:var(--accent-dark);font-weight:800;text-decoration:none}.skill-link:hover{text-decoration:underline}

@media(min-width:981px){.hero{grid-template-columns:1fr 1fr;gap:32px}.hero h1{white-space:nowrap;font-size:clamp(3rem,5.5vw,5.6rem)}}

.scope-visual{max-width:100%}.scope-visual img{width:100%;height:auto}
.term-card{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.term-card:hover,.term-card:focus-visible{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.1);outline:2px solid var(--accent)}.term-description{display:none}.term-card.expanded .term-description{display:block}.term-hint{display:block;color:var(--page-muted);font-size:.74rem;margin-top:7px}.term-card.expanded .term-hint{color:var(--accent-dark)}
.extra-tools{margin-top:28px;padding:22px;border:1px solid var(--border);border-radius:20px;background:var(--surface)}.extra-tools>p{margin-top:0}.extra-tools .tool-grid{margin-top:18px}
.article-content{display:flex;flex-direction:column}.article-content>.intro-card{order:0}.article-content>#chapter-1{order:1}.article-content>#chapter-2{order:2}.article-content>#chapter-5{order:3}.article-content>#chapter-3{order:4}.article-content>#chapter-4{order:5}.article-content>#chapter-6{order:6}.article-content>#project{order:7}.article-content>#faq{order:8}
.global-settings-example{margin-top:24px;border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:20px}.example-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.example-heading .section-kicker{margin:0}.copy-button{border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:#06111f;font:inherit;font-weight:800;padding:8px 14px;cursor:pointer}.global-settings-example pre{white-space:pre-wrap;overflow:auto;margin:15px 0 0;padding:17px;border-radius:13px;background:#020817;color:#dbeafe;font:0.86rem/1.75 Consolas,"Microsoft JhengHei",monospace}
.glossary-collapse{margin-top:20px;border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:0 18px}.glossary-collapse>summary{padding:17px 0;color:var(--accent-dark);font-weight:900;cursor:pointer}.glossary-collapse[open]{padding-bottom:18px}.glossary-collapse[open]>summary{border-bottom:1px solid var(--border);margin-bottom:18px}.example-downloads{margin-top:28px;padding:22px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.example-downloads h3{margin-bottom:5px}.example-downloads p{margin-top:0}.download-links{display:flex;flex-wrap:wrap;gap:10px}.download-links a{display:inline-block;padding:10px 15px;border-radius:999px;background:var(--accent);color:#06111f;font-weight:800;text-decoration:none}.download-links a:hover{filter:brightness(1.08)}
