@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}}:root{--ink:#173b35;--green:#236554;--paper:#f8f5ed;--orange:#ed7b3d;--line:#d8ded5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,Noto Sans TC,sans-serif}button,input{font:inherit}button{cursor:pointer}.topbar{z-index:5;background:#fffdf8;border-bottom:1px solid #e9e5da;justify-content:space-between;align-items:center;height:76px;padding:0 clamp(22px,6vw,88px);display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:10px;font-size:17px;font-weight:800;text-decoration:none;display:flex}.brand span{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:31px;height:31px;font-family:Georgia,serif;font-size:18px;display:grid}.nav{align-items:center;gap:28px;display:flex}.nav a{color:#38534c;font-size:14px;text-decoration:none}.nav-cta,.primary{background:var(--orange);color:#fff;border:0;border-radius:2px;padding:13px 20px;font-weight:700}.mobile-menu{background:0 0;border:0;font-size:23px;display:none}.hero{background:#edf1e9;grid-template-columns:1.05fr .95fr;min-height:510px;padding:72px clamp(22px,10vw,150px);display:grid;overflow:hidden}.eyebrow{color:#68877c;letter-spacing:2px;margin:0 0 15px;font-size:11px;font-weight:700}.hero h1,h2,h3{font-family:Georgia,Noto Serif TC,serif}.hero h1{letter-spacing:-3px;color:#193d36;margin:0;font-size:clamp(46px,6vw,82px);line-height:1.06}.hero h1 em{color:var(--orange);font-style:normal}.lead{color:#50665f;max-width:490px;margin:28px 0;font-size:17px;line-height:1.8}.hero-actions{align-items:center;gap:15px;display:flex}.primary b,.notice b{margin-left:10px;font-size:20px}.secondary{color:var(--ink);padding:13px;font-weight:700;text-decoration:none}.hero-art{min-height:350px;position:relative}.hero-art p{color:#477565;font-family:Georgia,serif;font-style:italic;position:absolute;bottom:4px;right:8%}.sun{background:#f6bd51;border-radius:50%;width:135px;height:135px;position:absolute;top:3%;right:12%}.hill{background:#82ae8f;border-radius:50% 50% 0 0;position:absolute;bottom:0}.h1{width:390px;height:190px;right:-10px}.h2{background:#a2c5a0;width:290px;height:145px;right:225px}.school{background:#fff7df;border:7px solid #315c4e;border-bottom:0;grid-template-columns:repeat(4,1fr);gap:12px;width:230px;height:150px;padding:25px 20px;display:grid;position:absolute;bottom:35px;right:24%}.school:before{content:"安定國小";color:#fff;background:#315c4e;padding:7px 13px;font-size:13px;position:absolute;top:-32px;left:47px}.school i{background:#80b2ae;border:3px solid #315c4e}.flag{background:#315c4e;width:3px;height:90px;position:absolute;bottom:183px;right:65%}.flag:after{content:"";background:#ef7e44;width:33px;height:19px;position:absolute;top:0}.tree{background:#4e7e5a;border-radius:70% 70% 20% 20%;width:34px;height:84px;position:absolute;bottom:25px}.t1{right:8%}.t2{transform-origin:bottom;right:69%;transform:scale(.65)}.intro{text-align:center;background:#fffdf8;padding:95px max(22px,12vw)}.intro h2,.section-head h2,.governance h2,.join h2,.modal h2{letter-spacing:-1px;margin:0 0 18px;font-size:38px}.intro>p:not(.eyebrow){color:#61726c;max-width:620px;margin:0 auto;line-height:1.8}.stats{justify-content:center;gap:0;margin-top:50px;display:flex}.stats div{border-right:1px solid var(--line);width:190px}.stats div:last-child{border:0}.stats strong{font:48px Georgia,serif;display:block}.stats strong span{color:var(--orange)}.stats small{color:#71847d}.news-section{background:#f2f3eb;padding:85px clamp(22px,10vw,150px)}.section-head{justify-content:space-between;align-items:end;margin-bottom:30px;display:flex}.section-head a{color:var(--green);font-weight:700;text-decoration:none}.notice-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.notice{background:#fffdf8;flex-direction:column;min-height:245px;padding:28px;display:flex}.tag{color:var(--green);font-size:11px;font-weight:700}.notice time{color:#89938d;margin:15px 0;font-size:12px}.notice h3{margin:0 0 10px;font-size:23px}.notice p{color:#677871;margin:0;font-size:14px;line-height:1.7}.notice button{color:var(--green);text-align:left;background:0 0;border:0;margin-top:auto;padding:18px 0 0;font-weight:700}.event{background:var(--green);color:#fff;grid-template-columns:170px 1fr auto;align-items:center;gap:45px;padding:55px clamp(22px,10vw,150px);display:grid}.event-date{border-right:1px solid #85aa9e;align-items:center;gap:14px;display:flex}.event-date b{font:90px/.8 Georgia,serif}.event-date span{letter-spacing:1px;font-size:12px}.event .eyebrow{color:#b9d6c6}.event h2{margin:0 0 8px;font-size:36px}.event p{color:#d6e7dc;max-width:560px;line-height:1.7}.event-meta{gap:22px;font-size:14px;display:flex}.light{color:var(--green);white-space:nowrap;background:#fff}.governance{background:#fffdf8;grid-template-columns:.8fr 1.2fr;gap:70px;padding:92px clamp(22px,10vw,150px);display:grid}.governance>div>p:not(.eyebrow){color:#687a72;line-height:1.8}.governance-cards{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.governance-cards article{border-top:3px solid var(--orange);padding-top:14px}.governance-cards span{color:#95ab9e;font:32px Georgia,serif}.governance-cards h3{margin:24px 0 8px;font-size:20px}.governance-cards p{color:#71827a;font-size:13px;line-height:1.6}.join{background:#e5eee6;justify-content:space-between;align-items:center;margin:0 clamp(22px,8vw,120px) 75px;padding:47px clamp(25px,6vw,80px);display:flex}.join p:not(.eyebrow){color:#657b70;margin:0}.join h2{margin-bottom:8px}footer{color:#dae9df;background:#193d36;grid-template-columns:1fr auto;gap:28px;padding:40px clamp(22px,10vw,150px);display:grid}footer .brand{color:#fff}footer p{margin:0;font-size:14px}footer small{color:#84a698;border-top:1px solid #416359;grid-column:1/-1;padding-top:18px}.modal-backdrop{z-index:10;background:#0d272199;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fffdf8;width:100%;max-width:510px;padding:39px;position:relative;box-shadow:0 20px 60px #102b25}.modal>p:not(.eyebrow){color:#657970;margin-top:-8px;line-height:1.6}.close{color:#587167;background:0 0;border:0;font-size:29px;position:absolute;top:12px;right:17px}form{gap:14px;margin-top:22px;display:grid}label{color:#426155;gap:6px;font-size:13px;font-weight:700;display:grid}input{background:#fff;border:1px solid #cbd8ce;padding:11px;font-size:15px}.check{font-weight:400;line-height:1.6;display:block}.check input{vertical-align:middle;margin-right:7px}.success{text-align:center;padding:25px}.success span{color:#347255;background:#d7eadc;border-radius:50%;place-items:center;width:65px;height:65px;margin:auto;font-size:35px;display:grid}.success .primary{margin-top:15px}@media (max-width:800px){.topbar{height:65px}.mobile-menu{display:block}.nav{display:none}.nav.open{background:#fffdf8;flex-direction:column;align-items:stretch;gap:17px;padding:18px 25px;display:flex;position:absolute;top:65px;left:0;right:0}.hero{grid-template-columns:1fr;padding-top:52px}.hero-art{min-height:260px;margin-top:20px}.hero h1{font-size:52px}.notice-grid,.governance{grid-template-columns:1fr}.event{grid-template-columns:1fr;gap:25px}.event-date{border-bottom:1px solid #85aa9e;border-right:0;width:max-content;padding-bottom:18px}.governance{gap:35px}.governance-cards{grid-template-columns:1fr}.join{flex-direction:column;align-items:flex-start;gap:26px}.stats{gap:5px}.stats div{width:33%;padding:0 7px}.stats strong{font-size:34px}.section-head{flex-direction:column;align-items:flex-start;gap:16px}.event-meta{flex-direction:column;gap:8px}footer{grid-template-columns:1fr}.school{transform-origin:bottom;right:12%;transform:scale(.8)}.sun{right:0}}
.brand img{object-fit:contain;background:#fff;border-radius:10px;width:48px;height:48px}.hero-logo-panel{place-items:center;min-height:350px;padding:18px;display:grid}.hero-logo-panel img{aspect-ratio:1;object-fit:contain;border-radius:24px;width:min(100%,430px);box-shadow:0 24px 60px #173b3529}.admin-link{border:1px solid #a8bcb2;border-radius:3px;padding:10px 13px;font-weight:700;text-decoration:none;color:#236554!important;font-size:13px!important}.admin-link:hover{background:#236554;border-color:#236554;color:#fff!important}@media (max-width:800px){.brand img{width:40px;height:40px}.hero-logo-panel{min-height:280px;padding:8px 0}.hero-logo-panel img{width:min(88vw,360px)}.admin-link{text-align:center}}
.event-form-modal{width:min(720px,100%);max-width:720px;max-height:90vh;overflow-y:auto}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.event-form-modal select,.event-form-modal textarea{color:#173b35;width:100%;font:inherit;background:#fff;border:1px solid #cbd8ce;padding:11px}.event-form-modal textarea{resize:vertical}.field-help{color:#71827a;font-size:12px;font-weight:400}.form-error{color:#a33b2e;background:#fff0ed;margin:0;padding:10px 12px;font-size:13px}.event-form-modal button:disabled{cursor:wait;opacity:.65}.meal-options{border:1px solid #cbd8ce;align-items:center;gap:18px;margin:0;padding:14px;display:flex}.meal-options legend{color:#426155;padding:0 6px;font-size:13px;font-weight:700}.meal-choice{grid-template-columns:none;align-items:center;gap:7px;font-size:15px;display:flex}.meal-choice input{width:18px;height:18px}.meal-options small{color:#71827a;margin-left:auto}@media (max-width:620px){.event-form-modal{padding:30px 22px}.form-row{grid-template-columns:1fr}.meal-options{flex-wrap:wrap;align-items:flex-start}.meal-options small{width:100%;margin-left:0}}
.pwa-actions{z-index:8;filter:drop-shadow(0 8px 18px #12342b33);gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.pwa-actions button{border:0;border-radius:999px;padding:12px 16px;font-weight:800}.pwa-install{color:#fff;background:#ed7b3d}.pwa-install span{margin-right:4px;font-size:18px}.pwa-share{color:#fff;background:#173b35}.pwa-toast{z-index:12;color:#fff;background:#173b35;border-radius:5px;padding:11px 17px;font-size:14px;position:fixed;bottom:78px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000040}.pwa-guide-backdrop{z-index:30;background:#0d2721ad;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.pwa-guide{color:#173b35;background:#fffdf8;border-radius:14px;width:min(390px,100%);padding:30px;position:relative;box-shadow:0 22px 70px #091f1959}.pwa-guide>img{object-fit:cover;border-radius:20px;width:84px;height:84px;margin:0 auto 16px;display:block}.pwa-guide h2{text-align:center;margin:0 0 18px;font-size:27px}.pwa-guide ol{color:#50665f;margin:0 0 22px;padding-left:24px;line-height:2}.pwa-guide-close{color:#657970;background:0 0;border:0;font-size:28px;position:absolute;top:9px;right:13px}.pwa-guide-done{color:#fff;background:#236554;border:0;border-radius:4px;width:100%;padding:12px;font-weight:800}@media (max-width:560px){.pwa-actions{bottom:12px;right:12px}.pwa-actions button{padding:11px 14px}.pwa-toast{text-align:center;width:calc(100% - 32px)}}@media print{.pwa-actions,.pwa-toast,.pwa-guide-backdrop{display:none!important}}
.notice .notice-link{color:var(--green);text-align:left;background:0 0;border:0;margin-top:auto;padding:18px 0 0;font-weight:700;text-decoration:none}
.event-interest{background:#fff3d9;border:1px solid #dfc889;border-radius:10px;color:#5f4a1c!important;padding:13px 14px!important;font-weight:700!important;display:block!important}.event-interest input{margin-right:8px}.event-interest small{color:#78693f;margin:6px 0 0 25px;font-weight:400;line-height:1.5;display:block}.success .event-confirmed{color:#176143;background:#e5f3e9;border-radius:10px;padding:10px 12px;font-weight:800}
.governance{grid-template-columns:.72fr 1.28fr}.governance-total{border-top:1px solid var(--line);align-items:center;gap:14px;margin-top:28px;padding-top:20px;display:flex}.governance-total strong{color:var(--orange);font:56px/1 Georgia,serif}.governance-total span{color:#71827a;letter-spacing:1px;font-size:12px;font-weight:700;line-height:1.5}.governance-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.governance-cards article{background:#f8f5ed;align-items:flex-start;gap:13px;min-height:86px;padding:15px 12px 12px;display:flex}.governance-cards span{min-width:31px;line-height:1}.governance-cards h3{margin:0 0 5px;font-size:18px}.governance-cards p{margin:0;font-size:12px;line-height:1.4}@media (max-width:800px){.governance{grid-template-columns:1fr}.governance-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:430px){.governance-cards{grid-template-columns:1fr}}
.modal-backdrop{overscroll-behavior:contain;overflow-y:auto}.modal{overscroll-behavior:contain;max-height:calc(100dvh - 40px);overflow-y:auto}@media (max-width:800px){.modal-backdrop{place-items:start center;padding:12px}.modal{max-height:calc(100dvh - 24px);padding:32px 20px calc(24px + env(safe-area-inset-bottom))}}
.events-section{background:#173b35}.events-heading{color:#fff;padding:54px clamp(22px,10vw,150px) 8px}.events-heading .eyebrow{color:#b9d6c6}.events-heading h2{margin:0;font-size:36px}.events-section .event{border-top:1px solid #ffffff29}.events-section .event:first-of-type{border-top:0}.events-section .event button:disabled{cursor:not-allowed;opacity:.58}.events-empty{color:#d6e7dc;margin:0;padding:38px clamp(22px,10vw,150px) 58px}
