:root{--navy: #1b2a44;--navy-deep: #121e34;--navy-soft: #2a3c5a;--gold: #c9a44c;--gold-bright: #e0bc63;--gold-soft: #8b7536;--parchment: #f5ecd9;--parchment-warm: #ece1c6;--texas-red: #9a2a2a;--walnut: #4a3526;--walnut-light: #6b4f3a;--ink: #2b2419;--shadow: 0 2px 6px rgba(18, 30, 52, .12);--shadow-lg: 0 8px 24px rgba(18, 30, 52, .22);--radius: 6px;--radius-lg: 10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Lora,Georgia,Times New Roman,serif;color:var(--ink);background:var(--parchment);background-image:radial-gradient(circle at 10% 0%,rgba(201,164,76,.08) 0%,transparent 40%),radial-gradient(circle at 90% 100%,rgba(27,42,68,.06) 0%,transparent 50%);min-height:100vh;line-height:1.5}.site-header{background:linear-gradient(180deg,var(--navy-deep) 0%,var(--navy) 100%);color:var(--parchment);padding:.3rem 2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;border-bottom:3px solid var(--gold);box-shadow:var(--shadow-lg)}.brand{display:flex;align-items:center;gap:1rem}.logo{width:180px;height:180px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.45));margin:-.5rem 0}.brand-text h1{font-family:Cinzel,Trajan Pro,serif;font-size:1.6rem;margin:0;letter-spacing:.04em;color:var(--gold-bright);text-shadow:0 1px 2px rgba(0,0,0,.4)}.tagline{margin:.15rem 0 0;font-size:.85rem;color:var(--parchment-warm);font-style:italic;letter-spacing:.03em}.site-nav{display:flex;gap:.25rem}.nav-link{color:var(--parchment-warm);text-decoration:none;font-family:Cinzel,serif;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;padding:.5rem .9rem;border-radius:var(--radius);transition:color .2s,background .2s}.nav-link:hover,.nav-link.active{color:var(--gold-bright);background:#c9a44c14}.calendar-section{max-width:1200px;margin:2rem auto;padding:0 1.5rem}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;background:var(--parchment-warm);border:1px solid var(--gold-soft);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:.85rem 1.1rem;box-shadow:var(--shadow)}.toolbar-left{display:flex;align-items:center;gap:.5rem}.btn-icon,.btn-today{font-family:Lora,serif;font-size:.95rem;background:var(--navy);color:var(--parchment);border:1px solid var(--navy-deep);border-radius:var(--radius);padding:.4rem .75rem;cursor:pointer;transition:background .2s,transform .1s}.btn-today{font-family:Cinzel,serif;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.btn-icon:hover,.btn-today:hover{background:var(--navy-soft)}.btn-icon:active,.btn-today:active{transform:translateY(1px)}.period-label{font-family:Cinzel,serif;font-size:1.25rem;margin:0 0 0 .75rem;color:var(--navy-deep);letter-spacing:.03em}.toolbar-search{position:relative;display:flex;align-items:center}.search-input{font-family:Lora,serif;font-size:.9rem;color:var(--ink);background:var(--parchment);border:1px solid var(--gold-soft);border-radius:var(--radius);padding:.4rem 2rem .4rem .75rem;width:220px;transition:border-color .15s,box-shadow .15s}.search-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #c9a44c40}.search-input::placeholder{color:var(--walnut-light);font-style:italic}.search-input::-webkit-search-cancel-button{display:none}.search-clear{position:absolute;right:.4rem;background:transparent;border:none;color:var(--walnut-light);font-size:1.1rem;line-height:1;padding:0 .15rem;cursor:pointer}.search-clear:hover{color:var(--texas-red)}.view-switcher{display:flex;background:var(--navy-deep);border-radius:var(--radius);padding:3px;gap:2px}.view-btn{font-family:Cinzel,serif;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;background:transparent;color:var(--parchment-warm);border:none;padding:.45rem .85rem;border-radius:4px;cursor:pointer;transition:background .2s,color .2s}.view-btn:hover{color:var(--gold-bright)}.view-btn.active{background:var(--gold);color:var(--navy-deep);font-weight:600}.calendar-container{background:#fff;background-image:linear-gradient(180deg,#fffdf6,#fbf6e8);border:1px solid var(--gold-soft);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:1rem;box-shadow:var(--shadow);min-height:480px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--gold-soft);border:1px solid var(--gold-soft);border-radius:var(--radius);overflow:hidden}.month-header-cell{background:var(--navy);color:var(--gold-bright);font-family:Cinzel,serif;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;padding:.6rem .4rem;text-align:center}.month-day{background:#fffdf6;min-height:110px;padding:.45rem;display:flex;flex-direction:column;gap:.25rem;position:relative;transition:background .15s}.month-day:hover{background:#fff8e1}.month-day.other-month{background:#ece1c680;color:var(--walnut-light)}.month-day.today .day-number{background:var(--texas-red);color:var(--parchment);border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}.day-number{font-family:Cinzel,serif;font-size:.9rem;color:var(--navy);font-weight:500}.event-pill{background:var(--navy);color:var(--parchment);font-size:.72rem;padding:2px 6px;border-radius:3px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--gold);transition:background .15s}.event-pill:hover{background:var(--navy-soft)}.event-pill.cat-stated{border-left-color:var(--gold)}.event-pill.cat-degree{border-left-color:var(--texas-red);background:var(--walnut)}.event-pill.cat-fellowship{border-left-color:var(--gold-bright);background:var(--navy-soft)}.event-pill.cat-charity{border-left-color:var(--gold);background:var(--texas-red)}.event-more{font-size:.7rem;color:var(--walnut-light);font-style:italic;cursor:pointer}.event-more:hover{color:var(--texas-red)}.recur-icon{display:inline-block;font-size:.8em;margin-left:.25em;opacity:.75;vertical-align:middle;pointer-events:none}.timegrid{display:grid;grid-template-columns:60px repeat(var(--days, 7),1fr);border:1px solid var(--gold-soft);border-radius:var(--radius);overflow:hidden}.timegrid-corner,.timegrid-dayhead{background:var(--navy);color:var(--gold-bright);font-family:Cinzel,serif;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:.5rem;text-align:center;border-right:1px solid var(--navy-deep)}.timegrid-dayhead.today{background:var(--texas-red);color:var(--parchment)}.timegrid-dayhead .dh-num{display:block;font-size:1.1rem;margin-top:.15rem}.timegrid-hour{background:var(--parchment-warm);color:var(--walnut);font-size:.72rem;text-align:right;padding:.25rem .4rem 0;border-top:1px solid var(--gold-soft);border-right:1px solid var(--gold-soft)}.timegrid-cell{background:#fffdf6;border-top:1px solid #eadfbf;border-right:1px solid #eadfbf;min-height:44px;padding:2px;position:relative}.timegrid-cell:hover{background:#fff8e1}.timegrid-event{background:var(--navy);color:var(--parchment);font-size:.75rem;padding:3px 6px;border-radius:3px;border-left:3px solid var(--gold);margin-bottom:2px;cursor:pointer;overflow:hidden}.timegrid-event.cat-degree{background:var(--walnut);border-left-color:var(--texas-red)}.timegrid-event.cat-fellowship{background:var(--navy-soft);border-left-color:var(--gold-bright)}.timegrid-event.cat-charity{background:var(--texas-red);border-left-color:var(--gold)}.timegrid-event:hover{filter:brightness(1.15)}.timegrid-event .te-time{font-family:Cinzel,serif;font-size:.68rem;letter-spacing:.05em;display:block;opacity:.9}.list-view{display:flex;flex-direction:column;gap:1.5rem}.list-group{border-left:3px solid var(--gold);padding-left:1rem}.list-group-title{font-family:Cinzel,serif;font-size:1.05rem;color:var(--navy-deep);margin:0 0 .6rem;letter-spacing:.05em}.list-item{display:grid;grid-template-columns:80px 1fr auto auto auto;gap:1rem;align-items:center;background:#fffdf6;border:1px solid var(--gold-soft);border-radius:var(--radius);padding:.7rem 1rem;margin-bottom:.5rem;cursor:pointer;position:relative;transition:background .15s,transform .15s}.list-item:has(details.add-to-cal[open]),.list-item.row-elevated{z-index:60;transform:none}.list-item:hover{background:#fff8e1;transform:translate(2px)}.list-date{text-align:center;border-right:1px solid var(--gold-soft);padding-right:.75rem}.list-date .ld-day{font-family:Cinzel,serif;font-size:1.5rem;color:var(--texas-red);display:block;line-height:1}.list-date .ld-mon{font-size:.75rem;color:var(--walnut);text-transform:uppercase;letter-spacing:.1em}.list-title{font-family:Cinzel,serif;font-size:1rem;color:var(--navy-deep);margin:0 0 .15rem}.list-meta{font-size:.82rem;color:var(--walnut-light);margin:0}.list-recur{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--parchment-warm);border:1px solid var(--gold-soft);color:var(--gold-soft);font-size:1rem;cursor:default;align-self:center;transition:background .15s,color .15s}.list-item:hover .list-recur{background:var(--gold);color:var(--navy-deep);border-color:var(--gold)}.list-cat{font-family:Cinzel,serif;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;background:var(--navy);color:var(--gold-bright);padding:.25rem .6rem;border-radius:3px}.list-cat.cat-degree{background:var(--walnut)}.list-cat.cat-fellowship{background:var(--navy-soft)}.list-cat.cat-charity{background:var(--texas-red);color:var(--parchment)}.list-item:not(:has(.list-recur)) .list-cat{grid-column:4}.add-to-cal{position:relative;cursor:default}.add-to-cal-trigger{font-family:Cinzel,serif;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;background:var(--navy);color:var(--gold-bright);border:1px solid var(--navy-deep);padding:.4rem .7rem;border-radius:var(--radius);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background .15s,color .15s}.add-to-cal-trigger::-webkit-details-marker{display:none}.add-to-cal-trigger::marker{content:""}.add-to-cal-trigger:after{content:" ▾";margin-left:.3rem;font-size:.85em}.add-to-cal[open] .add-to-cal-trigger{background:var(--gold);color:var(--navy-deep);border-color:var(--gold-soft)}.add-to-cal-trigger:hover{background:var(--gold);color:var(--navy-deep)}.add-to-cal-menu{position:absolute;right:0;top:calc(100% + 4px);min-width:160px;background:var(--parchment);border:1px solid var(--gold);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:4px;display:flex;flex-direction:column;gap:2px;z-index:50}.add-to-cal-item{display:block;font-family:Lora,serif;font-size:.85rem;color:var(--navy-deep);text-decoration:none;padding:.45rem .7rem;border-radius:3px;transition:background .12s,color .12s}.add-to-cal-item:hover{background:var(--navy);color:var(--gold-bright)}.empty-state{text-align:center;color:var(--walnut-light);font-style:italic;padding:3rem 1rem}.event-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#121e3499;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.event-modal[hidden]{display:none}.event-modal-content{background:var(--parchment);border:2px solid var(--gold);border-radius:var(--radius-lg);padding:1.5rem 1.75rem;max-width:500px;width:100%;position:relative;box-shadow:var(--shadow-lg)}.event-modal-content h3{font-family:Cinzel,serif;color:var(--navy-deep);margin:0 0 .5rem;padding-right:2rem}.modal-meta{font-family:Cinzel,serif;font-size:.85rem;color:var(--texas-red);letter-spacing:.05em;margin:0 0 .5rem}.modal-recurrence{font-family:Cinzel,serif;font-size:.78rem;color:var(--walnut);letter-spacing:.04em;margin:0 0 .5rem}.modal-location{font-style:italic;color:var(--walnut);margin:0 0 .75rem}.modal-description{color:var(--ink);margin:0;line-height:1.6}.modal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--gold-soft)}.modal-actions-label{font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--walnut);margin-right:.25rem}.cal-btn{display:inline-block;font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;background:var(--navy);color:var(--gold-bright);border:1px solid var(--navy-deep);padding:.4rem .7rem;border-radius:var(--radius);transition:background .15s,color .15s,transform .1s}.cal-btn:hover{background:var(--gold);color:var(--navy-deep)}.cal-btn:active{transform:translateY(1px)}.modal-close{position:absolute;top:.5rem;right:.75rem;background:transparent;border:none;font-size:1.6rem;color:var(--walnut);cursor:pointer;line-height:1}.modal-close:hover{color:var(--texas-red)}.page-section{max-width:760px;margin:2.5rem auto 1rem;padding:0 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.instructions-card,.form-card{background:#fffdf6;background-image:linear-gradient(180deg,#fffdf6,#fbf6e8);border:1px solid var(--gold-soft);border-radius:var(--radius-lg);padding:1.75rem 1.75rem 1.5rem;box-shadow:var(--shadow)}.instructions-card h2,.form-card h2{font-family:Cinzel,serif;font-size:1.3rem;color:var(--navy-deep);letter-spacing:.04em;margin:0 0 .5rem}.instructions-card h3{font-family:Cinzel,serif;font-size:1rem;color:var(--navy);letter-spacing:.05em;margin:1.25rem 0 .4rem}.instructions-card .lead{color:var(--walnut);margin:0 0 .5rem}.instructions-card p{margin:0 0 .6rem}.instructions-card code{font-family:Consolas,Menlo,Courier New,monospace;font-size:.88em;background:var(--parchment-warm);color:var(--navy-deep);padding:.05em .35em;border-radius:3px}.five-ws{margin:0 0 .75rem;padding-left:1.25rem;color:var(--ink)}.five-ws li{margin-bottom:.2rem}.five-ws strong{font-family:Cinzel,serif;font-weight:600;color:var(--navy-deep);letter-spacing:.04em}.example{background:var(--navy-deep);color:var(--parchment);border-left:3px solid var(--gold);border-radius:var(--radius);padding:.85rem 1rem;margin:.4rem 0 .5rem;overflow-x:auto;font-family:Consolas,Menlo,Courier New,monospace;font-size:.85rem;line-height:1.55}.example code{background:transparent;color:inherit;padding:0;white-space:pre}.example-note{font-size:.85rem;color:var(--walnut);font-style:italic;margin:0 0 1rem}.form-intro{color:var(--walnut);margin:0 0 1.25rem}.contact-form{display:flex;flex-direction:column;gap:.9rem}.form-row{display:flex;flex-direction:column;gap:.3rem}.form-row label{font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}.form-row input,.form-row textarea{font-family:Lora,serif;font-size:.95rem;color:var(--ink);background:var(--parchment);border:1px solid var(--gold-soft);border-radius:var(--radius);padding:.55rem .7rem;transition:border-color .15s,box-shadow .15s}.form-row textarea{resize:vertical;min-height:120px}.form-row input:focus,.form-row textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #c9a44c40}.form-row input:invalid:not(:placeholder-shown),.form-row textarea:invalid:not(:placeholder-shown){border-color:var(--texas-red)}.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.85rem;margin-top:.25rem}.btn-primary{font-family:Cinzel,serif;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;background:var(--navy);color:var(--gold-bright);border:1px solid var(--navy-deep);padding:.65rem 1.4rem;border-radius:var(--radius);cursor:pointer;transition:background .15s,color .15s,transform .1s}.btn-primary:hover{background:var(--gold);color:var(--navy-deep)}.btn-primary:active{transform:translateY(1px)}.form-note{font-size:.82rem;color:var(--walnut-light);margin:0}.form-note a{color:var(--navy-deep);text-decoration:underline}.form-note a:hover{color:var(--texas-red)}.site-footer{text-align:center;padding:1.5rem 1rem;color:var(--walnut-light);font-size:.85rem;border-top:1px solid var(--gold-soft);margin-top:2rem}@media (max-width: 720px){.toolbar-search{order:3;width:100%}.search-input{width:100%}.site-header{padding:.3rem 1rem}.brand-text h1{font-size:1.2rem}.tagline{font-size:.75rem}.logo{width:120px;height:120px;margin:-.4rem 0}.calendar-toolbar{padding:.75rem}.period-label{font-size:1rem;margin-left:.25rem}.month-day{min-height:70px;padding:.25rem}.day-number{font-size:.78rem}.event-pill{font-size:.65rem;padding:1px 4px}.month-header-cell{font-size:.65rem;padding:.4rem .2rem}.timegrid{grid-template-columns:44px repeat(var(--days, 7),1fr)}.timegrid-dayhead{font-size:.65rem;padding:.4rem .2rem}.list-item{grid-template-columns:60px 1fr}.list-recur{display:none}.list-cat{grid-column:2;justify-self:start}.list-item:not(:has(.list-recur)) .list-cat{grid-column:2}.add-to-cal{grid-column:1 / -1;justify-self:stretch}.add-to-cal-trigger{width:100%;text-align:center}.add-to-cal-menu{left:0;right:0}.view-btn{padding:.4rem .55rem;font-size:.7rem}}
