:root{--green:#183d34;--light:#f5f2e9;--gold:#a67f41;--ink:#233e36;--line:#d9ded3}*{box-sizing:border-box}body{margin:0;background:var(--light);color:var(--ink);font:16px/1.8 "Microsoft JhengHei","PingFang TC",sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,.button{cursor:pointer;background:var(--green);color:white;border:1px solid var(--green);padding:12px 24px;display:inline-flex;align-items:center;justify-content:center;gap:20px;border-radius:3px}button:hover,.button:hover{background:#2a5548}button:disabled{opacity:.5;cursor:not-allowed}.outline{color:var(--green);background:transparent}.outline:hover{background:#e3e7db}header{display:flex;align-items:center;justify-content:space-between;padding:20px 5%;border-bottom:1px solid var(--line);background:var(--light)}.brand{display:flex;gap:14px;align-items:center;font-size:19px;font-weight:700;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:3px;font-weight:400}.mark{border:1px solid var(--gold);font:36px Georgia;padding:0 10px;color:var(--gold)}nav{display:flex;gap:28px;align-items:center;font-size:14px}nav [aria-current]{border-bottom:2px solid var(--gold)}.nav-cta{padding:7px 16px;border:1px solid var(--green)}main{min-height:65vh}.hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:590px;overflow:hidden}.hero-copy{padding:72px 7% 50px 10%}.eyebrow{font-size:12px;letter-spacing:3px;color:var(--gold);font-weight:700}.hero h1{font:clamp(42px,4.7vw,76px)/1.4 "Noto Serif TC","PMingLiU",serif;letter-spacing:4px;margin:28px 0 20px}.hero h1 em{font-style:normal;color:var(--gold)}.hero p{color:#5c6b61;max-width:450px}.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.hero-art{background:var(--green);position:relative;display:flex;align-items:center;justify-content:center;min-height:530px;overflow:hidden;color:#d7c699}.hero-art:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:44px 44px}.orbit{width:390px;height:390px;border:1px solid #bda76c80;border-radius:50%;position:absolute;transform:rotate(-26deg)}.orbit:before,.orbit:after{content:"";position:absolute;inset:45px -32px;border:1px solid #bda76c70;border-radius:50%;transform:rotate(55deg)}.orbit:after{transform:rotate(-55deg)}.numeral{font:190px/1 Georgia;z-index:1;letter-spacing:-12px}.numeral small{display:block;font:12px/2 sans-serif;letter-spacing:6px;text-align:center;margin-top:15px}.art-note{position:absolute;bottom:24px;left:30px;font-size:12px;letter-spacing:3px}.formula{position:absolute;top:30px;right:35px;font:italic 23px Georgia;color:#c9b46e90}.ribbon{display:flex;justify-content:space-between;gap:24px;padding:23px 6%;border-bottom:1px solid var(--line);background:#ececdf}.ribbon b{font-weight:500}.ribbon span{font-size:13px;color:#6d786d;margin-right:16px}.section{max-width:1180px;margin:auto;padding:65px 30px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:32px}h2{font:34px/1.5 "PMingLiU",serif;margin:8px 0 14px}h3{font-size:21px;margin:10px 0}p{margin:12px 0}.muted{color:#687469;font-size:14px}.two{display:grid;grid-template-columns:1fr 1fr;gap:25px}.entry{padding:32px;border:1px solid var(--line);background:#fcfaf4;transition:transform .2s}.entry:hover{transform:translateY(-3px)}.entry .number{color:var(--gold);font:italic 38px Georgia}.entry .arrow{float:right;font-size:28px}.themes{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.theme{padding:28px 17px;border-right:1px solid var(--line)}.theme:last-child{border:0}.theme b{font:42px "PMingLiU",serif;color:var(--gold)}.theme h3{font-size:18px}.theme p{font-size:13px;color:#657466}.schedule{background:#e8ecdf}.event{display:grid;grid-template-columns:150px 1fr 1fr;border-top:1px solid #ccd3c3;padding:19px 0;gap:20px}.event time{color:var(--gold)}.quote{background:var(--green);color:var(--light);padding:45px;text-align:center}.quote blockquote{font:25px/1.8 "PMingLiU",serif;white-space:pre-wrap}.page-heading{background:#e9ecdf;padding:45px max(6%,calc((100vw - 1120px)/2));border-bottom:1px solid var(--line)}.page-heading h1{font:40px "PMingLiU",serif;margin:12px 0}.form-layout{display:grid;grid-template-columns:230px 1fr;gap:50px;max-width:1100px;margin:auto;padding:50px 30px}.aside{font-size:14px}.aside strong{font-size:22px}.aside .sticky{position:sticky;top:25px}.form-panel{background:#fffdf7;border:1px solid var(--line);padding:30px;margin-bottom:25px}fieldset{border:0;margin:0;padding:0}legend{font-size:23px;margin-bottom:20px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:14px;margin-bottom:16px}input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;padding:10px 12px;margin-top:7px;background:#fff;border:1px solid #bfcbbd;border-radius:3px;color:var(--ink)}textarea{resize:vertical;min-height:105px}input[type=checkbox],input[type=radio]{accent-color:var(--green);width:17px;height:17px;vertical-align:middle;margin-right:8px}.choice{border:1px solid var(--line);padding:16px}.choice:has(input:checked){border-color:var(--green);background:#eaf0e3}.check{display:flex;align-items:baseline;gap:7px}.check input{flex-shrink:0}.privacy{font-size:13px;color:#5b685f;background:#e9eddf;padding:18px}.status{white-space:pre-wrap;margin-top:16px;color:#725021}.filters{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.filters select{width:auto;margin:0}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:25px}.media-card{border:1px solid var(--line);background:#fffdf6;overflow:hidden}.media-card img,.media-card video{width:100%;aspect-ratio:4/3;object-fit:contain;background:#e4e8dd}.media-card .caption{padding:20px}.tag{font-size:11px;letter-spacing:1px;color:var(--gold)}.empty{padding:50px;text-align:center;border:1px dashed #b3bda9;grid-column:1/-1}.empty b{font:44px Georgia;color:var(--gold)}details{border:1px solid var(--line);padding:22px;background:#fffdf7;margin:20px 0}summary{cursor:pointer;font-weight:bold}pre{white-space:pre-wrap;font:14px/1.9 inherit;background:#ecefe4;padding:20px}footer{background:var(--green);color:#e8e8d8;display:flex;justify-content:space-between;align-items:center;padding:40px 6%;font-size:13px;gap:20px}footer strong{font:24px "PMingLiU",serif}.skip{position:absolute;top:-100px}.skip:focus{top:0;background:white;z-index:9;padding:12px}:focus-visible{outline:3px solid #bf8d34;outline-offset:4px}#mode{background:#efe1ba;padding:9px 5%;font-size:13px}#toast{position:fixed;right:20px;bottom:20px;background:#183d34;color:white;padding:12px 24px;display:none;z-index:10}.metrics{display:flex;gap:20px;flex-wrap:wrap}.metrics article{background:#e8eddf;padding:20px;flex:1}.metrics strong{font:40px Georgia;display:block}.review{border-bottom:1px solid var(--line);padding:22px 0;overflow-wrap:anywhere}.review button{padding:6px 14px;margin:8px 10px 0 0}.review pre{font-family:inherit}.review img,.review video{max-width:320px;width:100%}.inline{display:flex;gap:10px;flex-wrap:wrap}.print-card{border:1px solid #aaa;padding:24px;margin:15px;break-inside:avoid}.print-card p{white-space:pre-wrap}.hp{display:none}#print-area{display:none}@media(max-width:800px){header{flex-direction:column;gap:18px}nav{gap:18px;font-size:13px}.nav-cta{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:40px 7%}.hero-art{min-height:300px}.numeral{font-size:140px}.orbit{width:260px;height:260px}.hero h1{font-size:48px}.ribbon{flex-direction:column;gap:3px}.two,.fields{grid-template-columns:1fr}.section{padding:40px 22px}.section-head{display:block}.themes{grid-template-columns:1fr 1fr}.theme{border-bottom:1px solid var(--line)}.event{grid-template-columns:110px 1fr}.event .muted{grid-column:2}.form-layout{display:block;padding:25px 18px}.aside{margin-bottom:25px}.form-panel{padding:22px}.gallery{grid-template-columns:1fr 1fr}footer{flex-direction:column;align-items:start}.page-heading{padding:30px 22px}.page-heading h1{font-size:32px}}@media(max-width:480px){.gallery{grid-template-columns:1fr}.actions{flex-direction:column}.hero h1{font-size:41px}.brand{font-size:17px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{body>*{display:none!important}#print-area{display:block!important}.print-card{width:calc(50% - 32px);display:inline-block;vertical-align:top}}
:where([hidden]){display:none!important}

.tea-program{margin-top:30px;padding:24px;background:#f5f2e9;border:1px solid var(--line)}.tea-program .event:last-child{padding-bottom:0}

/* Anniversary v2: PDF-derived corridor; titles remain selectable HTML text. */
.hero{display:flex;justify-content:center;text-align:center;min-height:650px;background:linear-gradient(90deg,#f7f2e326,#fffaf061,#f7f2e326),url('assets/corridor-clean.png') center/cover no-repeat}
.hero-copy{padding:60px 30px 55px;max-width:820px;width:100%;text-shadow:0 1px 14px #fffdf5}
.hero-art{display:none}.hero h1{font-size:clamp(42px,5vw,72px);color:#1d3b40;margin:24px 0}.hero h1 em{color:#1d3b40}.hero p{margin:0 auto;color:#244745;font-weight:600}.hero .actions{justify-content:center}.hero .eyebrow{color:#5a492c}.hero .outline{background:#fffaf0dd}.hero .button{text-shadow:none}
.narrow{max-width:1000px;margin:auto}.privacy a{text-decoration:underline;font-weight:bold}fieldset:disabled{opacity:.75}input[readonly]{background:#eaece5}.filters{align-items:end;flex-wrap:wrap}.filters label{flex:1;min-width:150px}.filters .search-label{flex:2;min-width:210px}.filters button{margin-bottom:15px}.gallery-toolbar{display:flex;align-items:center;gap:14px;margin:12px 0 20px}.gallery-toolbar p{margin-right:auto}
#gallery-window{width:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border-radius:4px}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.media-card{height:330px;min-width:0;overflow:hidden;background:#fffdf8}.media-card .media-open{display:block;width:100%;height:196px;padding:0;border:0;border-radius:0;background:#e2e7de}.media-card img{width:100%;height:196px;object-fit:cover;display:block}.media-card .caption{padding:12px 16px}.media-card .caption h3{font-size:19px;line-height:1.4;margin:7px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.media-card .caption p{font-size:14px;line-height:1.5;margin:6px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.media-card .tag{font-size:12px}.video-placeholder{height:196px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:40px;color:var(--green)}.video-placeholder small{font-size:14px}.filtered{height:682px}.gallery .empty{grid-column:1/-1;min-height:300px}.media-dialog{width:min(1000px,94vw);max-height:92vh;padding:25px;background:#fffdf8;border:1px solid var(--line);color:var(--ink)}.media-dialog::backdrop{background:#142c29bf}.media-dialog>img,.media-dialog>video{display:block;width:100%;max-height:65vh;object-fit:contain}.close-dialog{float:right}.media-dialog p{white-space:pre-wrap;overflow-wrap:anywhere}.review{overflow-wrap:anywhere}.review .button,.review button{margin:4px}.form-panel h2{font-size:28px}.status{white-space:pre-wrap}pre{white-space:pre-wrap;overflow-wrap:anywhere}nav .nav-cta{display:inline-flex}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,#gallery-window:focus-visible{outline:3px solid #a67f41;outline-offset:3px}
#gallery{margin:0}#gallery-more{height:36px;text-align:center;font-size:13px;color:#637367}
.archive-banner{padding:16px 6%;background:#e5eada}.archive-banner a{text-decoration:underline}.event-status{margin-top:22px!important;font-size:14px}.import-scroll{max-height:650px;overflow:auto;border:1px solid var(--line);padding:16px}.import-row{background:#fffdf7}.import-row .target-id{font-family:monospace}#directory-results .review{padding:20px}.inline{align-items:end}#event-form textarea{min-height:120px}#import-preview{margin-top:30px}
@media(max-width:800px){nav{flex-wrap:wrap;justify-content:center;gap:12px}.hero{min-height:580px}.hero-copy{padding:42px 22px}.gallery{grid-template-columns:1fr}.filtered{height:682px}.media-card{height:330px}.gallery-toolbar{flex-wrap:wrap}.gallery-toolbar p{width:100%;margin:0}.filters{display:flex}.filters label{min-width:130px}.media-dialog{padding:15px}.section-head .button{margin-bottom:15px}}

.brand-logo{display:block;width:76px;height:62px;object-fit:contain;flex-shrink:0}
@media(max-width:480px){.brand-logo{width:64px;height:52px}}

button.outline.danger{color:#9b302c;border-color:#9b302c}button.outline.danger:hover{background:#9b302c;color:#fff}

/* Upload actions remain distinct, with a separate navigation link. */
.upload-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px 64px;margin-top:24px}
.manage-works-link{display:inline-flex;align-items:center;min-height:48px;text-decoration:underline;text-underline-offset:5px;padding:8px 0}
@media screen and (min-width:801px){
 body{font-size:20px;line-height:1.85}
 header{flex-wrap:wrap;gap:20px}nav{font-size:18px;flex-wrap:wrap;gap:18px 24px}
 label,.aside,.muted,.privacy,footer,.ribbon span,.theme p,.event-status,#mode,#gallery-more{font-size:18px}
 .eyebrow{font-size:15px}.tag,.media-card .tag{font-size:16px}
 .theme h3,.media-card .caption h3{font-size:22px}.media-card .caption p,.video-placeholder small{font-size:18px}
 .media-card{height:370px}.filtered{height:762px}
 .brand{font-size:22px}.brand small{font-size:12px}
 input[type=checkbox],input[type=radio]{width:21px;height:21px}
 .event{grid-template-columns:180px 1fr 1fr}.form-layout{grid-template-columns:230px minmax(0,1fr);gap:32px}
}
@media screen and (max-width:800px){.upload-actions{gap:24px 32px}}

/* v3.3.6: explicit, larger desktop type including form controls. */
footer{flex-wrap:wrap}.site-version{flex-basis:100%;font-size:16px}
@media screen and (min-width:801px){
 body{font-size:24px;line-height:1.85}
 label,.aside,.muted,.privacy,footer,.ribbon span,.theme p,.event-status,#mode,#gallery-more,nav{font-size:22px}
 input,textarea,select,button,.button{font-size:22px}
 h3,.theme h3,.media-card .caption h3{font-size:26px}
 .eyebrow,.tag,.media-card .tag{font-size:18px}
 .media-card .caption p,.video-placeholder small{font-size:22px}
 .form-panel h2{font-size:32px}legend{font-size:28px}
 .media-card{height:410px}.filtered{height:842px}
 .event{grid-template-columns:210px minmax(0,1fr) minmax(0,1fr)}
 .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 header{justify-content:center}.brand{margin-right:auto}nav{justify-content:center}
}
