:root{--paper:#f7f1e7;--paper2:#fffaf1;--ink:#243247;--muted:#6f7180;--purple:#75648f;--purple-dark:#57466f;--sage:#a8b8a5;--rose:#c9a4a4;--line:#d9cfc1;--white:#fffdf8;--shadow:0 18px 50px rgba(64,48,78,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif;line-height:1.75}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:9;background:#fff;padding:.5rem 1rem}.hero{min-height:650px;padding:24px max(5vw,24px) 80px;background:radial-gradient(circle at 80% 20%,rgba(168,184,165,.34),transparent 30%),linear-gradient(135deg,#f8f1e5 0%,#eee6f1 100%);border-bottom:1px solid var(--line)}.nav{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:.75rem;color:var(--ink);font-weight:800;text-decoration:none}.brand-avatar{width:58px;height:58px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 5px 8px rgba(64,48,78,.12))}.brand-copy{display:grid;line-height:1.28}.brand-copy strong{font-size:1rem}.brand-copy small{color:var(--purple);font-size:.78rem;letter-spacing:.08em}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:var(--purple);color:white;font-family:serif;font-size:1.55rem}.source-link{color:var(--purple-dark);font-weight:700;text-decoration:none;border-bottom:1px solid}.hero-grid{max-width:1180px;margin:76px auto 0;display:grid;grid-template-columns:1.4fr .8fr;gap:8vw;align-items:center}.eyebrow,.step{font-size:.8rem;letter-spacing:.15em;color:var(--purple);font-weight:900;margin:0 0 .5rem}.hero h1{font-family:"Noto Serif TC","PMingLiU",serif;font-size:clamp(2.2rem,4.2vw,4rem);line-height:1.12;margin:.3rem 0 1.4rem;font-weight:800}.hero h1 em{font-style:normal;color:var(--purple)}.nowrap{white-space:nowrap}.lead{max-width:650px;font-size:1.18rem;color:#4f5867}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;border-radius:999px;padding:.8rem 1.35rem;font-weight:800;text-decoration:none;cursor:pointer;font:inherit}.primary{background:var(--purple-dark);color:white;border:2px solid var(--purple-dark)}.secondary{background:transparent;color:var(--purple-dark);border:1px solid var(--purple)}.hero .primary{margin-top:1.5rem}.hero-note{background:rgba(255,253,248,.74);border:1px solid rgba(117,100,143,.2);box-shadow:var(--shadow);padding:1.65rem 1.8rem 1.3rem;border-radius:28px;display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem}.hero-note span{font-family:serif;color:var(--rose);font-size:1.8rem}.hero-note p{margin:.2rem 0 .7rem}.section{max-width:1100px;margin:0 auto;padding:80px 24px}.section-heading{margin-bottom:28px}.section-heading h2{font-family:"Noto Serif TC","PMingLiU",serif;font-size:clamp(2rem,4vw,3.2rem);margin:0;line-height:1.2}.section-heading>p:last-child{color:var(--muted)}.picker-card{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;background:var(--white);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}label{font-weight:800}select,textarea{width:100%;margin-top:.5rem;padding:.9rem 1rem;border:1px solid #bcb2c7;border-radius:12px;background:white;color:var(--ink);font:inherit}select:focus,textarea:focus,button:focus,a:focus{outline:3px solid rgba(117,100,143,.28);outline-offset:2px}.data-status{font-size:.93rem;color:var(--muted)}.text-section{padding-top:35px}.inline-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem}.text-tools{display:flex;gap:.5rem}.text-tools button{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:.55rem .8rem;font-weight:800}.lesson-paper{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:clamp(24px,5vw,62px);box-shadow:var(--shadow);position:relative}.lesson-paper:before{content:"";position:absolute;left:18px;top:0;bottom:0;border-left:1px solid rgba(201,164,164,.48)}.lesson-meta{color:var(--purple);font-weight:800;margin-bottom:1.4rem}pre{font-family:"Noto Serif TC","PMingLiU",serif;white-space:pre-wrap;word-break:break-word;margin:0;font-size:1.16rem;line-height:2}.task-section{max-width:1180px}.task-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.task-card{position:relative;display:block;background:var(--white);border:2px solid transparent;border-radius:20px;padding:22px;cursor:pointer;min-height:160px;transition:.18s}.task-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.task-card:has(input:checked){border-color:var(--purple);background:#f3eef6}.task-card input{position:absolute;right:18px;top:18px;width:21px;height:21px;accent-color:var(--purple)}.task-card strong{font-family:"Noto Serif TC","PMingLiU",serif;display:block;font-size:1.3rem;margin-bottom:.5rem;padding-right:1.4rem}.task-card small{display:block;color:var(--muted);font-weight:500;line-height:1.6}.custom-note{display:block;margin-top:22px}.action-bar{position:sticky;bottom:12px;z-index:5;margin-top:22px;padding:14px 18px;border-radius:18px;background:rgba(36,50,71,.94);color:white;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);backdrop-filter:blur(8px)}.action-bar small{display:block;color:#d9d5df}.action-bar .primary{background:white;color:var(--purple-dark);border-color:white}.prompt-section{padding-top:40px}.ready-badge{background:var(--sage);padding:.35rem .8rem;border-radius:99px;font-weight:800}#prompt-output{min-height:460px;background:#272432;color:#f9f3e8;border:0;border-radius:20px;padding:24px;font-family:Consolas,"Microsoft JhengHei",monospace;line-height:1.7}.prompt-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.copy-status{color:var(--purple-dark);font-weight:800;min-height:1.6em}footer{padding:42px 24px;display:flex;justify-content:center;align-items:center;gap:12px;border-top:1px solid var(--line)}.brand-mark.small{width:34px;height:34px;font-size:1.1rem;border-radius:10px}footer p{margin:0;font-weight:700}
.picker-card{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.hero{min-height:auto;padding-bottom:60px}.hero-grid{margin-top:52px;grid-template-columns:1fr}.hero h1{font-size:clamp(1.9rem,8vw,2.6rem)}.hero-note{margin-top:12px}.picker-card,.task-grid{grid-template-columns:1fr}.section{padding:58px 18px}.nav .source-link{font-size:.8rem}.brand-avatar{width:48px;height:48px}.brand-copy strong{display:none}.brand-copy small{font-size:.72rem}.inline-heading{align-items:flex-start}.action-bar{bottom:8px}.lesson-paper:before{left:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.task-card{transition:none}}
.focus-section{padding-top:35px}.focus-stage-card{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:24px;align-items:end;background:var(--white);border:1px solid var(--line);border-radius:20px;padding:22px 24px;box-shadow:var(--shadow)}.focus-summary{display:flex;justify-content:flex-end;align-items:center;gap:14px;color:var(--purple-dark);font-weight:800}.clear-focus{border:1px solid var(--purple);background:white;color:var(--purple-dark);border-radius:999px;padding:.55rem .9rem;font:inherit;font-weight:800;cursor:pointer}.focus-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.focus-panel{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:24px;min-width:0}.focus-panel h3{font-family:"Noto Serif TC","PMingLiU",serif;font-size:1.55rem;margin:0}.focus-panel>p{color:var(--muted);margin:.25rem 0 1.25rem}.focus-options{display:grid;gap:14px;max-height:620px;overflow:auto;padding-right:6px}.focus-category{border-top:1px solid var(--line);padding-top:12px}.focus-category:first-child{border-top:0;padding-top:0}.focus-category h4{color:var(--purple);margin:0 0 .55rem;font-size:1rem}.focus-item{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start;padding:.55rem .65rem;border-radius:10px;font-weight:600;line-height:1.55;cursor:pointer}.focus-item:hover{background:#f3eef6}.focus-item:has(input:checked){background:#ede7f2;color:var(--purple-dark)}.focus-item input{width:19px;height:19px;margin-top:.2rem;accent-color:var(--purple)}.focus-code{font-weight:900}.focus-description{display:block;font-weight:500;color:var(--ink)}
@media(max-width:820px){.focus-stage-card,.focus-columns{grid-template-columns:1fr}.focus-summary{justify-content:space-between;align-items:flex-start}.focus-options{max-height:none}.focus-panel{padding:20px}}
@keyframes avatar-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}
.brand-avatar{width:78px;height:78px;filter:drop-shadow(0 8px 11px rgba(64,48,78,.16));animation:avatar-float 3.6s ease-in-out infinite;transform-origin:center bottom}
@media(max-width:820px){.brand-avatar{width:62px;height:62px}}
@media(prefers-reduced-motion:reduce){.brand-avatar{animation:none}}
.public-badge{display:inline-flex;align-items:center;padding:.45rem .9rem;border:1px solid rgba(117,100,143,.35);border-radius:999px;color:var(--purple-dark);background:rgba(255,253,248,.72);font-size:.88rem;font-weight:800}.paste-card{background:var(--white);border:1px solid var(--line);border-radius:24px;padding:clamp(22px,4vw,36px);box-shadow:var(--shadow)}#lesson-input{min-height:360px;font-family:"Noto Serif TC","PMingLiU",serif;font-size:1.08rem;line-height:1.9;resize:vertical}.paste-tools{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:12px;color:var(--purple-dark);font-weight:800}.privacy-note{margin:18px 0 0;padding:12px 15px;border-radius:12px;background:#f3eef6;color:#57466f;font-size:.9rem}.paste-card .lesson-meta{margin-bottom:1rem}@media(max-width:820px){.public-badge{font-size:.72rem;padding:.35rem .65rem}.paste-tools{align-items:flex-start}.paste-card{padding:20px}#lesson-input{min-height:300px}}
.hero{background:radial-gradient(circle at 14% 18%,rgba(255,250,247,.58),transparent 31%),radial-gradient(circle at 84% 24%,rgba(226,218,232,.52),transparent 28%),linear-gradient(135deg,#e9e1ed 0%,#cbbfd5 54%,#aa9ab8 100%);border-bottom-color:#9b8baa}.hero-note{background:rgba(255,253,248,.86);border-color:rgba(87,70,111,.24)}.public-badge{background:rgba(255,253,248,.86);border-color:rgba(87,70,111,.32);box-shadow:0 8px 24px rgba(64,48,78,.1)}
