.icon{width:21px;height:21px;display:inline-block;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.photo-annotation{display:contents}
@media(min-width:1101px){
 .photo-annotation{position:absolute;top:0;right:5px;display:flex;align-items:flex-start;gap:10px;width:max-content;max-width:calc(100% - 10px);z-index:2;pointer-events:none}
 .photo-annotation .photo-note{position:relative;top:-12px;left:auto;flex:0 1 auto;min-width:0}
 .photo-annotation .photo-arrow{position:relative;top:auto;right:auto;flex:0 0 83px;margin-top:0}
}
.header{container:portfolio-header / inline-size;display:block;margin:0 clamp(18px,3.5vw,46px);padding:26px 0;min-height:0;border:0;position:relative}
.header:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;border-top:1px solid #777c70;border-bottom:1px solid #777c7033;transform:rotate(-.22deg);pointer-events:none}
.header-layout{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(20px,2.2cqw,32px)}
.brand{width:fit-content;max-width:100%;min-width:0;display:flex;flex-direction:column;align-items:flex-start;position:relative;padding:5px 0 10px}
.brand-caption{font-size:.75rem;font-weight:500;letter-spacing:.14em;color:#62675c;margin-left:3px;line-height:1.5}
.signature{position:relative;font-size:2.375rem;line-height:1.15;letter-spacing:-.035em;font-weight:600;margin-top:4px;transform:rotate(-3deg);white-space:normal;overflow-wrap:anywhere}
.signature:after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:6px;border-bottom:2px solid #293fc4;border-radius:50%;transform:rotate(-2deg)}
.signature-dot{color:#293fc4}
.nav-panel{display:contents}
.header .notebook-nav{display:grid;grid-column:2;grid-template-columns:repeat(4,max-content);justify-content:center;align-items:stretch;gap:clamp(12px,1.6cqw,24px);min-width:0;width:auto;order:initial;font-size:inherit}
.notebook-nav>a{min-width:0;position:relative;display:flex;align-items:center;gap:9px;padding:14px 10px;min-height:52px;color:#4d5347;border-radius:3px;transition:color .18s,background .18s}
.nav-index{font-family:'Caveat','Segoe Print',cursive;font-size:1rem;color:#293fc4;line-height:1;flex-shrink:0;align-self:flex-start;margin-top:6px}
.nav-label{min-width:0;display:flex;align-items:center;gap:8px;font-family:'Caveat','Segoe Print',cursive;font-size:1.5rem;font-weight:600;line-height:1.2}
.nav-label>span{overflow-wrap:anywhere}
.nav-label .icon{width:19px;height:19px;stroke-width:1.55;color:#293fc4}
.notebook-nav>a:after{content:'';position:absolute;left:34px;right:10px;bottom:7px;height:5px;border-bottom:2px solid #293fc4;border-radius:50%;transform:rotate(-2deg) scaleX(0);transform-origin:left;transition:transform .2s}
.notebook-nav>a:hover,.notebook-nav>a[aria-current],.notebook-nav>a:focus-visible{color:#293fc4;background:#293fc409}
.notebook-nav>a:hover:after,.notebook-nav>a[aria-current]:after,.notebook-nav>a:focus-visible:after{transform:rotate(-2deg) scaleX(1)}
.header .contact-nav{grid-column:3;justify-self:end;position:relative;display:flex;align-items:center;justify-content:center;gap:10px;background:#83cce4;color:#1e367d;padding:12px 15px;min-height:48px;border:0;border-radius:1px;box-shadow:2px 4px 4px #30372625;transform:rotate(2deg);transition:transform .2s,box-shadow .2s;min-width:0}
.header .contact-nav:before{content:'';position:absolute;top:-8px;left:39%;width:44px;height:15px;background:#dbdfd2a8;transform:rotate(-7deg);border:1px solid #d7dbcc66;pointer-events:none}
.header .contact-nav span{margin:0;font-family:'Caveat','Segoe Print',cursive;font-size:1.375rem;font-weight:600;line-height:1.2;overflow-wrap:anywhere}
.header .contact-nav .icon{width:21px;height:21px}
.header .contact-nav:hover,.header .contact-nav:focus-visible{background:#83cce4;color:#183077;transform:translateY(-2px);box-shadow:2px 6px 6px #30372625}
.header .contact-nav[aria-current]{outline:1.5px solid #293fc4;outline-offset:4px}
.menu-toggle{display:none;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 13px;border:1px solid #293fc4;border-radius:3px;background:transparent;color:#293fc4;font:600 1.35rem/1.2 'Caveat','Segoe Print',cursive;cursor:pointer}
.menu-toggle:focus-visible{outline:3px solid #293fc4;outline-offset:4px}
.menu-toggle:hover{background:#293fc409}
.close-icon{display:none}
.menu-toggle[aria-expanded="true"] .menu-icon{display:none}
.menu-toggle[aria-expanded="true"] .close-icon{display:block}
@container portfolio-header (min-width:76.001rem){
 .brand-caption{position:absolute;top:-12px;left:0}
}
@container portfolio-header (max-width:76rem){
 .header-layout{grid-template-columns:minmax(0,1fr) auto;gap:20px}
 .brand{grid-column:1;grid-row:1}
 .nav-panel{display:contents}
 .header .contact-nav{grid-column:2;grid-row:1}
 .header .notebook-nav{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(4,max-content);justify-self:center;gap:clamp(16px,3cqw,30px)}
 .notebook-nav>a{padding:12px;gap:9px}
}
@container portfolio-header (max-width:48rem){
 .header-layout{grid-template-columns:minmax(0,1fr) auto;gap:18px 12px}
 .signature{font-size:2rem}
 .brand-caption{font-size:.75rem;letter-spacing:.1em}
 .header.menu-ready .menu-toggle{display:flex}
 .menu-toggle{grid-column:2;grid-row:1}
 .nav-panel{display:grid;grid-column:1/-1;grid-row:2;grid-template-columns:minmax(0,1fr);gap:20px;padding-top:16px;border-top:1px solid #b9bcaf}
 .header.menu-ready .nav-panel{display:none}
 .header.menu-ready[data-menu-open] .nav-panel{display:grid}
 .header .notebook-nav{grid-column:auto;grid-row:auto;grid-template-columns:minmax(0,1fr);justify-self:stretch;width:100%;gap:0}
 .notebook-nav>a{gap:16px;padding:15px 12px;min-height:58px;border-bottom:1px solid #b9bcaf80;border-radius:0}
 .nav-index{font-size:1.125rem;margin-top:5px;min-width:22px}
 .nav-label{gap:12px;font-size:1.625rem}
 .nav-label .icon{width:22px;height:22px}
 .notebook-nav>a:after{left:50px;right:16px;bottom:7px}
 .header .contact-nav{grid-column:auto;grid-row:auto;justify-self:stretch;transform:none;margin:0 4px 7px;padding:14px 18px;gap:12px;min-height:52px}
}
@container portfolio-header (max-width:20rem){.signature{font-size:1.75rem}.menu-toggle{padding:10px;gap:8px}}
.primary .icon{width:22px;height:22px;stroke-width:1.8}
.hero-bottom a,.text-link,footer>a{display:inline-flex;align-items:center;gap:12px}
.hero-bottom .icon{width:19px;height:19px}
.polaroid figcaption .icon{width:32px;height:32px;color:#293fc4;transform:rotate(12deg)}
.photo-caption{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.photo-caption .icon{width:16px;height:16px;color:#293fc4}
summary{align-items:center;min-height:32px}
summary .disclosure-icon{width:20px;height:20px;transition:transform .2s}
details[open] summary .disclosure-icon{transform:rotate(45deg)}
.process-loop .icon{width:25px;height:25px;margin-right:6px}
.qualities{gap:10px 18px}
.qualities>span{display:inline-flex;align-items:center;gap:7px;padding:4px 0;border:0;font-size:14px}
.qualities .icon{width:19px;height:19px;color:#293fc4}
.contact-button .icon{width:36px;height:36px;stroke-width:1.3}
footer>a .icon{width:17px;height:17px}
@media(max-width:760px){.header{padding:20px 0}.contact-button .icon{width:25px;height:25px}.photo-caption{gap:7px}}
@media(max-width:380px){.hero{grid-template-columns:minmax(0,1fr)}.hero-copy{min-width:0}.hello{font-size:28px}.hero h1{font-size:32px}.polaroid figcaption{font-size:16px;white-space:normal}.hero-bottom{flex-wrap:wrap;gap:8px;padding:14px 0}.hero-bottom>span{max-width:none}}
@media(prefers-reduced-motion:reduce){.header *{transition:none}}

.hero{padding-bottom:50px}@media(max-width:760px){.hero{padding-bottom:30px}}
