:root{--black:#100e0d;--cream:#f0e5d7;--gold:#c6a17c;--serif:'Libre Caslon Display',Georgia,serif;--script:Lettering,'Brush Script MT',cursive;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#3b2e25,#191512 60%);color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased}button{font:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}svg{display:block;width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.skip{position:fixed;top:-100px;padding:12px;background:var(--cream);color:var(--black);z-index:20}.skip:focus{top:12px}.bio{max-width:680px;margin:auto;background:#090909;overflow:hidden}.hero{height:460px;position:relative;isolation:isolate;background:#35251b}.portrait{position:absolute;left:0;top:0;width:65%;height:100%;object-fit:cover;object-position:center 30%;z-index:-2}.hero-veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#090909,transparent 38%),linear-gradient(90deg,transparent 27%,#21180f55 43%,#281c14 75%)}.brand{position:absolute;right:3%;top:68px;width:48%;text-align:center}.monogram{font:67px var(--script);display:block;color:#ead8c3;line-height:1.1}h1{font:37px/1 var(--serif);font-weight:400;margin:18px 0 12px}h1 span{display:block}.specialty{font-size:10px;letter-spacing:.2em;color:var(--gold)}.intro{font-size:15px;line-height:1.65;margin-top:28px}.intro em{font:37px var(--script);color:#e0bc98}.hero-caption{position:absolute;bottom:25px;left:0;width:100%;text-align:center;font-size:10px;letter-spacing:.16em;color:var(--gold)}.social-line{display:flex;align-items:center;gap:11px;padding:0 26px;margin:3px 0 0}.social-line>span{height:1px;background:linear-gradient(90deg,transparent,#98785c);flex:1}.social-line>span:last-child{transform:rotate(180deg)}.social-line button{color:var(--cream);background:linear-gradient(135deg,#352e29,#141312);border:1px solid #8e7864;width:42px;height:42px;display:grid;place-items:center;border-radius:3px}.links{padding:0 28px 24px}.invitation{font:37px/1.25 var(--script);color:#dfba97;text-align:center;margin:40px 0 29px}.invitation span{font-size:43px}.card{width:100%;display:flex;align-items:center;gap:17px;min-height:107px;margin-bottom:17px;padding:18px 17px;color:#342a21;border:1px solid #e2c8ad;border-radius:4px;background:linear-gradient(105deg,#f5eee5,#c6a786);text-align:left;box-shadow:0 7px 23px #0002;transition:transform .3s ease,box-shadow .3s ease,opacity .65s ease;cursor:pointer}.card .icon{height:49px;width:49px;flex-shrink:0;display:grid;place-items:center;border:1px solid #aa866144;background:#fff4d83d;color:#795b3f;border-radius:3px}.lettering{font-family:var(--script)}.icon.lettering{font-size:29px}.copy{flex:1}.title{display:block;font:26px/1.1 var(--serif);margin-bottom:6px}.description{display:block;font-size:13px;line-height:1.45}.arrow{font-size:23px;font-weight:400;color:#69523e}.closing{margin:-4px 0 0;position:relative;height:260px;isolation:isolate}.closing img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 57%;z-index:-2}.closing:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#090909 0%,#09090910 55%,#090909 100%);z-index:-1}.closing figcaption{position:absolute;bottom:27px;left:27px;font:25px/1.1 var(--serif)}.closing em{font:37px var(--script);color:var(--gold)}footer{text-align:center;padding:20px 22px 29px}footer p{font-size:10px;letter-spacing:.13em}footer p span{margin:0 6px;color:var(--gold)}footer small{font-size:10px;line-height:1.8;color:#b3a699}.reveal{transition:opacity .65s ease,transform .65s ease}.waiting{opacity:0;transform:translateY(15px)}.brand{animation:entrance .9s ease both}dialog{padding:0;width:min(560px,calc(100% - 28px));max-height:88dvh;overflow:auto;border:1px solid #a88566;border-radius:5px;background:linear-gradient(145deg,#231c16,#100e0d 65%);color:var(--cream);box-shadow:0 30px 100px #0008}dialog::backdrop{background:#060402b8;backdrop-filter:blur(5px)}dialog[open]{animation:entrance .3s ease both}dialog.leaving{animation:exit .22s ease both}.close{position:sticky;top:12px;float:right;margin:12px 12px 0 0;z-index:5;height:38px;width:38px;border:1px solid #c6a17c88;background:#171310e8;color:var(--cream);font-size:25px;cursor:pointer;border-radius:3px}.dialog-head{padding:38px 27px 23px}.eyebrow{font-size:10px;letter-spacing:.17em;color:var(--gold);line-height:1.6;margin:0 0 15px}h2{font:37px/1.15 var(--serif);font-weight:400;margin:0 0 18px}h2 em{font:46px var(--script);font-weight:400;color:#dfba97}.dialog-head>p:last-child,.about-copy>p:not(.eyebrow):not(.sign):not(.demo-note){font-size:15px;line-height:1.7;color:#ddcebd}.service-group{border-top:1px solid #b68b5733}.service-group>img{width:100%;height:190px;object-fit:cover}.service-content{padding:25px 27px}h3{font:30px var(--serif);margin:0 0 20px}ul{list-style:none;margin:0;padding:0}li{padding:12px 0;border-top:1px solid #a885662b}li strong{font-size:15px;display:block;font-weight:500}li span{display:block;margin-top:6px;font-size:14px;line-height:1.55;color:#c4b5a6}.demo-note{font-size:11px!important;line-height:1.6;color:#ad9985;padding:0 27px 20px;margin:0}.about-photo{width:100%;height:285px;object-fit:cover;object-position:50% 28%;display:block;margin-top:-50px}.about-copy{padding:30px 27px}.about-copy .demo-note{padding:0}.values{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.values span{border:1px solid #98785c66;padding:8px 12px;font-size:12px;color:var(--gold)}.sign{font-size:37px;margin:22px 0;color:#e0bc98}.locked{overflow:hidden}@media(hover:hover) and (pointer:fine){.card:not(.waiting):hover{scale:1.025;box-shadow:0 12px 35px #bfa38114}}@media(min-width:720px){.bio{margin:30px auto;border:1px solid #856b4938}.hero{height:540px}.brand{top:72px}.monogram{font-size:88px}h1{font-size:49px}h1 span{display:inline}.intro{font-size:18px}.intro em{font-size:45px}.links{padding:0 54px 27px}.card{min-height:118px;padding:23px;gap:22px}.title{font-size:30px}.description{font-size:14px}.invitation{font-size:44px}.invitation span{font-size:49px}.social-line{padding:0 40px}.closing{height:320px}.closing figcaption{left:54px}}@media(max-width:360px){.links{padding-left:20px;padding-right:20px}.card{gap:12px;padding:15px 12px}.title{font-size:23px}.description{font-size:12px}.card .icon{width:42px;height:44px}.hero{height:425px}.brand{right:2%;width:49%}h1{font-size:33px}.intro{font-size:13px}.specialty{font-size:8px}}@keyframes entrance{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes exit{to{opacity:0;transform:translateY(7px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.waiting{opacity:1;transform:none}.card:not(.waiting):hover{transform:none}}

/* Fade the photograph itself to brown before its edge, eliminating the hard seam. */
.portrait{-webkit-mask-image:linear-gradient(to right,#000 0%,#000 52%,#000c 66%,#0006 82%,transparent 100%);mask-image:linear-gradient(to right,#000 0%,#000 52%,#000c 66%,#0006 82%,transparent 100%)}
.hero{background:#281c14}.hero-veil{background:linear-gradient(0deg,#090909 0%,#09090985 10%,transparent 40%),linear-gradient(90deg,transparent 34%,#281c1433 48%,#281c14a6 65%,#281c14 83%)}
.brand{text-shadow:0 2px 15px #10090480}
/* Hover has one settled endpoint and is independent of entrance transforms. */
.card{scale:1;transition:scale .32s ease-out,transform .65s ease,opacity .65s ease,box-shadow .32s ease-out}
.about-photo{height:300px;object-position:center 38%}
@media(prefers-reduced-motion:reduce){.card:not(.waiting):hover{scale:1}}
