@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Noto+Serif+TC:wght@500;600;700&display=swap";:root{color:#243e38;font-synthesis:none;background:#f7f7f1;font-family:Noto Sans TC,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}header{border-bottom:1px solid #dde3d9;justify-content:space-between;align-items:center;gap:20px;height:100px;padding:0 5%;display:flex}.brand{align-items:center;gap:12px;font-size:17px;font-weight:600;display:flex}.brand small{letter-spacing:1.5px;color:#6e7c6e;margin-top:7px;font-size:10px;display:block}.brandmark{color:#f0e6b8;background:#254e40;border-radius:50%;padding:11px;display:flex}nav{gap:23px;display:flex}nav button{color:#6a766e;background:0 0;border:0;padding:12px 0;font-size:14px}nav button.active{color:#244e3d;border-bottom:2px solid #244e3d;font-weight:600}.login{font-size:12px}.login a{align-items:center;gap:8px;display:flex}main{max-width:1216px;margin:auto;padding:0 28px 70px}.hero{grid-template-columns:1.2fr 1fr;align-items:center;gap:85px;padding:68px 0 60px;display:grid}.eyebrow{color:#687963;letter-spacing:1.4px;align-items:center;gap:8px;font-size:12px;display:flex}.eyebrow span{background:#87966e;border-radius:50%;width:6px;height:6px}h1{letter-spacing:1px;margin:17px 0;font-family:Noto Serif TC,serif;font-size:48px;font-weight:600;line-height:1.5}p{color:#6c7970;font-size:15px;line-height:1.9}h2{font-family:Noto Serif TC,serif;font-size:26px;font-weight:600}h3{font-size:18px;font-weight:600}.primary,.secondary,.bottom-call button{color:#fff;background:#2d5745;border:0;border-radius:6px;justify-content:center;align-items:center;gap:12px;padding:14px 20px;font-size:14px;display:inline-flex}.secondary{color:#345241;background:#ebeee6;border:1px solid #dce2d7}.textbutton{color:#586d59;background:0 0;border:0;padding:20px;font-size:13px}.pass{color:#f4edcf;background:#244d40;border-radius:14px;padding:29px 33px;position:relative;overflow:hidden;transform:rotate(-4deg);box-shadow:15px 22px #e6e9dc,0 15px 35px #254e4020}.pass:after{content:"";pointer-events:none;border:1px solid #b6c5a32b;border-radius:50%;width:300px;height:300px;position:absolute;top:15px;right:-170px;box-shadow:0 0 0 25px #b6c5a30a,0 0 0 50px #b6c5a30a}.pass-top{letter-spacing:2px;justify-content:space-between;align-items:center;margin-bottom:27px;font-size:10px;display:flex}.pass-label{letter-spacing:2px;color:#c3d0ad;font-size:11px}.pass h2{letter-spacing:5px;margin:12px 0 27px;font-size:38px;line-height:1.45}.pass-bottom{letter-spacing:1px;border-top:1px solid #b8c69f40;justify-content:space-between;align-items:center;padding-top:18px;font-size:10px;display:flex}.pass strong{margin-top:5px;font-size:30px;font-weight:500;display:block}.pass>small{color:#becaae;letter-spacing:.5px;margin-top:20px;font-size:9px;display:block}.seal{border:1px solid #b6c097;border-radius:50%;padding:12px;font-size:11px;line-height:1.6;transform:rotate(12deg)}.stats{background:#fffefa;border:1px solid #dfe4d8;border-radius:9px;grid-template-columns:repeat(4,1fr);padding:25px 0;display:grid}.stats article{border-right:1px solid #e2e5dc;grid-template-columns:24px 1fr;gap:9px;padding:0 26px;display:grid}.stats article:last-child{border:0}.stats span{color:#697967;font-size:12px}.stats strong{font-variant-numeric:tabular-nums;grid-column:2;font-size:30px;font-weight:500}.stats strong small{color:#879182;padding-left:8px;font-size:11px;font-weight:400}.sectionhead{justify-content:space-between;align-items:center;gap:25px;margin:57px 0 25px;display:flex}.sectionhead h2{margin:10px 0}.sectionhead p{margin:0;font-size:13px}.sectionhead h1{font-size:36px}.pill{color:#5c704f;white-space:nowrap;background:#e9eddf;border-radius:25px;padding:8px 14px;font-size:11px}.feed{grid-template-columns:repeat(3,1fr);gap:17px;display:grid}.feed article{background:#fffefa;border:1px solid #e1e5da;border-radius:9px;gap:15px;padding:24px;display:flex}.course-icon{color:#6c8057;background:#e8edde;border-radius:10px;height:50px;padding:13px}.color1{color:#ac906e;background:#f2e8dc}.color2{color:#6c9291;background:#e2eaea}.feed small{color:#879080;font-size:11px}.feed h3{margin:8px 0;font-size:16px}.feed p{margin:0;font-size:12px}.status{color:#5c765c;margin-left:10px;font-size:10px}.empty{text-align:center;color:#7c906e;background:#fffefa;border:1px dashed #d5ddcd;border-radius:9px;grid-column:1/-1;padding:50px 25px}.empty p{font-size:14px}.bottom-call{background:#e9eddf;border-radius:10px;justify-content:space-between;align-items:center;margin-top:43px;padding:25px 32px;display:flex}.bottom-call h2{margin:0;font-size:22px}.bottom-call p{margin:7px 0 0;font-size:13px}.bottom-call button{color:#40593f;background:#fffefa}.panel{background:#fffefa;border:1px solid #e1e5db;border-radius:9px;margin-bottom:20px;padding:24px}.panel h3{margin-top:0}.panel p{font-size:13px}.steps{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:35px;display:grid}.steps article{border-top:1px solid #ced7c5;padding:22px 10px}.steps b{color:#a3b28a;font-family:serif;font-size:27px}.steps p{font-size:13px}.tablewrap{overflow:auto}table{border-collapse:collapse;white-space:nowrap;text-align:left;width:100%;font-size:13px}th{color:#819071;background:#f3f5ec;font-size:11px;font-weight:500}td,th{border-bottom:1px solid #e7e9e1;padding:14px 12px}td small{color:#82907a;margin-top:4px;font-size:10px;display:block}.actions{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.sectionhead .actions{margin:0}.admin-grid{grid-template-columns:290px 1fr;gap:23px;display:grid}.memberrow{text-align:left;color:#364e3b;background:0 0;border:0;border-bottom:1px solid #e4e9dc;align-items:center;gap:12px;width:100%;padding:14px 8px;display:flex}.memberrow small{color:#859179;margin-top:5px;font-size:10px;display:block}.memberrow svg{margin-left:auto}.chosen{background:#edf1e3;border-radius:5px}.avatar{background:#e5ebda;border-radius:50%;padding:10px;font-size:13px}.memberhead{justify-content:space-between;align-items:center;display:flex}.memberhead h2{margin:0}.memberhead small{color:#7a8a73;font-size:11px}.balance{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px;display:grid}.balance article{background:#eef1e6;border-radius:7px;padding:18px 13px}.balance small{color:#78876b;font-size:11px}.balance strong{margin-top:9px;font-size:20px;display:block}.muted{color:#89937f;font-size:12px}.progressrow{justify-content:space-between;align-items:center;margin:10px 0;font-size:13px;display:flex}.progressrow select{width:140px}.overlay{z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#172c2466;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dialog{background:#fffef9;border-radius:12px;width:100%;max-width:480px;max-height:90vh;padding:32px;position:relative;overflow:auto;box-shadow:0 20px 80px #10241933}.close{color:#697965;background:0 0;border:0;font-size:28px;position:absolute;top:12px;right:18px}form{gap:15px;display:grid}label{color:#63715c;gap:7px;font-size:12px;display:grid}input,select{color:#304b3d;background:#fff;border:1px solid #d7decd;border-radius:5px;width:100%;padding:11px 12px;font-size:14px}input[type=checkbox]{width:17px;height:17px}.checkbox{align-items:flex-start;line-height:1.7;display:flex}.full{width:100%;margin-top:10px}form small{color:#859078;font-size:11px;line-height:1.7}.alert,.notice{color:#934e36;background:#f7e6dd;border-radius:5px;margin:15px 0;padding:13px 18px;font-size:13px}.notice{color:#426130;background:#e4ecda}button:disabled{opacity:.5;cursor:default}footer{color:#88917e;border-top:1px solid #dde3d5;justify-content:space-between;padding:25px 5%;font-size:11px;display:flex}@media (max-width:950px){header{flex-wrap:wrap;height:auto;padding:20px}nav{order:3;justify-content:center;width:100%}.hero{gap:40px}.hero h1{font-size:36px}.stats article{padding:0 15px}.stats strong{font-size:24px}.feed,.balance,.steps{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:230px 1fr}}@media (max-width:650px){main{padding:0 20px 45px}.brand{font-size:14px}.login{font-size:10px}nav{gap:18px}nav button{font-size:12px}.hero{grid-template-columns:1fr;gap:35px;padding:35px 0}.hero h1{font-size:34px}.pass{width:100%;max-width:370px;margin:0 auto 20px;transform:rotate(-2deg)}.stats{grid-template-columns:1fr 1fr;gap:22px;padding:23px 0}.stats article:nth-child(2){border:0}.stats span{font-size:10px}.sectionhead{flex-direction:column;align-items:flex-start;gap:12px;margin-top:38px}.sectionhead h1{font-size:29px}.feed{grid-template-columns:1fr}.bottom-call{flex-direction:column;align-items:flex-start;gap:20px;padding:23px}.admin-grid{grid-template-columns:1fr}.steps{gap:15px}.steps h3{font-size:16px}.panel{padding:18px}.dialog{padding:25px}.balance strong{font-size:19px}footer{flex-direction:column;gap:12px}}.lookup-grid{grid-template-columns:1.2fr 1fr;gap:24px;display:grid}.dialog textarea{width:100%;line-height:1.9;font:inherit;resize:vertical;border:1px solid #ccd6bf;border-radius:7px;padding:15px;font-size:13px}@media (max-width:650px){.lookup-grid{grid-template-columns:1fr}.login .secondary{padding:10px;font-size:11px}}:root{color:#174b51;background:#fbf8f4}body{background:radial-gradient(at 95% 8%,#f3e4e1 0,#0000 34%),radial-gradient(at 0 45%,#ecf0e4 0,#0000 36%),#fbf8f4}header{background:#fffdf9e8;border-bottom-color:#e8dfd6;height:106px}.brand{color:#174b51}.brandmark{background:0 0;border-radius:0;width:61px;height:57px;padding:0}.brandmark img{object-fit:contain;width:100%;height:100%}.brand small{color:#839179;letter-spacing:2px;font-size:10px}nav button{color:#778480;font-size:15px}nav button.active{color:#174b51;border-color:#174b51}.login .secondary{color:#174b51;background:0 0;border-color:#cdd9d2;border-radius:30px}main{max-width:1260px}.hero{grid-template-columns:1.13fr 1fr;gap:55px;min-height:570px;padding:63px 0 54px}.hero h1{letter-spacing:2px;color:#174b51;margin:21px 0;font-size:47px;line-height:1.65}.highlight{white-space:nowrap;z-index:0;position:relative}.highlight:after{content:"";z-index:-1;background:#e8c6b9;border-radius:50% 50% 40% 30%;height:14px;position:absolute;bottom:5px;left:0;right:0;transform:rotate(-2deg)}.hero-copy>p{color:#76807b;font-size:16px;line-height:2.05}.eyebrow{color:#87927b;letter-spacing:1.5px;font-size:11px}.eyebrow span{background:#b5867b}.hero-actions{align-items:center;margin-top:26px;display:flex}.primary{background:#1f5358;border-radius:7px;padding:15px 23px;font-size:15px;transition:background .2s,transform .2s;box-shadow:0 6px 12px #174b5110}.primary:hover{background:#28656a;transform:translateY(-1px)}.textbutton{color:#516d69;align-items:center;gap:4px;display:inline-flex}.hero-note{color:#8a9187;align-items:center;gap:8px;margin-top:23px;font-size:12px;display:flex}.hero-note svg{color:#bc9188;flex-shrink:0}.hero-note b{color:#27575a;margin:0 4px}.pass-scene{isolation:isolate;padding:15px 39px 30px;position:relative}.scene-ring{z-index:-1;border:1px solid #cdd7c5;border-radius:50%;position:absolute;inset:15px -5px;transform:rotate(-18deg)}.scene-ring:before{content:"";border:1px dashed #d1d9c7;border-radius:50%;position:absolute;inset:-14px 18px}.scene-ring:after{content:"";z-index:-1;background:#e4eadb;border-radius:90% 0;width:150px;height:170px;position:absolute;bottom:-10px;right:-5px;transform:rotate(-20deg)}.pass{color:#174b51;text-align:center;background:linear-gradient(140deg,#fffef9,#f7ede5);border:1px solid #e2d4c5;border-radius:15px;padding:24px 29px 21px;position:relative;overflow:visible;transform:rotate(-5deg);box-shadow:12px 18px #dddac955,0 22px 45px #34564c18}.pass:before{content:"";pointer-events:none;border:1px solid #dbcab9;border-radius:10px;position:absolute;inset:8px}.pass:after{display:none}.pass-top{text-align:left;color:#3b6667;letter-spacing:1px;align-items:flex-start;margin-bottom:7px;font-size:11px}.pass-top small{letter-spacing:1.5px;color:#8a9788;margin-top:6px;font-size:7px;display:block}.edition{letter-spacing:1.5px;border-left:1px solid #c8cbbb;padding-left:12px;font-size:8px;line-height:1.6}.pass-emblem{object-fit:contain;width:125px;height:108px;margin:13px auto 11px;display:block}.pass-label{color:#8b9480;letter-spacing:3px;font-size:9px}.pass h2{letter-spacing:2px;white-space:nowrap;margin:8px 0;font-size:28px;line-height:1.5}.pass-values{letter-spacing:4px;color:#7b917e;font-size:10px}.pass-values span{color:#b58c7e;padding:0 5px}.ticket-divider{border-top:1px dashed #c8bdae;margin:21px -29px 0;position:relative}.ticket-divider:before,.ticket-divider:after{content:"";background:#f3eee7;border-radius:50%;width:15px;height:22px;position:absolute;top:-11px}.ticket-divider:before{border-right:1px solid #d6c8b7;left:-8px}.ticket-divider:after{border-left:1px solid #d6c8b7;right:-8px}.pass-bottom{text-align:left;color:#7a887e;letter-spacing:1px;border:0;padding-top:18px}.pass strong{color:#174b51;letter-spacing:1px;margin-top:4px;font-family:Georgia,serif;font-size:38px}.pass strong em{letter-spacing:0;font-size:14px;font-style:normal}.seal{color:#b58e82;outline-offset:3px;border:1px solid #b58e82;outline:1px solid #d8bcb1;padding:9px;font-size:10px;line-height:1.6;transform:rotate(10deg)}.pass .pass-terms{color:#929786;letter-spacing:.4px;text-align:left;margin-top:12px;font-size:8px}.floating-tag{z-index:2;color:#4d7369;white-space:nowrap;background:#fffdf9;border:1px solid #e0e7d6;border-radius:7px;align-items:center;gap:8px;padding:13px 17px;font-size:12px;display:flex;position:absolute;box-shadow:0 7px 22px #40574912}.tag-art{background:#edf1e3;top:51px;left:-3px;transform:rotate(-8deg)}.tag-music{color:#a46e63;background:#f3e3df;border-color:#e8ccc4;top:210px;right:-15px;transform:rotate(8deg)}.tag-learn{background:#fffcf6;bottom:16px;left:13px;transform:rotate(3deg)}.scene-caption{text-align:center;letter-spacing:2px;color:#9d9f8a;font-size:8px;position:absolute;bottom:-16px;left:0;right:0}.values-ribbon{color:#6c8177;letter-spacing:1px;border-top:1px solid #e1dfd3;border-bottom:1px solid #e1dfd3;justify-content:space-evenly;align-items:center;margin:10px 0 32px;padding:21px 20px;font-size:12px;display:flex}.values-ribbon span{align-items:center;gap:11px;display:flex}.values-ribbon i{background:#c49c8d;border-radius:50%;width:4px;height:4px}.values-ribbon svg{color:#af877d}.stats{background:#fffdf9;border-color:#e6e0d4;border-radius:12px;padding:29px 0;box-shadow:0 4px 18px #6c655504}.stats svg{color:#78977e}.stats strong{color:#174b51;font-family:Georgia,serif;font-size:34px}.stats span{color:#869081}.stats article{border-color:#e8e2d8}.stats strong small{font-family:Noto Sans TC,sans-serif}.sectionhead h2{color:#174b51;font-size:29px}.pill{color:#7a8b66;background:#ecede1}.feed article{background:#fffefa;border-color:#e5dfd4;border-radius:12px}.learning-empty{background:linear-gradient(120deg,#f0f1e7,#fcf8f2 50%,#f5e9e3);border:1px solid #e2dfd1;border-radius:12px;padding:35px 20px}.empty-icons{justify-content:center;gap:13px;margin-bottom:20px;display:flex}.empty-icons svg{color:#839a72;background:#e8eddc;border:1px solid #d5dbc7;border-radius:16px;width:53px;height:53px;padding:13px;transform:rotate(-10deg)}.empty-icons svg:nth-child(2){color:#b38b7c;background:#f4e2dc;border-color:#e6cbc1;transform:rotate(8deg)}.empty-icons svg:nth-child(3){color:#6a9594;background:#e2ece9;border-color:#c9dcd8;transform:rotate(-3deg)}.empty h3{color:#466b64;font-size:20px}.journey-strip{grid-template-columns:1.2fr 1fr 1fr;align-items:center;gap:22px;margin:45px 0 0;display:grid}.journey-strip h2{margin:9px 0;font-size:24px}.journey-strip p{max-width:250px;font-size:12px}.journey-strip button{text-align:left;color:#2d605c;background:#fbf9f2;border:1px solid #dedfd0;border-radius:10px;align-items:center;gap:15px;padding:23px 20px;font-size:14px;display:flex}.journey-strip button:nth-child(3){background:#f5ebe6;border-color:#e4d5ca}.journey-strip small{color:#88917e;margin-top:7px;font-size:10px;display:block}.journey-strip svg{flex-shrink:0;margin-left:auto}.step-number{color:#a0ad8b;font-family:Georgia,serif;font-size:27px}.bottom-call{background:#1d5055;border-radius:12px;margin-top:35px;padding:32px;position:relative;overflow:hidden}.bottom-call:after{content:"";pointer-events:none;border:1px solid #b8cead25;border-radius:50%;width:250px;height:250px;position:absolute;top:-130px;right:10%;box-shadow:0 0 0 30px #b8cead08,0 0 0 60px #b8cead08}.bottom-brand{align-items:center;gap:23px;display:flex}.bottom-brand img{object-fit:contain;background:#fffaf0;border-radius:50%;width:65px;height:65px;padding:7px}.bottom-call h2{color:#fff8e9;font-size:22px}.bottom-call p{color:#b7c9bd;font-size:12px}.bottom-call button{color:#315d58;z-index:1;background:#f4ecde;font-size:12px}.panel{background:#fffdfa;border-color:#e4dfd4;border-radius:11px}.balance article{background:#e9eee6}.balance article:nth-child(2){background:#f1e6df}.balance article:nth-child(3){background:#dfece7}.balance article:nth-child(4){background:#f2eddc}.balance strong{color:#245653}.secondary{color:#2f605b;background:#edf0e6;border-color:#d6dfd0}.chosen{background:#e7ede4}.memberrow{color:#2d5d56}.memberrow .avatar{color:#8f7761;background:#e8dfd0}input,select{color:#174b51;border-color:#d6ddd1}input:focus,select:focus,textarea:focus{outline-offset:2px;outline:2px solid #91aca0}.dialog{background:#fffcf7}.steps article{border-color:#d8d7c8}.steps b{color:#bd9b89}.steps h3{color:#2e655e}footer{color:#8a9384;border-color:#e2ded2;padding:27px 5%}footer>a{color:#53776d}button{transition:filter .15s}button:hover:not(:disabled){filter:brightness(.98)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (max-width:1050px){.hero{gap:22px}.hero h1{font-size:39px}.pass-scene{padding:15px 25px 30px}.pass{padding:23px}.ticket-divider{margin-left:-23px;margin-right:-23px}.pass h2{font-size:25px}.tag-music{right:-8px}.floating-tag{padding:10px;font-size:10px}.brand{font-size:15px}nav{gap:18px}.journey-strip{grid-template-columns:1fr 1fr}.journey-strip>div{grid-column:1/-1}.journey-strip p{max-width:none}.bottom-call h2{font-size:19px}.bottom-brand{gap:15px}}@media (max-width:650px){header{gap:13px;height:auto;padding:15px 18px}.brandmark{width:45px;height:44px}.brand{gap:7px;font-size:13px}.brand small{font-size:8px}.hero{grid-template-columns:1fr;gap:25px;padding-top:28px}.hero h1{letter-spacing:1px;margin:18px 0;font-size:35px}.hero-copy>p{font-size:14px}.hero-note{align-items:flex-start;font-size:11px;line-height:1.7}.hero-note svg{margin-top:3px}.hero-actions{margin-top:20px}.hero-actions .primary{padding:14px 15px;font-size:13px}.hero-actions .textbutton{padding:14px;font-size:12px}.pass-scene{width:100%;max-width:375px;margin:15px auto 10px;padding:15px 31px 32px}.pass{max-width:none;margin:0;padding:22px;transform:rotate(-4deg)}.pass-emblem{width:106px;height:89px;margin:12px auto}.pass h2{letter-spacing:1px;font-size:23px}.pass-top{font-size:9px}.pass-top small{font-size:6px}.tag-art{top:51px;left:0}.tag-music{top:185px;right:-2px}.tag-learn{bottom:18px;left:5px}.floating-tag{gap:5px;padding:10px;font-size:10px}.floating-tag svg{width:14px}.pass strong{font-size:33px}.values-ribbon{flex-direction:column;align-items:flex-start;gap:15px;margin-top:5px;padding:23px 25px}.values-ribbon i{display:none}.values-ribbon span{font-size:12px}.stats strong{font-size:29px}.stats article{padding:0 14px}.sectionhead h2{font-size:26px}.empty h3{font-size:17px}.journey-strip{grid-template-columns:1fr;gap:12px;margin-top:32px}.journey-strip button{padding:20px}.bottom-call{padding:25px 22px}.bottom-brand img{flex-shrink:0;width:48px;height:48px}.bottom-brand{gap:12px}.bottom-call h2{font-size:17px;line-height:1.7}.bottom-call p{font-size:11px}.bottom-call button{width:100%}nav button{font-size:13px}nav{gap:22px}footer{font-size:11px}}.brandmark img,.pass-emblem{mix-blend-mode:multiply}.bottom-brand img{background:#fffcf7}.stats .pending-stat{color:#839080;font-family:Noto Sans TC,sans-serif;font-size:19px;font-weight:500;line-height:1.8}.stats-note{color:#7b8879;margin:12px 2px;font-size:11px}.actual-stats{color:#748272;background:#eeeee4;border-radius:8px;flex-wrap:wrap;gap:14px 28px;padding:16px 20px;font-size:12px;display:flex}.actual-stats b{color:#476c61;margin-left:9px;font-weight:500}@media (max-width:650px){.stats .pending-stat{font-size:16px}.actual-stats{flex-direction:column;gap:12px}}
