@font-face{font-family:LoriSerif;src:url('./assets/serif-italic.woff') format('woff');font-style:italic;font-weight:500;font-display:swap}
@font-face{font-family:LoriMono;src:url('./assets/mono.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:light;--paper:#fffdf9;--ink:#4d2c21;--line:#765346;--pink:#fcecea;--brown:#836953;--rose:#c9897c;--cream:#fff9ed;--mono:LoriMono,'Courier New',monospace;--serif:LoriSerif,Georgia,serif}
*{box-sizing:border-box}
html{min-width:280px;scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--mono);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.25;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23aa8b73' opacity='.12' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{color:inherit;font:inherit}
button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
button{cursor:pointer}
.page{width:min(680px,calc(100% - 40px));margin:28px auto 0}
.welcome{margin:0 0 25px;text-align:center;font-size:13px;line-height:1.6;letter-spacing:.04em}
.welcome-face{white-space:nowrap;margin-left:.4em}
.panel{position:relative;border:1px solid var(--line);border-radius:18px;background:rgba(255,253,249,.72)}
.profile{margin-bottom:14px}
.masthead{height:44px;display:grid;grid-template-columns:40px 1fr 40px;align-items:center;padding:0 18px;border-bottom:1px solid var(--line);border-radius:17px 17px 0 0;background:#fbf4ec}
.masthead-title{margin:0;text-align:center;font-family:Georgia,serif;font-size:21px;letter-spacing:.13em;font-weight:400}
.masthead-heart{width:20px;height:20px;fill:var(--ink)}
.envelope-link{justify-self:end;display:grid;place-items:center;width:30px;height:30px;border-radius:6px}
.envelope-link svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.35}
.profile-body{display:grid;grid-template-columns:36% minmax(0,1fr);gap:31px;padding:20px 25px 25px;align-items:center}
.portrait{margin:0;border:1px solid var(--line);border-radius:14px;padding:5px;overflow:hidden;background:#fefcf9;line-height:0}
.portrait img{display:block;width:100%;height:auto;aspect-ratio:280/388;object-fit:contain;border-radius:10px}
.identity{align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0;gap:18px}
h1{margin:0;line-height:0;font-size:inherit}
.wordmark{display:block;width:100%;height:auto;aspect-ratio:472/172}
.profile-fields{margin:0;display:grid;gap:13px}
.profile-field dt{font-size:16px;letter-spacing:.04em;margin:0 0 5px}
.profile-field dd{margin:0;background:linear-gradient(110deg,#fff5f3,#fcebea);border:1px solid #997b70;border-radius:9px;min-height:41px;padding:8px 13px;font-size:19px;line-height:1.25;white-space:nowrap}
.ribbon{position:absolute;right:-35px;top:-15px;width:95px;height:170px;pointer-events:none;z-index:2;overflow:visible}
.ribbon .bow-outline{fill:none;stroke:#b27769;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ribbon .bow-highlight{fill:none;stroke:#e6b3a6;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.corner-doodle{position:absolute;left:-16px;bottom:-8px;width:104px;height:34px;pointer-events:none;fill:none;stroke:#bd7e70;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;z-index:2}
.links-panel{padding:20px 15px 25px}
.links-header{text-align:center;margin:0 0 15px}
.links-header h2{font-family:var(--serif);font-weight:500;font-style:italic;font-size:36px;letter-spacing:.045em;line-height:1.2;margin:0 0 12px}
.heart-divider{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--rose);margin:0 auto 10px;width:49%}
.heart-divider::before,.heart-divider::after{content:'';height:1px;background:var(--line);flex:1}
.heart-divider svg{width:15px;height:17px;fill:#efd0c4;stroke:var(--line);stroke-width:1.4}
.say-hi{font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.2;letter-spacing:.18em;margin:0}

.social-list{list-style:none;padding:0;margin:0;display:grid;gap:7px}
.social-link{position:relative;display:flex;align-items:center;gap:22px;width:100%;min-height:63px;padding:9px 23px 9px 43px;border:1px solid var(--line);border-radius:100px;background:var(--paper);text-align:left;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.social-link.pink{background:linear-gradient(105deg,#fff1ef,#fceae7)}
.social-link.brown{background:var(--brown);color:var(--cream);border-color:var(--brown)}
.social-link:hover{transform:translateY(-2px);box-shadow:0 4px 0 #76534612;filter:brightness(1.015)}
.social-link:active{transform:translateY(0);box-shadow:none}
.platform-icon{width:39px;height:39px;fill:currentColor;flex:0 0 39px}
.social-title{display:inline-flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:500;font-style:italic;font-size:30px;letter-spacing:.035em;line-height:1.1}
.title-heart{width:22px;height:25px;stroke:currentColor;fill:none;stroke-width:1.25;flex-shrink:0}
.link-arrow{margin-left:auto;display:grid;place-items:center;width:39px;height:39px;border:1px solid currentColor;border-radius:50%;flex:0 0 39px;transition:transform .2s ease}
.link-arrow svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.social-link:hover .link-arrow{transform:rotate(6deg)}
.contact-wrap{text-align:center;margin-top:19px}
.contact-wrap summary{cursor:pointer;list-style:none}
.contact-wrap summary::-webkit-details-marker{display:none}
.contact-wrap summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.contact-email{width:fit-content;max-width:100%;margin:14px auto 0;padding:12px 14px;border:1px solid #997b70;border-radius:10px;background:var(--pink);font-family:var(--mono);font-size:clamp(11px,3.1vw,15px);line-height:1.6;user-select:text;overflow-wrap:anywhere}
.contact{display:inline-flex;position:relative;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:8px 37px;background:var(--brown);color:var(--cream);border:1px solid var(--line);border-radius:99px;font-family:var(--serif);font-weight:500;font-style:italic;font-size:27px;letter-spacing:.035em;transition:transform .18s ease,box-shadow .18s ease}
.contact:hover{transform:translateY(-2px);box-shadow:0 4px 0 #76534612}
.contact .mail-icon{width:28px;height:24px;stroke:currentColor;fill:none;stroke-width:1.4}

.footer{padding:23px 0 27px;text-align:center;font-size:13px;letter-spacing:.04em}
.footer-heart{font-size:20px;vertical-align:-1px;margin-left:4px}


.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}
@media(min-width:1000px){.page{margin-top:35px}}
@media(max-width:560px){
 .page{width:calc(100% - 30px);margin-top:20px}.welcome{font-size:clamp(8.5px,2.4vw,12px);margin-bottom:17px;letter-spacing:.01em}
 .masthead{height:37px;padding:0 13px}.masthead-title{font-size:18px}.masthead-heart{width:17px;height:17px}.envelope-link svg{width:20px;height:20px}
 .profile-body{grid-template-columns:35% minmax(0,1fr);gap:15px;padding:15px 14px 18px}.portrait{padding:3px;border-radius:11px}.portrait img{border-radius:8px}
 .identity{gap:13px}.profile-fields{gap:10px}.profile-field dt{font-size:12px;margin-bottom:4px}.profile-field dd{min-height:31px;padding:6px 8px;font-size:clamp(11px,3.65vw,16px);border-radius:7px}
 .ribbon{right:-14px;top:-11px;width:63px;height:114px}.corner-doodle{width:78px;height:26px;left:-9px;bottom:-7px}
 .links-panel{padding:17px 11px 20px}.links-header{margin-bottom:13px}.links-header h2{font-size:clamp(25px,6.6vw,34px);letter-spacing:.025em;margin-bottom:10px}.heart-divider{width:54%;margin-bottom:8px}.say-hi{font-size:16px;letter-spacing:.13em}
 .social-list{gap:7px}.social-link{min-height:55px;padding:9px 15px 9px 28px;gap:16px}.platform-icon{width:30px;height:30px;flex-basis:30px}.social-title{font-size:clamp(23px,6vw,29px);gap:7px;letter-spacing:.02em}.title-heart{width:18px;height:20px}.link-arrow{width:31px;height:31px;flex-basis:31px}.link-arrow svg{width:19px;height:19px}
 .contact-wrap{margin-top:16px}.contact{font-size:24px;min-height:46px;padding:7px 34px;gap:10px}.contact .mail-icon{width:24px;height:22px}.footer{padding:21px 0 23px;font-size:11px}
}
@media(max-width:350px){.profile-body{gap:10px;padding:12px 10px}.identity{gap:10px}.profile-field dd{padding-left:6px}.social-link{gap:12px}.social-title{font-size:22px}.links-header h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.icon-definitions{position:absolute;overflow:hidden}
.contact-caption{text-align:center;font-size:12px;margin:23px 0 10px;letter-spacing:.04em}
.contact-caption + .contact-wrap{margin-top:0}
.copy-email{margin:10px auto 0;min-height:44px;padding:9px 18px;border:1px solid var(--line);border-radius:99px;background:var(--paper);font-size:12px}
.copy-email[hidden]{display:none}
.copy-email:hover{background:var(--pink)}
.copy-feedback{font-size:11px;line-height:1.6;margin:8px 0 0}
.copy-feedback:empty{display:none}
