@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Patrick+Hand+SC&family=Yuyu&display=swap');
:root{--cream:#faf4e8;--peach:#e9aa91;--sage:#a4b79a;--yellow:#e7ca6d;--ink:#343d36;--muted:#64685d;--line:#ddd7c9;--serif:'Yuyu',cursive;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #926747;outline-offset:5px}img{max-width:100%;display:block}button{cursor:pointer}.wrap{width:min(1240px,calc(100% - 100px));margin:auto}.site-header{height:124px;display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand img{object-fit:contain}.brand>span{font:500 31px var(--serif);letter-spacing:-1.5px}.brand small{display:block;font:10px var(--sans);letter-spacing:1.6px;margin-top:5px}.site-header nav{display:flex;gap:32px;margin-left:auto;font-size:13px}.site-header nav a{position:relative;padding:10px 0}.site-header nav a:hover:after{content:'';position:absolute;bottom:3px;left:0;width:100%;height:2px;background:var(--peach)}.language{display:flex;gap:9px;font-size:12px}.language a{opacity:.55}.language a[aria-current]{opacity:1;font-weight:700}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.06fr 1fr;gap:78px;align-items:center;padding-top:58px;padding-bottom:72px;min-height:700px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.3px;margin:0 0 24px}.hero-copy{position:relative;padding:16px 0}.hero h1{font:500 clamp(48px,5.5vw,76px)/1.08 var(--serif);letter-spacing:-3px;margin:0 0 30px}.lead{max-width:400px;font-size:16px;color:var(--muted);margin-bottom:32px}.button{display:inline-flex;align-items:center;gap:36px;background:var(--ink);color:var(--cream);padding:14px 23px;border-radius:4px;font-size:13px;font-weight:500;border:1px solid var(--ink);transition:background .2s,transform .2s}.button:hover{background-color:#4c594c;transform:translateY(-2px)}.button span{font-size:20px;line-height:1}.text-link{font-size:13px;display:inline-block;border-bottom:1px solid var(--ink);padding-bottom:3px}.hero .text-link{display:block;width:max-content;margin-top:20px}.hero-art{position:relative;padding:15px;background:#e7ca6d;border-radius:160px 160px 12px 12px;transform:rotate(2deg);margin:6px 12px 18px}.hero-art>picture>img{width:100%;height:490px;object-fit:cover;border-radius:145px 145px 4px 4px}.art-label{position:absolute;z-index:1;left:-28px;top:48px;background:var(--cream);border:1px solid var(--ink);font-size:10px;padding:8px 12px;border-radius:3px;transform:rotate(-8deg)}.art-label span{margin-left:12px}.hero-note{position:absolute;right:-12px;bottom:-25px;background:var(--cream);font:italic 18px var(--serif);padding:10px 20px;transform:rotate(-6deg)}.specialties{background:var(--sage);text-align:center;padding:17px 22px}.specialties p{margin:0;font-size:11px;font-weight:600;letter-spacing:1.9px;word-spacing:5px}.section{padding-top:92px;padding-bottom:96px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:34px}.section-heading .eyebrow{margin-bottom:13px}h2{font:500 clamp(30px,3.1vw,43px)/1.15 var(--serif);letter-spacing:-1.2px;margin:0}.section-heading>p{font-size:13px;color:var(--muted);max-width:305px;margin:0 0 3px}.filters{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0}.filters button{padding:8px 18px;background:transparent;border:1px solid var(--line);border-radius:25px;font-size:12px}.filters button[aria-pressed=true]{background:var(--ink);color:var(--cream);border-color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px}.work-card{padding:0;border:0;background:transparent;text-align:left;min-width:0}.art-frame{position:relative;display:block;background:#eee7db;overflow:hidden;border-radius:5px}.art-frame img{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;transition:transform .4s}.work-card:hover img{transform:scale(1.025)}.view-art{position:absolute;right:14px;bottom:14px;background:var(--cream);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;opacity:0;transition:opacity .2s}.work-card:hover .view-art,.work-card:focus-visible .view-art{opacity:1}.art-caption{display:flex;flex-wrap:wrap;gap:3px 12px;justify-content:space-between;padding-top:13px;font-size:12px}.art-caption small{font-size:10px;color:var(--muted);line-height:2}.work-card[hidden]{display:none}.about{background:#e9eadd}.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:95px;align-items:center}.portrait{position:relative;padding:15px 34px 35px}.portrait>picture>img{width:100%;height:375px;object-fit:contain;border-radius:150px 150px 12px 12px;background:var(--sage)}.portrait-note{position:absolute;bottom:2px;right:4px;font:italic 20px var(--serif);transform:rotate(-7deg)}.about-copy .eyebrow{margin-bottom:17px}.about-sub{font:italic 20px var(--serif);margin:16px 0 23px}.about-copy>p:not(.eyebrow):not(.about-sub){font-size:14px;max-width:490px}.focus{display:flex;gap:25px;border-top:1px solid #c7ccba;padding-top:22px;margin:27px 0}.focus>span{font-size:11px;white-space:nowrap;font-weight:600}.focus p{margin:0;font-size:12px;max-width:330px}.project-placeholder{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:38px 45px;display:flex;gap:45px;align-items:center;background:#f1eadc}.project-placeholder h3{font:400 24px var(--serif);margin:0 0 10px}.project-placeholder p{font-size:13px;color:var(--muted);margin:0 0 15px}.contact{background:var(--peach);padding:74px 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;position:relative}.contact h2{font-size:58px;letter-spacing:-2px}.contact-grid>div:nth-child(2){padding-top:20px;padding-right:55px}.contact p:not(.eyebrow){font-size:14px;margin:0 0 25px}.email{display:block;font-size:13px;margin-top:18px}footer{padding-top:45px;padding-bottom:25px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-bottom:33px}.footer-top p{font:italic 16px/1.65 var(--serif);max-width:460px;margin:0}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;gap:20px;font-size:9px}.socials{display:flex;flex-wrap:wrap;gap:17px}.socials a{font-size:10px}.socials a:hover{text-decoration:underline}.lightbox{border:0;border-radius:8px;padding:22px;width:min(860px,94vw);max-height:94vh;background:var(--cream);color:var(--ink)}.lightbox::backdrop{background:#202923d9}.lightbox>picture>img{width:100%;max-height:72vh;object-fit:contain}.lightbox h3{font:400 25px var(--serif);margin:16px 0 4px}.lightbox p{font-size:13px;margin:0;white-space:pre-line}.lightbox-close{position:absolute;right:12px;top:12px;z-index:2;border:0;background:var(--cream);border-radius:50%;width:38px;height:38px;font-size:26px}.skip{position:fixed;top:-100px;left:10px;background:var(--ink);color:white;padding:10px;z-index:9}.skip:focus{top:10px}.empty-filter{padding:50px 0;text-align:center}.admin-body{background:var(--cream)}.admin-wrap{width:min(1050px,calc(100% - 40px));margin:40px auto}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:20px}.admin-panel{background:#fffaf2;border:1px solid var(--line);padding:25px;margin:25px 0;border-radius:6px}.admin-panel h2{font-size:27px;margin-bottom:20px}.admin-panel label{display:block;font-size:13px;font-weight:600;margin-bottom:15px}.admin-panel input:not([type=checkbox]),.admin-panel textarea,.admin-panel select{display:block;width:100%;border:1px solid #bebead;background:white;border-radius:4px;padding:10px;margin-top:6px;color:var(--ink)}.admin-panel textarea{min-height:110px}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-login{max-width:440px;margin:80px auto}.notice{padding:14px 20px;background:#e3e9d9;border:1px solid var(--sage);border-radius:4px}.error{background:#f7ddd0;border-color:#bf7350}.admin-work{display:grid;grid-template-columns:110px 1fr;gap:22px}.admin-work>img{width:110px;height:138px;object-fit:contain;background:#e9eadd}.admin-actions{display:flex;gap:15px;align-items:center;margin-top:15px}.danger{border:1px solid #9d4934;color:#9d4934;background:none;border-radius:4px;padding:10px 16px}.help{color:var(--muted);font-size:12px}.login-footer{text-align:center;font-size:13px}
@media(min-width:1500px){.hero{gap:110px}.hero-art>picture>img{height:530px}}@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.site-header{gap:22px}.site-header nav{gap:20px}.hero{gap:35px;min-height:600px}.hero-art>picture>img{height:420px}.hero h1{font-size:56px}.about-grid{gap:40px}.portrait{padding-left:15px;padding-right:15px}.contact-grid{gap:45px}.contact h2{font-size:49px}.footer-bottom{flex-direction:column}}@media(max-width:700px){.wrap{width:calc(100% - 36px)}.site-header{height:92px;gap:14px;position:relative}.brand>span{font-size:25px}.brand img{width:45px;height:45px}.brand small{font-size:8px;letter-spacing:.9px}.menu-toggle{display:block;margin-left:auto;background:none;border:0;font-size:22px;padding:8px}.site-header nav{display:none;position:absolute;top:91px;left:-18px;right:-18px;margin:0;background:var(--cream);padding:22px;box-shadow:0 10px 15px #343d3610;z-index:5;flex-direction:column;gap:9px}.site-header nav.open{display:flex}.language{gap:5px;font-size:11px}.hero{grid-template-columns:1fr;gap:32px;padding-top:39px;padding-bottom:47px}.hero h1{font-size:55px;letter-spacing:-2px}.hero-copy{padding:0}.hero .eyebrow{margin-bottom:19px}.lead{font-size:14px;max-width:360px}.hero-art{margin:4px 18px 15px;max-width:430px;justify-self:center;width:calc(100% - 36px)}.hero-art>picture>img{height:auto;max-height:460px;object-fit:cover}.art-label{left:-18px}.specialties{padding:14px 18px}.specialties p{font-size:9px;line-height:2;letter-spacing:1px;word-spacing:2px}.section{padding:57px 0}.section-heading{display:block;margin-bottom:22px}.section-heading>p{margin-top:18px;max-width:100%}h2{font-size:34px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 13px}.art-caption{display:block;font-size:11px}.art-caption small{display:block;font-size:9px}.filters{gap:7px;margin:23px 0}.filters button{padding:7px 12px;font-size:11px}.about-grid{grid-template-columns:1fr;gap:35px}.portrait{max-width:370px;justify-self:center;width:100%}.portrait>picture>img{height:310px}.about-copy .eyebrow{font-size:9px}.focus{gap:20px}.project-placeholder{padding:28px 20px;gap:20px}.project-placeholder h3{font-size:21px}.contact{padding:49px 0}.contact-grid{grid-template-columns:1fr;gap:20px}.contact h2{font-size:48px}.contact-grid>div:nth-child(2){padding:0 35px 0 0}.footer-top{align-items:start;flex-direction:column;gap:20px}.footer-top p{font-size:15px}.socials{gap:13px}.admin-columns{grid-template-columns:1fr;gap:0}.admin-work{grid-template-columns:1fr}.admin-header{flex-wrap:wrap}.admin-panel{padding:18px}.admin-login{margin:45px 20px}}
.site-header nav a[aria-current=page]{font-weight:700}.site-header nav a[aria-current=page]:after{content:'';position:absolute;bottom:3px;left:0;width:100%;height:2px;background:var(--peach)}.page-title{font:500 clamp(38px,4vw,58px)/1.12 var(--serif);letter-spacing:-1.7px;margin:0}.portfolio .section-heading{align-items:center}.portfolio-invitation{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:center}.portfolio-invitation p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:380px;margin:22px 0 25px}.preview-art{display:flex;gap:12px;align-items:center;min-width:0}.preview-art img{width:calc((100% - 24px)/3);aspect-ratio:4/5;object-fit:contain;border-radius:5px}.preview-art picture:nth-child(2){transform:translateY(-16px) rotate(-3deg)}.preview-art picture:last-child{transform:rotate(3deg)}.contact-page{display:grid;grid-template-columns:1fr 1.05fr;gap:85px;align-items:start}.contact-intro{position:relative;padding:28px 0}.contact-intro>p:not(.eyebrow){max-width:380px;font-size:15px;margin:25px 0}.contact-direct{display:flex;flex-direction:column;align-items:start;gap:12px;font-size:13px}.contact-direct>span{font-size:12px;color:var(--muted)}.contact-direct>a:first-of-type{overflow-wrap:anywhere}.contact-form-panel{padding:35px;background:#f1eadc;border:1px solid var(--line);border-radius:8px;min-width:0}.contact-form-panel h2{font-size:28px;margin:0 0 25px}.contact-form-panel label{font-size:12px;font-weight:600;display:block;margin:18px 0 7px}.contact-form-panel input:not([type=hidden]),.contact-form-panel select,.contact-form-panel textarea{width:100%;padding:12px;border:1px solid #c8c1b3;border-radius:4px;background:#fffaf2;color:var(--ink);font-size:14px}.contact-form-panel textarea{min-height:165px;resize:vertical}.contact-form-panel [aria-invalid=true]{border-color:#a74f37}.contact-form-panel .button{margin:18px 0 4px}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.form-help{font-size:10px;color:var(--muted);line-height:1.6;margin:10px 0}.form-help a{text-decoration:underline}.form-fallback{font-size:13px;padding:12px 15px;background:#e4e8d8;border-left:3px solid var(--sage)}.field-error{color:#93462e;font-size:12px;margin:5px 0}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.g-recaptcha{margin:20px 0 0}
@media(max-width:1000px){.contact-page{gap:35px}.contact-form-panel{padding:25px}.portfolio-invitation{gap:35px}}@media(max-width:700px){.portfolio-invitation,.contact-page{grid-template-columns:1fr;gap:30px}.portfolio-invitation .preview-art{margin-top:16px}.contact-intro{padding:0}.contact-intro>.page-title{font-size:45px}.contact-intro>p:not(.eyebrow){padding-right:10px}.contact-direct{padding-top:10px}.contact-form-panel{padding:20px}.contact-form-panel h2{font-size:26px}.page-title{font-size:38px}.g-recaptcha{max-width:100%}}@media(max-width:370px){.contact-form-panel{padding:14px}.g-recaptcha{transform:scale(.87);transform-origin:left top;margin-bottom:-9px}}
:root{--heading:'Yuyu',cursive;--caps:'Patrick Hand SC',cursive}
.focus>span{font-family:var(--heading);font-size:25px;font-weight:400;line-height:1.3}
.focus p{font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.65}
.brand>span{font-family:var(--heading);font-size:43px;font-weight:400;line-height:1;letter-spacing:0}
@media(max-width:700px){.brand>span{font-size:35px}}
.brand small{font-family:var(--caps);font-size:13px;font-weight:400;letter-spacing:1px}
@media(max-width:700px){.brand small{font-size:11px}}
.site-header nav{font-family:var(--caps);font-size:18px}.site-header nav a,.site-header nav a[aria-current=page]{font-weight:400}
.specialties p{font-family:var(--caps);font-size:18px;font-weight:400;letter-spacing:.8px;word-spacing:2px}
@media(max-width:700px){.specialties p{font-size:16px;line-height:1.7}}
.eyebrow,.about-copy .eyebrow{font-family:var(--caps);font-size:16px;font-weight:400;line-height:1.3;letter-spacing:1.3px}
.language{font-family:var(--caps);font-size:16px;font-weight:400}.admin-header .brand small{font-family:var(--caps);font-size:14px;letter-spacing:1px}
h1,h2,h3,.hero h1,.page-title,.contact-intro>.page-title,.contact-form-panel h2,.admin-panel h2,.project-placeholder h3,.lightbox h3{font-family:var(--heading);font-weight:400;font-style:normal;letter-spacing:0}
.about-sub,.art-label,.hero-note,.portrait-note,.art-caption>span,.footer-top p{font-family:var(--heading);font-weight:400;font-style:normal;letter-spacing:0}
.art-label{font-size:18px;line-height:1.2}.art-caption>span{font-size:19px;line-height:1.25}.about-sub{font-size:25px}.hero-note,.portrait-note{font-size:24px}
.footer-top p{font-size:18px}
picture{display:block}.preview-art picture{width:calc((100% - 24px)/3);flex:none}.preview-art picture img{width:100%}
.admin-tabs{display:flex;gap:12px;margin:25px 0;flex-wrap:wrap}.admin-tabs a{padding:10px 18px;border:1px solid var(--line);border-radius:4px;font-size:14px}.admin-tabs a[aria-current=page]{background:var(--ink);color:var(--cream)}
.admin-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.admin-section-heading h2{margin:0}.admin-section-heading h2 small{font:14px var(--sans)}
.admin-table-scroll{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}.admin-table th{font-weight:600;font-size:14px}.admin-table th,.admin-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table td:first-child{width:54px}.admin-table picture,.admin-table img{width:30px;height:38px;object-fit:contain}.admin-table td>small{display:block;font-size:14px;color:var(--muted)}.admin-table td>a:hover{text-decoration:underline}.table-actions{display:flex;align-items:center;gap:15px;white-space:nowrap}.table-actions .danger{padding:6px 10px;font-size:14px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;font-size:14px}.pagination>div{display:flex;gap:18px}
@media(max-width:700px){.admin-section-heading,.pagination{align-items:flex-start;flex-direction:column}.admin-table{min-width:650px}}
.portfolio.section,.projects.section,.portfolio-invitation.section{padding-block:48px}
.socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px 24px}
.socials a{display:flex;align-items:center;gap:12px;min-height:28px}
.socials img{width:28px;height:24px;object-fit:contain;flex:none}
.contact-direct .socials{grid-template-columns:1fr;margin-top:12px}
.contact-direct .socials a span{overflow-wrap:anywhere;min-width:0}
/* Body typography has a consistent 14px minimum, including mobile and admin. */
.button,.text-link,.section-heading>p,.art-caption,.art-caption small,.focus p,.project-placeholder p,.contact p:not(.eyebrow),.email,.footer-bottom,.socials a,.lightbox p,.admin-panel label,.help,.login-footer,.contact-direct,.contact-direct>span,.contact-form-panel label,.form-help,.form-fallback,.field-error,.filters button{font-size:14px}
.doodle-button{position:relative;display:inline-flex;justify-content:center;align-items:center;width:340px;max-width:100%;height:120px;background-color:transparent;background-repeat:no-repeat;background-position:center;background-size:100% 100%;border:0;border-radius:0;padding:22px 58px 22px 25px;color:var(--cream);text-align:center;transition:transform .2s}
.doodle-button{color:var(--ink);opacity:1;transition:none}
.doodle-button:hover{background-color:transparent;transform:none;opacity:.8}.doodle-button>span{font-family:var(--sans);font-size:16px;line-height:1.35;font-weight:500;position:relative;z-index:1}
.doodle-arrow{background-image:url('images/doodle-arrow-outline.png')}.doodle-bubble{background-image:url('images/doodle-bubble-freehand.png');padding:20px 32px 35px;height:135px}
@media(max-width:700px){.doodle-button{width:310px;height:110px}.doodle-bubble{height:125px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
