:root,[data-theme=cinematic]{color-scheme:dark;--theme-canvas: #141416;--theme-surface: #1e1e22;--theme-ink: #f4f1ea;--theme-accent: #e2a322;--theme-on-accent: #1a1406;--theme-danger: #e06a6a;--color-success: #6fbf86;--color-warning: #e2b15a}[data-theme=daylight]{color-scheme:light;--theme-canvas: #ebe7e1;--theme-surface: #ffffff;--theme-ink: #1f2429;--theme-accent: #346b9a;--theme-on-accent: #ffffff;--theme-danger: #a53b3b;--color-success: #166b38;--color-warning: #7a4e08}[data-theme=harbor]{color-scheme:dark;--theme-canvas: #0e1418;--theme-surface: #172026;--theme-ink: #e7eef2;--theme-accent: #3aa0b5;--theme-on-accent: #041316;--theme-danger: #e07a72;--color-success: #6fbf86;--color-warning: #e2b15a}[data-theme=grove]{color-scheme:dark;--theme-canvas: #101410;--theme-surface: #1a221a;--theme-ink: #eef3ea;--theme-accent: #8fce6a;--theme-on-accent: #12210e;--theme-danger: #e07a72;--color-success: #6fbf86;--color-warning: #e2b15a}:root{--color-bg-base: var(--theme-canvas);--color-nav-bg: var(--theme-canvas);--color-surface: var(--theme-surface);--color-card-bg: var(--theme-surface);--color-bg-subtle: color-mix(in srgb, var(--theme-ink) 7%, var(--theme-canvas));--color-text-primary: var(--theme-ink);--color-text-secondary: color-mix(in srgb, var(--theme-ink) 72%, transparent);--color-text-tertiary: color-mix(in srgb, var(--theme-ink) 48%, transparent);--color-divider-subtle: color-mix(in srgb, var(--theme-ink) 12%, transparent);--color-divider-strong: color-mix(in srgb, var(--theme-ink) 24%, transparent);--color-primary: var(--theme-accent);--color-accent: var(--theme-accent);--color-link: var(--theme-accent);--flare-color: var(--theme-accent);--color-on-primary: var(--theme-on-accent);--color-primary-hover: color-mix(in srgb, var(--theme-ink) 16%, var(--theme-accent));--color-primary-pressed: color-mix(in srgb, var(--theme-ink) 28%, var(--theme-accent));--color-primary-subtle: color-mix(in srgb, var(--theme-accent) 16%, var(--theme-surface));--color-info: var(--theme-accent);--color-info-tint: color-mix(in srgb, var(--theme-accent) 16%, var(--theme-surface));--color-info-border: color-mix(in srgb, var(--theme-accent) 42%, transparent);--color-success-tint: color-mix(in srgb, var(--color-success) 18%, var(--theme-surface));--color-success-border: color-mix(in srgb, var(--color-success) 46%, transparent);--color-warning-tint: color-mix(in srgb, var(--color-warning) 18%, var(--theme-surface));--color-warning-border: color-mix(in srgb, var(--color-warning) 46%, transparent);--color-error: var(--theme-danger);--color-error-tint: color-mix(in srgb, var(--theme-danger) 16%, var(--theme-surface));--color-error-border: color-mix(in srgb, var(--theme-danger) 46%, transparent);--color-btn-primary-bg: var(--theme-accent);--color-btn-primary-text: var(--theme-on-accent);--color-btn-primary-hover: var(--color-primary-hover);--color-btn-primary-pressed: var(--color-primary-pressed);--color-btn-secondary-bg: transparent;--color-btn-secondary-border: var(--color-divider-strong);--color-btn-secondary-text: var(--color-text-primary);--color-btn-secondary-hover-bg: var(--color-bg-subtle);--color-btn-secondary-hover-border: color-mix(in srgb, var(--theme-ink) 36%, transparent);--color-btn-tertiary-text: var(--color-text-secondary);--color-btn-tertiary-hover-bg: var(--color-bg-subtle);--color-btn-destructive-bg: var(--theme-danger);--color-btn-destructive-text: var(--theme-canvas);--color-btn-destructive-hover: color-mix(in srgb, var(--theme-ink) 14%, var(--theme-danger));--color-input-bg: var(--theme-surface);--color-input-text: var(--theme-ink);--color-input-border: color-mix(in srgb, var(--theme-ink) 18%, transparent);--color-input-border-hover: color-mix(in srgb, var(--theme-ink) 32%, transparent);--color-input-border-focus: var(--theme-accent);--color-input-placeholder: color-mix(in srgb, var(--theme-ink) 45%, transparent);--color-input-disabled-bg: color-mix(in srgb, var(--theme-ink) 6%, var(--theme-surface));--color-input-disabled-border: color-mix(in srgb, var(--theme-ink) 10%, transparent);--color-focus-ring: color-mix(in srgb, var(--theme-accent) 35%, transparent);--color-nav-text: color-mix(in srgb, var(--theme-ink) 68%, transparent);--color-nav-hover: color-mix(in srgb, var(--theme-ink) 8%, transparent);--color-nav-active-bg: color-mix(in srgb, var(--theme-accent) 16%, transparent);--color-nav-active-text: var(--theme-accent);--color-nav-active-border: var(--theme-accent);--color-card-border: color-mix(in srgb, var(--theme-ink) 12%, transparent);--color-card-shadow: 0 1px 3px rgba(0, 0, 0, .05);--color-section-header-text: var(--color-text-primary);--color-modal-overlay: color-mix(in srgb, #000 62%, transparent);--color-table-header-bg: var(--color-bg-subtle);--color-table-header-text: var(--color-text-secondary);--color-table-row-stripe: color-mix(in srgb, var(--theme-ink) 4%, var(--theme-surface));--color-table-row-selected: var(--color-primary-subtle);--color-badge-default-bg: color-mix(in srgb, var(--theme-ink) 8%, var(--theme-surface));--color-badge-default-border: var(--color-divider-subtle);--color-badge-default-text: var(--color-text-secondary);--color-badge-info-bg: var(--color-info-tint);--color-badge-info-border: var(--color-info-border);--color-badge-info-text: var(--color-info);--color-badge-success-bg: var(--color-success-tint);--color-badge-success-border: var(--color-success-border);--color-badge-success-text: var(--color-success);--color-badge-warning-bg: var(--color-warning-tint);--color-badge-warning-border: var(--color-warning-border);--color-badge-warning-text: var(--color-warning);--color-badge-error-bg: var(--color-error-tint);--color-badge-error-border: var(--color-error-border);--color-badge-error-text: var(--color-error);--shadow-subtle: 0 1px 3px rgba(0, 0, 0, .08);--shadow-hover: 0 4px 12px color-mix(in srgb, var(--theme-accent) 30%, transparent)}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-height:100vh;background:var(--color-bg-base);color:var(--color-text-primary)}body{margin:0;min-width:320px;font-size:14px}h1,h2,h3,h4,h5,h6{font-weight:600;letter-spacing:-.02em;color:var(--color-text-primary);line-height:1.25}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:var(--color-link);text-decoration:none}button,input,select,textarea{font-family:inherit}::placeholder{color:var(--color-input-placeholder)}::selection{background:var(--color-nav-active-bg);color:var(--color-text-primary)}input[type=checkbox],input[type=radio]{accent-color:var(--theme-accent)}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--theme-ink) 28%,transparent) transparent}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.layout{min-height:100vh;background:var(--color-bg-base);color:var(--color-text-primary)}.layout-header{position:sticky;top:0;z-index:50;background:var(--color-bg-base);border-bottom:1px solid var(--color-divider-subtle);padding:18px 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.header-left{display:flex;align-items:center}.site-title-link{text-decoration:none;color:inherit}.site-title-link:hover .site-title{color:var(--color-primary)}.site-title{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em;color:var(--color-text-primary);white-space:nowrap;transition:color .2s ease}.event-navigation{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.nav-btn{padding:10px 12px;background:transparent;color:var(--color-nav-text);border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s,color .2s;white-space:nowrap;text-decoration:none;display:inline-block}.nav-btn:hover{background:var(--color-nav-hover);color:var(--color-text-primary)}.nav-btn.active{background:var(--color-nav-active-bg);color:var(--color-nav-active-text);font-weight:600;box-shadow:inset 0 -3px 0 var(--color-nav-active-border)}.layout-content{padding:24px;max-width:1400px;margin:0 auto}@media (max-width: 768px){.layout-header{padding:16px;flex-direction:column;align-items:flex-start}.event-navigation{width:100%}.layout-content{padding:16px}}.event-list-page{max-width:1200px;margin:0 auto;padding:8px 0 24px}.page-header{text-align:center;margin-bottom:32px}.page-header h1{margin:0 0 8px;color:var(--color-text-primary);font-size:28px;font-weight:600;letter-spacing:-.02em}.tagline{color:var(--color-text-secondary);font-size:14px;margin:0}.loading,.error,.no-events{text-align:center;padding:60px 24px;font-size:14px;color:var(--color-text-secondary)}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.event-card{background:var(--color-card-bg);border-radius:12px;border:1px solid var(--color-card-border);box-shadow:var(--color-card-shadow);overflow:hidden;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;text-decoration:none;color:inherit}.event-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #10182814;border-color:var(--color-divider-strong)}.event-card-header{padding:20px 24px;background:var(--color-bg-base);color:var(--color-text-primary);display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--color-divider-subtle)}.event-card-header h2{margin:0;font-size:20px;font-weight:600;flex:1;color:var(--color-section-header-text)}.event-badge{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--color-badge-default-bg);color:var(--color-badge-default-text);border:1px solid var(--color-badge-default-border)}.event-badge.past{background:var(--color-badge-default-bg);color:var(--color-badge-default-text)}.event-card-body{padding:24px;flex:1}.event-date{margin:0 0 8px;color:var(--color-text-primary);font-size:14px;font-weight:500}.event-location{margin:0 0 12px;color:var(--color-text-secondary);font-size:14px}.event-description{color:var(--color-text-secondary);line-height:1.5;margin:0;font-size:14px}.event-card-footer{padding:16px 24px;background:var(--color-bg-subtle);border-top:1px solid var(--color-divider-subtle)}.view-link{color:var(--color-link);font-weight:500;font-size:14px}@media (max-width: 768px){.page-header h1{font-size:24px}.events-grid{grid-template-columns:1fr;gap:16px}}.event-details{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.event-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.event-header h1{margin:0;color:var(--color-text-primary);font-size:28px;font-weight:600;letter-spacing:-.02em}.event-badge{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:12px;font-size:12px;font-weight:600;background:var(--color-badge-default-bg);color:var(--color-badge-default-text);border:1px solid var(--color-badge-default-border)}.event-badge.completed{background:var(--color-badge-default-bg);color:var(--color-badge-default-text)}.event-info-grid{display:flex;flex-direction:column;gap:16px}.info-card{background:var(--color-card-bg);padding:24px;border-radius:12px;border:1px solid var(--color-card-border);box-shadow:var(--color-card-shadow)}.info-card.full-width{grid-column:1 / -1}.info-card h3{margin:0 0 8px;color:var(--color-section-header-text);font-size:18px;font-weight:600}.info-value{margin:0;font-size:16px;color:var(--color-text-primary);font-weight:500}.info-text{margin:0;line-height:1.5;color:var(--color-text-secondary);white-space:pre-wrap;font-size:14px}.cutoff-info{margin:12px 0 0;font-size:13px;color:var(--color-text-tertiary)}.location-map-card{padding:24px}.map-embed{margin-top:16px;border-radius:8px;overflow:hidden}.maps-link{display:inline-block;margin-top:12px;color:var(--color-link);text-decoration:none;font-weight:500;font-size:14px;transition:color .2s ease}.maps-link:hover{color:var(--color-primary-hover);text-decoration:underline}@media (max-width: 768px){.event-header{flex-direction:column;align-items:flex-start}.event-header h1{font-size:24px}}.whos-coming{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.whos-coming h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--color-text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{background:var(--color-card-bg);padding:24px;border-radius:12px;border:1px solid var(--color-card-border);box-shadow:var(--color-card-shadow);text-align:center;color:var(--color-text-primary)}.stat-card.highlight{background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text);border-color:transparent;box-shadow:none}.stat-value{font-size:28px;font-weight:700;margin-bottom:8px}.stat-label{font-size:14px;font-weight:500;opacity:.85}.filter-section{background:var(--color-card-bg);padding:20px 24px;border-radius:12px;border:1px solid var(--color-card-border);box-shadow:var(--color-card-shadow)}.filter-section label{display:block;margin-bottom:12px;font-weight:600;font-size:14px;color:var(--color-text-primary)}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{padding:10px 16px;background:var(--color-btn-secondary-bg);color:var(--color-btn-secondary-text);border:1px solid var(--color-btn-secondary-border);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.filter-btn:hover{background:var(--color-btn-secondary-hover-bg);border-color:var(--color-btn-secondary-hover-border)}.filter-btn.active{background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text);border-color:transparent}.guest-list{background:var(--color-card-bg);padding:24px;border-radius:12px;border:1px solid var(--color-card-border);box-shadow:var(--color-card-shadow)}.no-guests{text-align:center;padding:60px 24px;color:var(--color-text-secondary);font-size:14px}.guest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.guest-card{padding:16px;background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-divider-subtle);transition:transform .3s,box-shadow .3s}.guest-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #10182814}.guest-name{font-size:16px;font-weight:600;color:var(--color-text-primary);margin-bottom:8px}.guest-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status-badge,.game-badge{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:12px;font-size:12px;font-weight:600;border:1px solid transparent}.status-badge.going{background:var(--color-badge-success-bg);color:var(--color-badge-success-text);border-color:var(--color-badge-success-border)}.status-badge.maybe{background:var(--color-badge-warning-bg);color:var(--color-badge-warning-text);border-color:var(--color-badge-warning-border)}.status-badge.not-going{background:var(--color-badge-error-bg);color:var(--color-badge-error-text);border-color:var(--color-badge-error-border)}.game-badge{background:var(--color-badge-info-bg);color:var(--color-badge-info-text);border-color:var(--color-badge-info-border)}@media (max-width: 768px){.whos-coming h1{font-size:24px}.stats-grid{grid-template-columns:repeat(2,1fr)}.guest-grid{grid-template-columns:1fr}.filter-buttons{flex-direction:column}.filter-btn{width:100%}}.join-party{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.join-header{text-align:center}.join-header h1{margin:0 0 8px;color:var(--color-text-primary);font-size:28px;font-weight:600;letter-spacing:-.02em}.event-name{font-size:14px;color:var(--color-text-secondary);margin:0}.success-message,.error-message{border-radius:8px;padding:16px;font-size:14px}.success-message p,.error-message p{margin:0}.info-message,.event-description-card,.rsvp-form{background:var(--color-card-bg);padding:24px;border-radius:12px;border:1px solid var(--color-card-border);box-shadow:var(--color-card-shadow)}.info-message{text-align:center;padding:40px 24px}.info-message h2,.event-description-card h2{color:var(--color-text-primary);margin:0 0 8px;font-size:20px}.description{line-height:1.5;color:var(--color-text-secondary);white-space:pre-wrap;margin:0;font-size:14px}.description a{color:var(--color-link);text-decoration:underline;transition:color .2s}.description a:hover{color:var(--color-primary-hover)}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--color-input-border-hover)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-input-border-focus);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-group small{display:block;color:var(--color-text-tertiary);font-size:13px}.help-text{margin:8px 0 0 28px;color:var(--color-text-secondary);font-size:13px;font-weight:400}.loading,.error{text-align:center;padding:60px 24px;font-size:14px;color:var(--color-text-secondary)}.error{color:var(--color-error)}@media (max-width: 768px){.join-header h1{font-size:24px}.rsvp-form,.event-description-card{padding:16px}}.update-rsvp{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.login-container,.update-form,.info-message{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:12px;box-shadow:var(--color-card-shadow)}.login-container{padding:32px 24px;text-align:center}.login-container h1{margin:0 0 8px;color:var(--color-text-primary);font-size:28px;font-weight:600;letter-spacing:-.02em}.login-intro{color:var(--color-text-secondary);margin:0 0 24px;line-height:1.5;font-size:14px}.login-form{max-width:400px;margin:0 auto;text-align:left}.update-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.update-header h1{margin:0;color:var(--color-text-primary);font-size:28px;font-weight:600;letter-spacing:-.02em}.guest-info{margin:8px 0 0;color:var(--color-text-secondary);font-size:14px}.logout-btn{padding:10px 16px;background:var(--color-btn-secondary-bg);color:var(--color-btn-secondary-text);border:1px solid var(--color-btn-secondary-border);border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500}.logout-btn:hover{background:var(--color-btn-secondary-hover-bg);border-color:var(--color-btn-secondary-hover-border)}.success-message,.error-message,.warning-message{border-radius:8px;padding:16px;font-size:14px}.success-message{background:var(--color-success-tint);border:1px solid var(--color-success-border);color:var(--color-success)}.success-message h3{margin:0 0 8px;color:inherit;font-size:18px}.success-message p{margin:0}.error-message{background:var(--color-error-tint);border:1px solid var(--color-error-border);color:var(--color-error)}.warning-message{background:var(--color-warning-tint);border:1px solid var(--color-warning-border);color:var(--color-warning)}.info-message{padding:40px 24px;text-align:center}.info-message h2{color:var(--color-text-primary);margin:0 0 8px;font-size:20px}.info-message p{color:var(--color-text-secondary);margin:0;font-size:14px}.update-form{padding:24px}.form-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--color-divider-subtle)}.form-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section h2{margin:0 0 16px;color:var(--color-text-primary);font-size:20px;font-weight:600}.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;color:var(--color-text-primary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--color-input-border);border-radius:6px;font-size:14px;font-family:inherit;background:var(--color-input-bg);color:var(--color-input-text);transition:border-color .2s}.form-group textarea{resize:vertical;min-height:120px}.form-group input:hover:not(:disabled),.form-group select:hover:not(:disabled),.form-group textarea:hover:not(:disabled){border-color:var(--color-input-border-hover)}.form-group input:focus:not(:disabled),.form-group select:focus:not(:disabled),.form-group textarea:focus:not(:disabled){outline:none;border-color:var(--color-input-border-focus);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--color-input-disabled-bg);border-color:var(--color-input-disabled-border);opacity:.7;cursor:not-allowed}.game-section{background:var(--color-bg-subtle);padding:16px;border-radius:8px;border:1px solid var(--color-divider-subtle)}.game-question{margin-bottom:16px}.checkbox-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-weight:500;font-size:14px;color:var(--color-text-primary)}.checkbox-label input[type=checkbox]{width:auto;margin-top:2px;cursor:pointer}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed}.stories-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-divider-subtle)}.stories-section h3{margin:0 0 8px;color:var(--color-text-primary);font-size:18px}.stories-intro{margin:0 0 16px;color:var(--color-text-secondary);line-height:1.5;font-size:14px}.story-group{position:relative}.story-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:12px}.remove-story-btn{padding:8px 12px;background:transparent;color:var(--color-error);border:1px solid var(--color-error-border);border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:background-color .2s,color .2s}.remove-story-btn:hover:not(:disabled){background:var(--color-btn-destructive-bg);color:var(--color-btn-destructive-text);border-color:transparent}.remove-story-btn:disabled{opacity:.6;cursor:not-allowed}.add-story-btn{width:100%;padding:12px 24px;background:transparent;color:var(--color-primary);border:1px dashed var(--color-primary);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s,border-style .2s;margin-top:12px}.add-story-btn:hover:not(:disabled){background:var(--color-primary-subtle);border-style:solid}.add-story-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn{width:100%;padding:12px 24px;background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text);border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:8px}.submit-btn:hover:not(:disabled){background:var(--color-btn-primary-hover)}.submit-btn:active:not(:disabled){background:var(--color-btn-primary-pressed)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.login-container{padding:24px 16px}.update-form{padding:16px}.update-header{flex-direction:column}.update-header h1{font-size:24px}.logout-btn{width:100%}}*{box-sizing:border-box}#root{min-height:100vh}
