@font-face{font-family:StudySerif;src:local('Baskerville'),local('Iowan Old Style'),local('Palatino Linotype');font-display:swap}
:root{--paper:#f3f0e8;--ink:#292d2b;--blue:#3e586b;--muted:#696b65;--line:#d2d1c7;--serif:StudySerif,'Palatino Linotype',Palatino,Georgia,serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:7px}a{color:inherit;text-underline-offset:5px}button:disabled{cursor:default}[hidden]{display:none!important}
.study-label{padding:7px 28px;background:#e4e3da;color:#555d60;font-size:10px;letter-spacing:.12em;text-transform:uppercase;display:flex;justify-content:space-between}
.masthead{margin:0 5vw;min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:20px}.wordmark{font-size:24px;font-weight:800;letter-spacing:-1.6px;text-decoration:none}.artist{font-size:12px;color:var(--muted);margin-left:auto;margin-right:4vw}.text-button{padding:10px 0;background:none;border:0;border-bottom:1px solid transparent;font-size:12px;letter-spacing:.01em}.text-button:hover{border-bottom-color:currentColor}.arrival{min-height:calc(100svh - 238px);display:flex;flex-direction:column;align-items:center;padding:15px 24px 40px}.arrival-copy{text-align:center;transition:opacity .5s}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:10px;color:var(--muted);margin:0 0 20px}h1{font-family:var(--serif);font-size:clamp(36px,4.3vw,62px);font-weight:400;letter-spacing:-.04em;line-height:1.12;margin:0}.threshold{position:relative;width:min(790px,88vw);height:clamp(285px,38vw,400px);margin:40px auto 20px;perspective:1500px}.gate{position:absolute;inset:0 4%;display:flex;isolation:isolate}.gate-leaf{width:50%;height:100%;will-change:transform;transition:transform 1.5s cubic-bezier(.4,0,.15,1),opacity 1s .3s;backface-visibility:hidden}.left-leaf{transform-origin:0 55%}.right-leaf{transform-origin:100% 55%}.gate svg{display:block;width:100%;height:100%;overflow:visible}.gate-wash{fill:#e4e9e6;fill-opacity:.42}.iron{stroke:var(--blue);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}.hinge{stroke:var(--blue);stroke-width:6}.latch{fill:var(--blue)}.gate-post{position:absolute;width:7px;background:var(--blue);bottom:0;height:65%;border-radius:3px 3px 0 0}.post-left{left:0}.post-right{right:0}.gate-ground{height:1px;background:var(--line);position:absolute;bottom:0;left:-6vw;right:-6vw}.invitation{position:absolute;z-index:2;top:44%;left:50%;transform:translate(-50%,-28%) rotate(-3deg);width:180px;min-height:148px;background:#f8f6ee;border:1px solid #c6c6ba;box-shadow:1px 3px 0 #c6c6ba45;display:flex;align-items:center;flex-direction:column;padding:20px 10px 14px;transition:transform .35s,opacity .3s}.invitation:hover{transform:translate(-50%,-31%) rotate(0deg)}.invitation-small{font-size:9px;font-weight:700;letter-spacing:.22em}.invitation-title{white-space:nowrap;font:italic 38px/1.4 var(--serif);margin:3px 0 9px}.invitation-action{font-size:10px}.invitation-action span{padding-left:15px}.arrival-foot{width:min(630px,90vw);display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;margin-top:0}.opening .left-leaf{transform:rotateY(-108deg);opacity:0}.opening .right-leaf{transform:rotateY(108deg);opacity:0}.opening .invitation{transform:translate(-50%,-10%) rotate(2deg);opacity:0;pointer-events:none}.opening .arrival-copy,.opening .arrival-foot{opacity:0}.arrival-foot{transition:opacity .3s}
footer{margin:0 5vw;min-height:104px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.05em}footer>span{font-weight:700}footer p{font:italic 17px var(--serif);letter-spacing:0;color:var(--muted)}
.viewing{padding:12px 24px 50px;text-align:center;animation:arrive 1s ease both}.viewing-head .eyebrow{margin-bottom:14px}.viewing-head h1{font-size:clamp(30px,3.4vw,48px)}.viewing-head h1:focus{outline:none}.painting{width:min(520px,76vw);margin:32px auto 12px}.painting button{border:0;padding:0;background:none;display:block;width:100%;cursor:zoom-in}.painting img{width:100%;height:auto;display:block}.painting figcaption{display:flex;justify-content:space-between;font-size:11px;margin-top:12px;color:var(--muted)}.viewing-links{width:min(520px,76vw);display:flex;justify-content:space-between;margin:17px auto 0}.viewing-note{color:var(--muted);font-size:10px;line-height:1.6;margin-top:28px}.return{color:var(--muted);margin-top:12px}
dialog{padding:0;border:0;background:#f8f6f0;color:var(--ink);width:min(720px,calc(100vw - 32px));max-height:calc(100svh - 48px);margin:auto;overscroll-behavior:contain}dialog::backdrop{background:#27364366;backdrop-filter:blur(5px)}.dialog-top{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:14px 36px;background:#f8f6f0;border-bottom:1px solid var(--line);font-size:11px;z-index:1}article{padding:40px 60px 56px}article h2{font:400 clamp(34px,5vw,50px)/1.08 var(--serif);letter-spacing:-.04em;margin:0 0 32px}article p{font:18px/1.7 var(--serif);margin:22px 0}article h3{font:400 28px/1.2 var(--serif);margin-top:40px}.signature{font-style:italic!important;margin-top:35px!important}.aside{font:12px/1.7 Arial,sans-serif!important;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.record{font-size:12px;margin:30px 0}.record>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 0}.record dd{margin:0}.record dt{color:var(--muted)}.angel{width:100%;height:auto;display:block}.journal-entry{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:30px 0}.journal-entry>span{font-size:10px;color:var(--muted)}.journal-entry p{font-style:italic;margin:10px 0}.noscript-note{text-align:center;padding:20px}#close-view{width:min(920px,calc(100vw - 28px));background:var(--paper);padding:16px}#close-view .close-dialog{display:block;margin:0 0 12px auto}#close-view img{display:block;width:100%;height:auto}.close-dialog span{padding-left:15px;font-size:20px;line-height:1}body.modal-open{overflow:hidden}@keyframes arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(min-height:850px) and (min-width:700px){.arrival{justify-content:center}.threshold{margin-top:50px;margin-bottom:26px}}@media(max-width:600px){.study-label{font-size:8px;padding:7px 18px}.masthead{min-height:85px;margin:0 24px}.wordmark{font-size:22px}.artist{display:none}.arrival{min-height:calc(100svh - 220px);padding:36px 20px 25px}.gate-ground{left:0;right:0}.threshold{width:100%;height:280px;margin-top:40px}.gate{inset:0 1%}.invitation{width:142px;min-height:126px;padding:14px 7px 11px;top:41%}.invitation-title{font-size:32px}.invitation-small{font-size:8px}.invitation-action{font-size:9px}.gate-post{width:5px}.iron{stroke-width:3}.arrival-foot{width:90vw;margin-top:14px}.arrival-foot .text-button{font-size:10px}footer{margin:0 24px;min-height:94px;flex-wrap:wrap;gap:4px 20px;padding:18px 0}footer p{font-size:15px;order:3;width:100%;margin:0}footer .text-button{margin-left:auto}.painting,.viewing-links{width:min(520px,88vw)}.viewing{padding:24px 16px 40px}.dialog-top{padding:10px 24px}article{padding:32px 26px 40px}article p{font-size:17px}dialog{max-height:calc(100svh - 24px)}.viewing-head h1{max-width:300px;margin:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Public entrance: the existing invitation service remains the account boundary. */
.gate-nav{display:flex;align-items:center;gap:26px}.gate-nav a{text-decoration:none}.arrival{min-height:calc(100svh - 208px)}.viewing-note a{display:inline-block;margin:5px 0}.invitation-title{font-size:36px}
@media(max-width:600px){.masthead{margin:0 20px;gap:10px}.wordmark{font-size:20px}.gate-nav{gap:16px}.gate-nav .text-button{font-size:11px}.arrival{min-height:calc(100svh - 179px)}.invitation-title{font-size:30px}}
