:root{--ink:#211c1a;--paper:#f3eee2;--cream:#fff9ec;--rust:#b95732;--teal:#173c3b;--gold:#e8b851;--line:#cfc5b6;--muted:#685f59}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.55}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}a:hover{text-decoration-color:var(--rust)}img{max-width:100%;display:block}.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}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 clamp(18px,4vw,72px);background:var(--cream);border-bottom:1px solid var(--line);position:relative;z-index:5}.public-shell .topbar{position:absolute;inset:0 0 auto;background:linear-gradient(#16120fbd,#16120f08);color:#fff;border:0}.brand{text-decoration:none;font-family:Arial,sans-serif;font-size:13px;letter-spacing:.19em;font-weight:900;white-space:nowrap}.brand span{color:var(--rust)}.public-shell .brand span{color:var(--gold)}.topbar nav{display:flex;align-items:center;gap:clamp(10px,1.8vw,26px);flex-wrap:wrap}.topbar nav a,.topbar nav button{font:700 11px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap}.topbar nav button{border:0;background:none;color:inherit;padding:0}.topbar nav a:hover,.topbar nav button:hover{color:var(--rust)}.nav-form{display:inline;margin:0}main{min-height:70vh}.footer{display:flex;justify-content:space-between;gap:24px;padding:24px clamp(18px,4vw,72px);background:var(--ink);color:#d5cabb;font:11px Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}.eyebrow{font:800 12px Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--rust)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,7vw,96px);line-height:.96;letter-spacing:-.055em;font-weight:500}h2{font-size:clamp(28px,3vw,42px);line-height:1.1;font-weight:500;letter-spacing:-.03em}h3{font-size:23px;line-height:1.15}p{max-width:65ch}.lead{font-size:clamp(21px,2.2vw,29px);line-height:1.4}.muted{color:var(--muted)}.narrow{width:min(100% - 36px,780px);margin:auto}.wide{width:min(100% - 36px,1300px);margin:auto}.page-top{padding-top:clamp(65px,10vw,130px);padding-bottom:110px}.page-top>h1{margin-bottom:32px}.page-top>p{margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 22px;background:var(--ink);border:1px solid var(--ink);color:#fff;text-decoration:none;font:800 12px Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;border-radius:1px}.button:hover{background:var(--rust);border-color:var(--rust);text-decoration:none}.button.light{background:#f4e7c8;color:#1d1713;border-color:#f4e7c8}.button.light:hover{background:#fff}.text-button{background:none;border:0;border-bottom:1px solid currentColor;padding:4px 0;color:var(--teal);font:700 12px Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase}.text-button:hover{color:var(--rust)}.danger{color:#a14231}.button-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.public-hero{min-height:min(900px,100svh);height:100svh;position:relative;background:#171615;overflow:hidden}.public-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#151413b0 0%,#15141350 45%,transparent 78%),linear-gradient(0deg,#151413af,transparent 35%);pointer-events:none}.public-hero>img{width:100%;height:100%;object-fit:cover;object-position:center 57%}.public-hero-copy{position:absolute;z-index:1;left:clamp(26px,8vw,160px);bottom:clamp(60px,12vh,150px);color:#fff}.public-hero-copy .eyebrow{color:var(--gold)}.public-hero-copy h1{font-size:clamp(75px,12vw,210px);line-height:.78;margin:28px 0 42px;text-shadow:0 3px 20px #0007}.public-hero-copy h1 em{font-style:normal;color:var(--gold);font-size:.68em}.public-whisper{background:#171f1f;color:#e8dcc1;min-height:230px;display:flex;align-items:center;justify-content:center;gap:36px;text-align:center;padding:50px 24px}.public-whisper p{font-size:clamp(24px,3.2vw,42px);line-height:1.2;margin:0}.whisper-line{width:min(12vw,140px);height:1px;background:#987946}.guest-hero{height:min(740px,80svh);min-height:500px;position:relative;background:#19211f}.guest-hero img{width:100%;height:100%;object-fit:cover}.guest-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#111b1ae0,transparent 75%)}.guest-hero-copy{position:absolute;z-index:1;left:clamp(24px,8vw,140px);bottom:clamp(50px,12vh,130px);color:white;max-width:600px}.guest-hero-copy .eyebrow{color:var(--gold)}.guest-hero-copy h1{font-size:clamp(62px,8vw,130px)}.guest-hero-copy p:not(.eyebrow){font-size:22px}.story-intro{padding:90px 0}.story-intro p{font-size:clamp(25px,3.2vw,42px);line-height:1.22}.image-triptych{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.image-triptych img{height:300px;width:100%;object-fit:cover}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:55px 0 35px}.action-card{border:1px solid var(--line);background:#fffaf0;padding:25px;text-decoration:none;min-height:220px;transition:transform .2s,box-shadow .2s}.action-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #291e131a}.action-card span{font:800 12px Arial,sans-serif;color:var(--rust)}.action-card h2{margin:30px 0 10px;font-size:29px}.action-card p{color:var(--muted)}.quick-links{display:flex;gap:20px;flex-wrap:wrap}.quick-links a{font:700 12px Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}.story-card{border-top:1px solid var(--line);padding:35px 0;margin-top:32px}.story-card a{font:700 12px Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}.feature-image{width:100%;height:auto;max-height:560px;object-fit:cover;margin:35px 0}.faq-item{border-top:1px solid var(--line);padding:24px 0}.faq-item:last-of-type{border-bottom:1px solid var(--line)}.faq-item summary{font-size:23px;cursor:pointer;line-height:1.25;padding-right:30px}.faq-item p{margin:18px 0 0;color:var(--muted)}.notice{background:#eae2d4;padding:16px 18px;margin:20px 0;border-left:4px solid var(--teal)}.notice.good{background:#e4eee6}.notice.warn{background:#fff0d0;border-color:#d28a2d}.notice.error{background:#ffe9e5;border-color:#bd503b}.form-card{background:#fffaf1;border:1px solid var(--line);padding:clamp(22px,4vw,40px);display:grid;gap:20px;margin:28px 0 32px}.form-card.compact{padding:22px}.form-card h2,.form-card h3{margin:0}.form-card label{display:grid;gap:7px;font:700 12px Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase}.form-card input:not([type=checkbox]),.form-card textarea,.form-card select,.chat-form input{width:100%;border:1px solid #bdb3a5;background:#fff;color:var(--ink);border-radius:0;padding:13px 14px;outline:0}.form-card input:focus,.form-card textarea:focus,.form-card select:focus,.chat-form input:focus{border-color:var(--rust);box-shadow:0 0 0 2px #c55c341f}.form-card textarea{resize:vertical;min-height:80px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}fieldset{border:1px solid var(--line);padding:18px}legend{font:700 12px Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em}.form-card label.check{display:flex;align-items:flex-start;gap:10px;text-transform:none;font-size:14px;font-weight:500;letter-spacing:0}.form-card .check input{margin-top:3px;accent-color:var(--rust)}.honeypot{position:absolute!important;left:-10000px!important}.small-action{margin:10px 0 30px}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.category{padding:14px 18px;border:1px solid var(--line);background:#fff8eb;display:flex;justify-content:space-between;gap:15px;font-size:14px}.category span{color:var(--muted)}.admin-shell{background:#eeeae1}.admin-shell .topbar{height:auto;min-height:72px}.admin-shell .topbar nav{padding:14px 0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0}.stat-grid>div{background:var(--ink);color:#fff;padding:25px}.stat-grid strong{display:block;font-size:52px;font-weight:500;line-height:1}.stat-grid span{font:700 11px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#d5cabb}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-panel{padding:30px;border:1px solid var(--line);background:#fffaf1}.admin-panel h2{font-size:29px}.admin-panel p{margin:10px 0}.mini-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:7px 0;font-size:14px}.table-wrap{overflow-x:auto;margin:15px 0 60px;background:#fffaf1;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;font:14px Arial,sans-serif;text-align:left}th,td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;max-width:350px;overflow-wrap:anywhere}th{background:#e6ddcc;font-size:11px;text-transform:uppercase;letter-spacing:.08em}td form{margin:0}.table-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.inline-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end}.inline-form .button{min-height:47px}.content-form{grid-template-columns:1fr 1fr}.content-form h2,.content-form .button{grid-column:1/-1}.content-form label:nth-last-of-type(-n+3){grid-column:1/-1}.category-admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.user-row{display:flex;align-items:center;flex-wrap:wrap;gap:20px}.user-row label{min-width:170px}.pigchat{position:fixed;right:18px;bottom:18px;z-index:20;font-family:Arial,sans-serif}.pigchat-toggle{border:2px solid #f7e9cf;background:#1d3c3b;color:#fff;padding:14px 20px;border-radius:100px;box-shadow:0 5px 26px #0005;font-weight:800;letter-spacing:.05em}.pigchat-toggle:hover{background:#b95732}.pigchat-panel{width:min(380px,calc(100vw - 36px));height:470px;max-height:calc(100svh - 100px);background:#fff9ed;color:var(--ink);border:1px solid var(--ink);box-shadow:0 8px 40px #0005;position:absolute;right:0;bottom:60px;padding:20px;display:flex;flex-direction:column}.pigchat-panel[hidden]{display:none}.pigchat-panel h2{font:800 17px Arial,sans-serif;margin:0 0 6px}.pigchat-panel>p{font-size:12px;color:var(--muted);line-height:1.3}.chat-log{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:8px 0}.chat-log.large{height:350px}.chat-bubble{max-width:92%;background:#e9e1d3;padding:10px 12px;border-radius:10px;font:14px/1.45 Arial,sans-serif;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-bubble.question{align-self:flex-end;background:var(--teal);color:white}.chat-bubble.reply{align-self:flex-start}.chat-form{display:flex;gap:6px;margin-top:8px}.chat-form input{min-width:0;font-size:14px}.chat-form button:not(.button){background:var(--ink);color:white;border:0;padding:0 12px;font-size:13px}.chat-form button:hover{background:var(--rust)}@media(max-width:950px){.topbar{align-items:flex-start;padding-top:18px;padding-bottom:18px;height:auto;min-height:72px}.topbar nav{justify-content:flex-end}.admin-shell .topbar{display:block}.admin-shell .topbar nav{justify-content:flex-start}.inline-form{grid-template-columns:1fr 1fr}.content-form{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){body{font-size:16px}.topbar{gap:10px}.topbar nav{gap:10px}.brand{font-size:11px}.topbar nav a,.topbar nav button{font-size:10px}.guest-shell .topbar{display:block}.guest-shell .topbar nav{justify-content:flex-start;margin-top:12px}.public-hero{height:83svh;min-height:580px}.public-hero>img{object-position:60% center}.public-hero:after{background:linear-gradient(0deg,#151413d8,transparent 70%)}.public-hero-copy{left:26px;right:20px;bottom:80px}.public-hero-copy h1{font-size:clamp(68px,17vw,108px)}.public-whisper{min-height:200px}.whisper-line{display:none}.guest-hero{height:600px}.guest-hero img{object-position:55% center}.guest-hero-copy{bottom:45px}.guest-hero-copy h1{font-size:65px}.image-triptych{grid-template-columns:1fr}.image-triptych img{height:240px}.action-grid,.admin-grid,.category-grid,.category-admin-grid,.field-row,.inline-form{grid-template-columns:1fr}.action-card{min-height:0}.stat-grid strong{font-size:40px}.footer{display:block}.footer span{display:block;margin:5px 0}.pigchat{right:10px;bottom:10px}.pigchat-toggle{padding:12px 16px}}

/* Story imagery on the private invitation and guest pages. */
.invitation-scene{position:relative;height:clamp(300px,48vw,570px);background:var(--teal);color:var(--cream)}
.invitation-scene>img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.invitation-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 35%,#111b1ad9)}
.invitation-scene>div{position:absolute;z-index:1;bottom:30px;left:max(24px,calc((100% - 1100px)/2));right:24px}
.invitation-scene .eyebrow{color:var(--gold)}
.invitation-scene p:last-child{font-size:clamp(30px,4.8vw,64px);line-height:1.05;margin:0;max-width:700px}
.invitation-scene+.page-top{padding-top:60px}
.action-card{overflow:hidden}.action-card>img{width:calc(100% + 50px);max-width:none;height:160px;object-fit:cover;margin:-25px -25px 22px}
.scene-row{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:clamp(25px,5vw,80px);margin:65px 0}
.scene-row>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.scene-row>div{padding:20px}.scene-row.reverse>img{order:2}
.night-panorama{margin:65px 0}.night-panorama img{width:100%;height:auto}.night-panorama figcaption{font-size:15px;color:var(--muted);padding-top:12px}
@media(max-width:650px){.scene-row{grid-template-columns:1fr;gap:12px;margin:40px 0}.scene-row.reverse>img{order:0}.scene-row>div{padding:12px 0}.invitation-scene{height:360px}.night-panorama{margin:40px 0}.action-card>img{height:200px}}
.sound-control{position:fixed;left:18px;bottom:18px;z-index:20;font:700 12px Arial,sans-serif}
.sound-control button{min-height:46px;padding:12px 18px;border:1px solid var(--gold);border-radius:100px;background:var(--ink);color:var(--cream);box-shadow:0 4px 18px #0003}
.sound-control button:hover{background:var(--teal)}
.sound-control button:focus-visible{outline:3px solid var(--rust);outline-offset:3px}
.guest-shell .footer{padding-bottom:95px}
@media(max-width:650px){.sound-control{left:10px;bottom:10px}.sound-control button{font-size:11px;padding:10px 12px;max-width:145px}.guest-shell .pigchat-toggle{font-size:12px}}

.invitation-code-card{margin:28px 0;padding:20px;border:1px solid var(--line);background:var(--cream)}
.invitation-code-card summary{cursor:pointer;font-weight:bold}.invitation-code-card p{margin:18px 0 0}.invite-code{display:inline-block;font-size:16px;letter-spacing:.05em;overflow-wrap:anywhere;user-select:all}.invitation-code-card .invite-code{margin-top:18px;font-size:clamp(16px,3.5vw,23px)}
.gallery-intro{display:flex;align-items:center;justify-content:space-between;gap:30px}.gallery-intro h1{margin-bottom:25px}.gallery-intro .button{flex-shrink:0}.gallery-years{display:flex;flex-wrap:wrap;gap:8px;padding:25px 0;border-bottom:1px solid var(--line)}.gallery-years a{padding:10px 16px;text-decoration:none;border:1px solid var(--line);font:700 13px Arial,sans-serif}.gallery-years a[aria-current]{background:var(--teal);color:var(--cream);border-color:var(--teal)}.gallery-years a:hover{border-color:var(--rust)}.gallery-year-heading{display:flex;align-items:center;gap:35px;padding:40px 0}.gallery-year-heading h2{font-size:76px;margin:0;color:var(--rust)}.gallery-year-heading p{margin:0;color:var(--muted);font-size:16px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}.gallery-photo{margin:0;background:var(--cream);border:1px solid var(--line);min-width:0}.gallery-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#e6ddcc}.gallery-photo>a{display:block}.gallery-photo figcaption{padding:20px;overflow-wrap:anywhere}.gallery-photo figcaption:empty{display:none}.gallery-photo figcaption p:last-child{margin-bottom:0}.gallery-photo .eyebrow{font-size:11px;line-height:1.5}.gallery-photo form{margin-top:16px}.photo-status{display:inline-block;font:700 11px/1.5 Arial,sans-serif;letter-spacing:.03em;padding:5px 9px;background:#ede6d7}.photo-status.pending{background:#f8e4ab}.photo-status.approved{background:#dfeade}.photo-status.rejected{background:#f1dcd5}.gallery-empty{padding:clamp(30px,6vw,75px);background:var(--teal);color:var(--cream);margin:15px 0 40px}.gallery-empty .eyebrow{color:var(--gold)}.gallery-empty .text-button{color:var(--cream)}.gallery-pagination{display:flex;gap:25px;justify-content:center;margin:35px 0}.gallery-upload{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,6vw,85px);border-top:1px solid var(--line);padding-top:60px;margin-top:70px;scroll-margin-top:30px}.gallery-upload .form-card{margin-top:0}.gallery-upload input[type=file]{font:14px Arial,sans-serif}.gallery-upload #photo-help{font-size:14px;margin:0}.gallery-upload .upload-progress{margin:0;color:var(--teal)}.gallery-filter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:24px 0}.gallery-filter select{padding:12px;background:var(--cream);border:1px solid var(--line)}
@media(max-width:950px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-intro{display:block}.gallery-intro>.button{margin:12px 0}.gallery-upload{grid-template-columns:1fr;gap:15px}}@media(max-width:650px){.gallery-grid{grid-template-columns:1fr}.gallery-years a{padding:10px 12px}.gallery-year-heading{display:block}.gallery-year-heading p{margin-top:15px}.gallery-page{padding-top:60px}.gallery-photo figcaption{padding:18px}}
.invite-role-form{display:grid;gap:10px;min-width:100px}.invite-role-form select{padding:9px;background:var(--cream);border:1px solid var(--line)}.todo-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0}.todo-counts a{background:var(--teal);color:var(--cream);padding:22px;text-decoration:none}.todo-counts strong{display:block;font-size:44px;font-weight:normal;line-height:1}.todo-counts span{font:700 11px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.todo-create{border:1px solid var(--line);padding:22px;background:var(--cream);margin:25px 0}.todo-create>summary,.todo-edit>summary{cursor:pointer;font:700 13px Arial,sans-serif}.todo-create .form-card{border:0;margin-bottom:0}.todo-filters{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin:30px 0}.todo-filters label{display:grid;gap:7px;font:700 12px Arial,sans-serif}.todo-filters select{padding:12px;background:var(--cream);border:1px solid var(--line);max-width:280px}.todo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.todo-card{min-width:0;padding:28px;background:var(--cream);border:1px solid var(--line);overflow-wrap:anywhere}.todo-card h2{font-size:30px;margin:22px 0 18px}.todo-notes{white-space:pre-wrap;font-size:16px}.todo-assigned{font-size:15px}.todo-badges{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font:700 11px Arial,sans-serif}.todo-status{background:#e9e1d2;padding:7px 10px}.todo-status.in_progress{background:#dce8e5}.todo-status.blocked{background:#f5dbcf}.todo-status.done{background:#dcebdc}.todo-priority.high{color:#ac3a23}.todo-edit{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.todo-archive{margin-top:20px}.todo-assignees{display:grid;gap:12px;max-height:240px;overflow:auto}.todo-field-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.todo-field-row input,.todo-field-row select{min-width:0}.todo-card .form-card{padding:16px 0;border:0;margin-bottom:0;background:none}
@media(max-width:950px){.todo-field-row{grid-template-columns:1fr}.todo-list{grid-template-columns:1fr}}@media(max-width:650px){.todo-counts{grid-template-columns:repeat(2,1fr)}.todo-counts a{padding:18px}.todo-card{padding:22px}.todo-create{padding:18px}.todo-create .form-card{padding:20px 0}.todo-filters label{width:100%}.todo-filters select{max-width:100%;width:100%}}
