html,body{margin:0;padding:0;background:#171310}body{font-family:Cormorant Garamond,Georgia,serif;color:#eae3d2;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:#eae3d2;text-decoration:none}a:hover{color:#c2a268}::selection{background:#b08d4f;color:#171310}:focus-visible{outline:2px solid #C2A268;outline-offset:4px;border-radius:1px}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(-1.2%,.8%)}50%{transform:translate(.8%,-1.2%)}75%{transform:translate(-.6%,-.6%)}to{transform:translate(0)}}@keyframes stamp{0%{opacity:0;transform:rotate(-8deg) scale(1.5)}14%{opacity:1;transform:rotate(-8deg) scale(1)}72%{opacity:1;transform:rotate(-8deg) scale(1)}to{opacity:0;transform:rotate(-8deg) scale(1)}}.page{position:relative;transition:filter .9s ease;min-height:100svh;background:#171310;color:#eae3d2;overflow:hidden}.page[data-mode=lumos]{filter:invert(1) hue-rotate(180deg)}.page[data-mode=lumos] .glow{opacity:0}.grain{position:fixed;top:-50%;left:-50%;width:200%;height:200%;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22300%22 height=%22300%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%220.8%22 numOctaves=%222%22 stitchTiles=%22stitch%22/%3E%3CfeColorMatrix type=%22saturate%22 values=%220%22/%3E%3C/filter%3E%3Crect width=%22300%22 height=%22300%22 filter=%22url(%23n)%22 opacity=%220.55%22/%3E%3C/svg%3E");background-size:280px 280px;animation:grain 28s linear infinite;z-index:5}.glow{position:fixed;top:0;left:0;width:480px;height:480px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#b08d4f17,#b08d4f00 62%);z-index:1;transform:translate(-800px,-800px)}.stamp-wrap{position:fixed;inset:0;display:none;align-items:center;justify-content:center;pointer-events:none;z-index:6}.stamp-wrap.is-stamped{display:flex}.stamp{color:#a8473d;transform:rotate(-8deg);animation:stamp 2.5s ease both;border:2px solid currentColor;outline:1px solid currentColor;outline-offset:-7px;padding:1.6rem 2.8rem;text-align:center}.stamp-label{font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.35em;text-transform:uppercase}.stamp-fleuron{font-size:1.5rem;line-height:1.6}.stamp-name{font-style:italic;font-size:1.7rem;line-height:1.1}.frame-outer{position:absolute;inset:clamp(12px,2.2vw,24px);border:1px solid rgba(176,141,79,.38);pointer-events:none;animation:fade 1.6s ease .1s both;z-index:2}.frame-inner{position:absolute;inset:clamp(17px,2.2vw + 5px,29px);border:1px solid rgba(176,141,79,.16);pointer-events:none;animation:fade 1.6s ease .25s both;z-index:2}.content{position:relative;z-index:3;min-height:100svh;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(2.5rem,5vh,4rem);padding:clamp(2.75rem,7vw,6rem)}.masthead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:400;letter-spacing:.3em;color:#b99662;text-transform:uppercase;animation:fade 1.1s ease .45s both}.seal-btn{background:none;border:0;margin:0;padding:0 .25rem;cursor:pointer;font-family:Cormorant Garamond,Georgia,serif;font-size:16px;letter-spacing:0;color:#b99662a6}.datestamp{cursor:default}.datestamp .date-full{display:none}.datestamp:hover .date-full,.datestamp:focus .date-full{display:inline}.datestamp:hover .date-short,.datestamp:focus .date-short{display:none}.hero{display:flex;flex-direction:column;gap:clamp(1.4rem,3vh,2.2rem);margin-top:auto;margin-bottom:auto}.hero h1{margin:0;font-weight:500;font-size:clamp(2.9rem,9.5vw,7.2rem);line-height:.98;letter-spacing:-.015em;text-wrap:balance;animation:rise 1.1s cubic-bezier(.22,1,.36,1) .65s both}.rule{width:clamp(72px,12vw,140px);height:1px;background:linear-gradient(90deg,#b08d4f,#b08d4f1f);transform-origin:left;animation:draw 1.2s cubic-bezier(.22,1,.36,1) 1.1s both}.role{margin:0;font-family:IBM Plex Mono,monospace;font-size:clamp(11px,1.4vw,13px);letter-spacing:.42em;text-transform:uppercase;color:#c9bfa8;animation:fade 1.1s ease 1.25s both}.bio{margin:0;max-width:52ch;font-size:clamp(1.1rem,2.2vw,1.35rem);font-weight:400;line-height:1.55;color:#eae3d2d1;text-wrap:pretty;animation:fade 1.1s ease 1.4s both}.index-label{margin:0 0 clamp(.75rem,1.5vh,1.1rem);font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#c9bfa8b3;animation:fade 1s ease 1.4s both}.index{display:flex;flex-direction:column}.project{display:flex;align-items:baseline;gap:clamp(1rem,3vw,2rem);padding:clamp(.95rem,1.9vh,1.2rem) 0;border-top:1px solid rgba(234,227,210,.14);color:#eae3d2;transition:transform .45s cubic-bezier(.22,1,.36,1),color .3s ease}.project:last-child{border-bottom:1px solid rgba(234,227,210,.14)}.project:nth-child(1){animation:rise .9s cubic-bezier(.22,1,.36,1) 1.5s both}.project:nth-child(2){animation:rise .9s cubic-bezier(.22,1,.36,1) 1.65s both}.project:nth-child(3){animation:rise .9s cubic-bezier(.22,1,.36,1) 1.8s both}.project:hover{transform:translate(10px);color:#c2a268}.project-num{font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.2em;color:#b99662}.project-name{flex:1;font-size:clamp(1.35rem,3.4vw,2rem);font-weight:500;line-height:1.15}.marginalia{font-style:italic;font-size:clamp(.85rem,1.6vw,1.05rem);color:#c9bfa8bf;opacity:0;transform:translate(-6px);transition:opacity .45s ease,transform .45s ease;white-space:nowrap}.project:hover .marginalia{opacity:1;transform:translate(0)}.project-arrow{font-family:IBM Plex Mono,monospace;font-size:14px;opacity:.55}@media(hover:none){.marginalia{display:none}}.colophon{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem 2rem;animation:rise 1s cubic-bezier(.22,1,.36,1) 2.05s both}.contact-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.85rem 1.9rem;border:1px solid #B08D4F;background:#b08d4f14;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:#eae3d2;transition:background .35s ease,color .35s ease,border-color .35s ease}.contact-btn:hover{background:#eae3d2;color:#171310;border-color:#eae3d2}.linkedin{display:inline-flex;align-items:center;min-height:44px;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#c9bfa8;border-bottom:1px solid rgba(201,191,168,.35);transition:color .3s ease,border-color .3s ease}.linkedin:hover{color:#c2a268;border-color:#c2a268}@media(prefers-reduced-motion:reduce){.frame-outer,.frame-inner,.grain,.masthead,.hero h1,.rule,.role,.bio,.index-label,.project,.colophon{animation:none!important}*{transition-duration:.01ms!important}}
