:root{--stone-50: #fafaf9;--stone-100: #f5f5f4;--stone-200: #e7e5e4;--stone-300: #d6d3d1;--stone-400: #a8a29e;--stone-500: #78716c;--stone-600: #57534e;--stone-700: #44403c;--stone-800: #292524;--stone-900: #1c1917;--forest-300: #6ee7b7;--forest-400: #2d6a4f;--forest-500: #1b4332;--forest-600: #143728;--forest-700: #0d261c;--copper-300: #fcd9bd;--copper-400: #d97706;--copper-500: #b45309;--sky-500: #0ea5e9;--rose-400: #fb7185;--rose-500: #f43f5e;--red-500: #dc2626;--green-500: #16a34a;--color-bg: transparent;--color-bg-raised: rgba(255, 255, 255, .95);--color-bg-card: rgba(255, 255, 255, .95);--color-bg-hover: rgba(255, 255, 255, .98);--color-text: var(--stone-800);--color-text-secondary: var(--stone-600);--color-text-muted: var(--stone-500);--color-border: var(--stone-200);--color-border-subtle: var(--stone-200);--color-accent: var(--forest-500);--color-accent-hover: var(--forest-400);--color-link: var(--forest-500);--color-link-hover: var(--forest-400);--cal-bg: rgba(255, 255, 255, .95);--cal-bg-outside: rgba(245, 245, 244, .9);--cal-text-outside: var(--stone-400);--cal-grid-border: var(--stone-200);--cal-today-bg: var(--forest-500);--cal-today-text: #ffffff;--cal-hover: var(--stone-100);--input-bg: #ffffff;--input-border: var(--stone-300);--input-text: var(--stone-800);--input-placeholder: var(--stone-400);--input-focus: var(--forest-500);--btn-bg: var(--forest-500);--btn-bg-hover: var(--forest-400);--btn-text: #ffffff;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: "Reddit Mono", ui-monospace, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .08);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .12), 0 2px 4px -2px rgb(0 0 0 / .08);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .15), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-card: 0 2px 8px 0 rgb(0 0 0 / .12)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background-color:#2d4a3e;background-image:url(/portland-background.jpg);background-size:cover;background-position:center;background-attachment:fixed;color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}body:before{content:"";position:fixed;inset:0;background:#2d374899;z-index:-1}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul,ol{list-style:none;margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0;letter-spacing:-.02em}.page-container{max-width:56rem;margin-inline:auto;padding:var(--space-8) var(--space-4)}@media(min-width:640px){.page-container{padding:var(--space-12) var(--space-6)}}.home-container{max-width:72rem;margin-inline:auto;padding:var(--space-8) var(--space-4)}@media(min-width:640px){.home-container{padding:var(--space-12) var(--space-6)}}.home-main,.calendar-layout{display:flex;flex-direction:column;gap:var(--space-8)}@media(min-width:1024px){.calendar-layout{display:grid;grid-template-columns:1fr 320px;gap:var(--space-10);align-items:start}}.calendar-sidebar{order:-1}@media(min-width:1024px){.calendar-sidebar{order:1;position:sticky;top:var(--space-8)}}.header{position:sticky;top:0;z-index:50;background:linear-gradient(to bottom,#1e2923f2,#1e2923d9);backdrop-filter:blur(4px);border-bottom:1px solid rgba(255,255,255,.08)}.header-inner{max-width:72rem;margin-inline:auto;padding:var(--space-4);display:flex;justify-content:space-between;align-items:center}@media(min-width:640px){.header-inner{padding:var(--space-5) var(--space-6)}}.header-left{display:flex;align-items:center;gap:var(--space-10)}.header-logo{display:flex;flex-shrink:0;align-items:center;gap:var(--space-3);color:#fff;font-weight:800;font-size:var(--text-xl);font-family:var(--font-mono);letter-spacing:-.02em;text-transform:lowercase}.header-logo-accent{color:var(--forest-400)}.nav-links-desktop{display:none;gap:var(--space-2)}@media(min-width:640px){.nav-links-desktop{display:flex}}.nav-link{display:inline-flex;align-items:center;padding:var(--space-2) 0;font-size:var(--text-sm);font-weight:500;color:#ffffffb3;border-bottom:1px solid transparent;transition:color .15s,border-color .15s;margin-inline:var(--space-3)}.nav-link:hover{color:#fff;border-bottom-color:var(--forest-400)}.mobile-menu-btn{display:flex;align-items:center;background:none;border:1px solid rgba(255,255,255,.2);padding:var(--space-2);color:#fffc;cursor:pointer;transition:color .15s,border-color .15s}.mobile-menu-btn:hover{border-color:#fff6;color:#fff}@media(min-width:640px){.mobile-menu-btn{display:none}}.mobile-menu-btn svg{width:1.5rem;height:1.5rem}.mobile-menu{padding:var(--space-4);background:#1e2923fa;border-bottom:1px solid rgba(255,255,255,.08)}@media(min-width:640px){.mobile-menu{display:none}}.mobile-menu[hidden]{display:none}.mobile-menu-link{display:block;padding:var(--space-3) 0;font-size:var(--text-base);font-weight:500;color:#ffffffb3;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08);transition:color .15s}.mobile-menu-link:last-child{border-bottom:none}.mobile-menu-link:hover{color:#fff}.footer{margin-top:var(--space-20);padding:var(--space-12) var(--space-4) var(--space-8);background:linear-gradient(to bottom,#1e2923d9,#1e2923f2);border-top:1px solid rgba(255,255,255,.08)}@media(min-width:640px){.footer{padding-inline:var(--space-6)}}.footer-inner{max-width:72rem;margin-inline:auto;display:grid;gap:var(--space-8)}@media(min-width:768px){.footer-inner{grid-template-columns:1fr auto;align-items:end}}.footer-heading{font-size:var(--text-xl);font-weight:800;color:#fff;font-family:var(--font-mono);letter-spacing:-.02em}.footer-heading-accent{color:var(--forest-400)}.footer-links{margin-top:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6)}.footer-link{font-size:var(--text-sm);color:#fff9;transition:color .15s;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.footer-link:hover{color:#fff;text-decoration-color:var(--forest-400)}.footer-bottom{display:flex;flex-direction:column;gap:var(--space-4)}@media(min-width:768px){.footer-bottom{align-items:flex-end;text-align:right}}.footer-social-links{display:flex;gap:var(--space-4)}.footer-social-link{color:#ffffff80;transition:color .15s}.footer-social-link:hover{color:#fff}.footer-social-link svg{width:1.5rem;height:1.5rem}.footer-text{font-size:var(--text-xs);color:#fff6;margin:0;line-height:1.6;max-width:36ch}.calendar-nav{display:flex;align-items:center;color:#fff}.calendar-nav-btn{margin:-.375rem;display:flex;flex:none;align-items:center;justify-content:center;padding:.375rem;color:#ffffffb3;background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);transition:color .15s,background-color .15s}.calendar-nav-btn:hover{color:#fff;background-color:#ffffff1a}.calendar-nav-btn svg{width:1.25rem;height:1.25rem}.calendar-nav-label{flex:1 1 auto;font-size:var(--text-sm);font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em}.calendar-day-headers{margin-top:var(--space-4);display:grid;grid-template-columns:repeat(7,minmax(0,1fr));font-size:var(--text-xs);font-weight:600;line-height:2rem;color:#fffc;text-transform:uppercase;letter-spacing:.1em;text-align:center}.calendar-grid{isolation:isolate;margin-top:var(--space-1);display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;border-radius:var(--radius-lg);background-color:var(--cal-grid-border);font-size:var(--text-sm);overflow:hidden}.calendar-day{padding:.375rem;background-color:var(--cal-bg);border:none;cursor:pointer;color:var(--color-text);font:inherit;transition:background-color .1s}.calendar-day:hover{background-color:var(--cal-hover)}.calendar-day--outside{background-color:var(--cal-bg-outside);color:var(--cal-text-outside)}.calendar-day--today{font-weight:700}.calendar-day--today .calendar-day-number{background-color:var(--cal-today-bg);color:var(--cal-today-text)}.calendar-day-number{margin-inline:auto;display:flex;width:1.75rem;height:1.75rem;align-items:center;justify-content:center;border-radius:9999px;transition:background-color .1s}.section-header{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-6)}.section-accent{width:3rem;height:3px;background-color:#fff9;border-radius:2px}.events-list{display:flex;flex-direction:column;gap:var(--space-3)}@media(min-width:1024px){.events-list{order:0}}.event-card{display:flex;gap:var(--space-4);padding:var(--space-4);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color .15s,box-shadow .15s;text-decoration:none;color:inherit;cursor:pointer}.event-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.event-card:hover .event-title{color:var(--color-accent)}@media(min-width:640px){.event-card{padding:var(--space-5)}}.event-date-badge{flex-shrink:0;width:3.25rem;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--stone-100);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-1);text-align:center;line-height:1}.event-date-month{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent)}.event-date-day{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-top:2px}.event-content{flex:1 1 auto;min-width:0}.event-title{font-weight:600;font-size:var(--text-base);color:var(--color-text);line-height:1.4;transition:color .15s}.event-meta{margin-top:var(--space-2);display:flex;flex-wrap:wrap;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--text-sm)}.event-meta-item{display:flex;align-items:center;gap:var(--space-1)}.event-meta-icon{width:.875rem;height:.875rem;color:var(--color-text-muted);flex-shrink:0}.event-meta-location{display:flex;align-items:center;gap:var(--space-1)}.event-detail{overflow:hidden;background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.event-detail-header{padding:var(--space-6) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}@media(min-width:640px){.event-detail-header{padding:var(--space-8) var(--space-6)}}.event-detail-title{font-size:var(--text-xl);line-height:1.4;font-weight:700;color:var(--color-text)}.event-detail-body{border-top:none}.event-detail-row{padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.event-detail-row:last-child{border-bottom:none}@media(min-width:640px){.event-detail-row{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-4);padding:var(--space-5) var(--space-6)}}.event-detail-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.event-detail-value{margin-top:var(--space-1);font-size:var(--text-sm);line-height:1.6;color:var(--color-text)}@media(min-width:640px){.event-detail-value{margin-top:0}}.map-embed{padding:var(--space-6) var(--space-5)}@media(min-width:640px){.map-embed{padding-inline:var(--space-6)}}.map-embed iframe{width:100%;height:200px;border:none;border-radius:var(--radius-md)}.form-section{padding-block:var(--space-10)}.form-section+.form-section{border-top:1px solid var(--color-border-subtle)}.form-layout{display:grid;grid-template-columns:1fr;gap:var(--space-8)}@media(min-width:768px){.form-layout{grid-template-columns:1fr 2fr}}.form-heading{font-size:var(--text-lg);line-height:1.5;font-weight:700;color:#fff}.form-description{margin-top:var(--space-2);font-size:var(--text-sm);line-height:1.6;color:#fffc}.form-card{background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.form-fields{padding:var(--space-6) var(--space-5);display:grid;gap:var(--space-6)}@media(min-width:640px){.form-fields{padding:var(--space-8);grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-6)}}.form-group,.form-group--half{grid-column:1 / -1}@media(min-width:640px){.form-group--half{grid-column:span 3}}.form-group--two-thirds{grid-column:1 / -1}@media(min-width:640px){.form-group--two-thirds{grid-column:span 4}}.form-label{display:block;font-size:var(--text-sm);line-height:1.5;font-weight:600;color:var(--color-text)}.form-input-wrapper{margin-top:var(--space-2);display:flex;align-items:center;border-radius:var(--radius-md);background-color:var(--input-bg);padding-left:var(--space-3);border:1px solid var(--input-border);transition:border-color .15s,box-shadow .15s}.form-input-wrapper:focus-within{border-color:var(--input-focus);box-shadow:0 0 0 1px var(--input-focus)}.form-input{display:block;min-width:0;flex:1 1 auto;background:transparent;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-1);font-size:var(--text-base);color:var(--input-text);border:none;outline:none;font-family:inherit}@media(min-width:640px){.form-input{font-size:var(--text-sm)}}.form-input::placeholder{color:var(--input-placeholder)}.form-input-standalone{display:block;width:100%;border-radius:var(--radius-md);background-color:var(--input-bg);padding:var(--space-2) var(--space-3);font-size:var(--text-base);color:var(--input-text);border:1px solid var(--input-border);font-family:inherit;transition:border-color .15s,box-shadow .15s}@media(min-width:640px){.form-input-standalone{font-size:var(--text-sm)}}.form-input-standalone::placeholder{color:var(--input-placeholder)}.form-input-standalone:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 1px var(--input-focus)}.form-textarea{display:block;width:100%;border-radius:var(--radius-md);background-color:var(--input-bg);padding:var(--space-2) var(--space-3);font-size:var(--text-base);color:var(--input-text);border:1px solid var(--input-border);font-family:inherit;resize:vertical;transition:border-color .15s,box-shadow .15s}@media(min-width:640px){.form-textarea{font-size:var(--text-sm)}}.form-textarea::placeholder{color:var(--input-placeholder)}.form-textarea:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 1px var(--input-focus)}.form-error{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--rose-400)}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4);border-top:1px solid var(--color-border-subtle);padding:var(--space-4) var(--space-5)}@media(min-width:640px){.form-actions{padding-inline:var(--space-8)}}.form-btn-cancel{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;font-family:inherit;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:color .15s,background-color .15s}.form-btn-cancel:hover{color:var(--color-text);background-color:var(--color-bg-hover)}.form-btn-submit{border-radius:var(--radius-md);background-color:var(--btn-bg);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:700;color:var(--btn-text);border:none;cursor:pointer;font-family:inherit;transition:background-color .15s,transform .1s}.form-btn-submit:hover{background-color:var(--btn-bg-hover)}.form-btn-submit:active{transform:scale(.98)}.form-btn-submit:disabled{opacity:.4;cursor:not-allowed}.form-message{font-size:var(--text-sm)}.form-message--success{color:var(--green-500)}.form-message--error{color:var(--rose-400)}.search-container{max-width:56rem;margin-inline:auto;padding:var(--space-8) var(--space-4)}.search-box-wrapper{padding:var(--space-8) 0}@media(min-width:640px){.search-box-wrapper{padding:var(--space-10) var(--space-16)}}.search-label{display:block;font-size:var(--text-sm);font-weight:600;color:#fff}.search-input-wrapper{margin-top:var(--space-2);display:flex;border-radius:var(--radius-md);background-color:var(--input-bg);border:1px solid var(--input-border);transition:border-color .15s,box-shadow .15s}.search-input-wrapper:focus-within{border-color:var(--input-focus);box-shadow:0 0 0 1px var(--input-focus)}.search-input{display:block;min-width:0;flex:1 1 auto;padding:var(--space-2) var(--space-3);font-size:var(--text-base);color:var(--input-text);background:transparent;border:none;outline:none;font-family:inherit}@media(min-width:640px){.search-input{font-size:var(--text-sm)}}.search-input::placeholder{color:var(--input-placeholder)}.search-icon{display:flex;padding:var(--space-2);align-items:center}.search-icon svg{width:1.25rem;height:1.25rem;color:var(--color-text-muted)}.search-results-header{margin-bottom:var(--space-6)}.search-results-title{font-size:var(--text-sm);font-weight:600;color:#fff}.search-results-subtitle{margin-top:var(--space-1);font-size:var(--text-sm);color:#fffc}.search-results-count{color:#ffffffb3}.search-results-list{overflow:hidden;border-radius:var(--radius-lg);background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);box-shadow:var(--shadow-md)}.search-result-item{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle);transition:background-color .1s}.search-result-item:hover{background-color:var(--color-bg-hover)}.search-result-item:last-child{border-bottom:none}.search-result-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.search-result-title a{color:inherit;text-decoration:none;transition:color .15s}.search-result-title a:hover{color:var(--color-accent)}.search-result-description{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-text-secondary)}.search-highlight{background-color:#fbbf2433;color:var(--amber-400);padding-inline:var(--space-1);border-radius:2px}.search-no-results{overflow:hidden;border-radius:var(--radius-lg);background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);padding:var(--space-12) var(--space-6);text-align:center}.search-no-results svg{margin-inline:auto;height:3rem;width:3rem;color:var(--color-text-muted);margin-bottom:var(--space-4)}.search-no-results-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary)}.search-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-8)}.search-pagination-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;text-decoration:none;display:inline-block;transition:background-color .15s,border-color .15s}.search-pagination-btn:hover{background-color:var(--color-bg-hover);border-color:var(--color-text-muted)}.search-pagination-btn:disabled,.search-pagination-btn[aria-disabled=true]{opacity:.3;cursor:not-allowed}.search-pagination-btn--active{background-color:var(--color-accent);color:var(--btn-text);border-color:var(--color-accent);font-weight:700}.search-pagination-btn--active:hover{background-color:var(--color-accent-hover)}.search-pagination-page{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-card);color:var(--color-text-secondary);text-decoration:none;display:inline-block;transition:background-color .15s,border-color .15s}.search-pagination-page:hover{background-color:var(--color-bg-hover)}.search-pagination-page--active{background-color:var(--color-accent);color:var(--btn-text);border-color:var(--color-accent);font-weight:700}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.main-content{min-height:80vh}.section-title{font-size:var(--text-2xl);font-weight:700;color:#fff;letter-spacing:-.02em}
