@font-face{font-family:Rye;src:url('assets/rye-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
:root{--paper:#f4eedf;--paper-light:#faf6eb;--ink:#302b25;--red:#7c2529;--muted:#665d50;--line:#b8ae99;--serif:Georgia,'Times New Roman',serif;--sans:Manrope,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}a:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:6px}::selection{background:var(--red);color:var(--paper)}h1,h2,h3,p,figure,blockquote,dl,dd{margin:0}img{max-width:100%;height:auto;display:block}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;left:16px;top:12px;transform:translateY(-160%);z-index:10;background:var(--red);color:var(--paper);padding:12px 20px}.skip-link:focus{transform:none}.concept-bar{display:flex;justify-content:center;gap:4px;flex-wrap:wrap;padding:7px 16px;background:#e7deca;color:#51483c;text-align:center;font-size:11px;line-height:1.6;letter-spacing:.02em}.concept-bar a{font-weight:700}
.shopfront{padding-top:30px;color:var(--red)}.shopfront-top{display:flex;justify-content:space-between;border-top:1px solid var(--red);padding-top:12px;font-family:var(--serif);font-size:19px;font-style:italic}.shop-name{display:block;text-align:center;font-family:Rye,Georgia,serif;font-size:clamp(90px,16.55vw,239px);font-weight:400;letter-spacing:-.05em;line-height:1.27;text-decoration:none;margin:0 0 0 -.035em}.shop-name:hover{text-decoration:none}.shopfront-bottom{display:flex;align-items:center;gap:28px;margin-top:-5px}.shopfront-bottom p{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.32em;white-space:nowrap}.rule{height:5px;border-top:1px solid;border-bottom:1px solid;flex:1}.shop-nav{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:23px 0;border-bottom:1px solid var(--line);font-size:13px;font-weight:700;line-height:1.5}.nav-links{display:flex;gap:32px}.shop-nav a{text-decoration:none}.shop-nav a:hover{text-decoration:underline}.nav-phone{white-space:nowrap}.phone-label{font-family:var(--serif);font-weight:400;font-size:15px;font-style:italic;margin-right:18px}.nav-phone>span:last-child{margin-left:5px}
.opening{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(40px,7vw,106px);padding-top:62px;padding-bottom:85px;align-items:start}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:700;text-transform:uppercase;line-height:1.5}.welcome .eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:23px}.barber-stripe{width:31px;height:13px;background:repeating-linear-gradient(125deg,var(--red) 0 5px,transparent 5px 10px);border-block:1px solid var(--red)}h1{font-family:var(--serif);font-size:clamp(48px,4.5vw,65px);line-height:1.03;letter-spacing:-.045em;font-weight:400}h1 em{color:var(--red);font-weight:400}h2 em{font-weight:400}.welcome-copy{max-width:430px;margin-top:27px;font-size:15px;line-height:1.8}.call-button{display:flex;justify-content:space-between;gap:32px;align-items:center;width:fit-content;margin-top:29px;padding:15px 24px;background:var(--red);border:1px solid var(--red);color:var(--paper-light);font-size:13px;font-weight:700;text-decoration:none;transition:background .18s,color .18s}.call-button:hover{background:var(--paper);color:var(--red);text-decoration:none}.call-button span{font-size:21px;font-weight:400}.alternative{margin-top:17px;font-size:11px;color:var(--muted)}.price-area{scroll-margin-top:30px;padding:4px 0 0}.price-board{position:relative;border:1px solid var(--red);outline:1px solid var(--red);outline-offset:-7px;padding:30px 34px 27px;background:var(--paper-light);color:var(--red);box-shadow:7px 8px 0 #e5dcc8}.board-overline{text-align:center;text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.19em}.price-board h2{font-family:Rye,Georgia,serif;text-align:center;font-size:30px;font-weight:400;line-height:1.4;margin-top:5px;margin-bottom:21px}.prices>div{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #b69a89;padding:10px 0}.prices dt{font-family:var(--serif);font-size:22px;line-height:1.3}.prices dt small{display:block;font-family:var(--sans);font-size:11px;color:var(--muted);margin-top:4px}.prices dd{font-family:var(--serif);font-size:40px;line-height:1.2;letter-spacing:-.04em;font-variant-numeric:lining-nums tabular-nums}.prices dd span{font-size:22px;margin-right:3px;vertical-align:5px}.board-footer{border-top:1px solid #b69a89;padding-top:16px;text-align:center;font-family:var(--serif);font-size:14px;font-style:italic}.price-source{margin-top:21px;font-size:11px;color:var(--muted)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.price-source summary{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:5px 0}.price-source summary>span{font-size:20px;color:var(--red);transition:transform .2s}.price-source[open] summary>span{transform:rotate(45deg)}.price-source summary:hover{text-decoration:underline;text-underline-offset:3px}.source-content{padding-top:15px}.source-content img{width:100%;max-width:460px;margin-inline:auto}.source-content p{margin-top:14px;line-height:1.65}
.graeme-section{position:relative;background:var(--red);color:var(--paper);padding:76px 0 82px;border-top:6px double var(--paper);outline:1px solid var(--red)}.graeme-inner{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(40px,7vw,106px)}.graeme-heading .eyebrow{color:#e8cdbb;margin-bottom:30px}.graeme-heading h2{font-family:var(--serif);font-size:clamp(48px,5.8vw,78px);font-weight:400;line-height:1.06;letter-spacing:-.045em}.graeme-heading h2 em{font-size:.82em}.shop-sign{display:flex;align-items:center;gap:20px;margin-top:48px}.shop-sign img{width:92px;height:92px;object-fit:cover;border:5px solid #5a2022;transform:rotate(-4deg)}.shop-sign p{font-family:var(--serif);font-size:20px;line-height:1.5}.shop-sign span{font-family:var(--sans);font-size:11px;letter-spacing:.06em;color:#e8cdbb}.graeme-story{padding-top:3px}.story-lead{font-family:var(--serif);font-size:28px;line-height:1.4;margin-bottom:20px}.graeme-story>p:not(.story-lead){font-size:14px;line-height:1.9;color:#eedbcb;margin-bottom:15px}.graeme-story blockquote{border-top:1px solid #b36b68;margin-top:34px;padding-top:25px}.graeme-story blockquote p{font-family:var(--serif);font-size:48px;font-style:italic;line-height:1.12;letter-spacing:-.03em}.graeme-story cite{display:block;font-size:11px;font-style:normal;margin-top:17px;letter-spacing:.03em;color:#e8cdbb}
.visit-section{padding-top:83px;padding-bottom:78px}.visit-heading{text-align:center}.visit-heading .eyebrow{color:var(--red);margin-bottom:15px}.visit-heading h2{font-family:var(--serif);font-size:clamp(38px,4.3vw,60px);font-weight:400;line-height:1.1;letter-spacing:-.04em}.visit-heading>p:last-child{font-size:14px;margin-top:17px}.big-phone{display:block;width:fit-content;margin:10px auto 47px;color:var(--red);font-family:var(--serif);font-size:clamp(38px,7.6vw,105px);line-height:1.5;font-weight:400;letter-spacing:-.055em;text-decoration:none}.big-phone:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:10px}.big-phone span{font-family:var(--sans);font-size:.45em;display:inline-block;vertical-align:middle;letter-spacing:0;margin-left:8px}.visit-info{display:grid;grid-template-columns:1fr 1fr 1fr;gap:55px;border-top:1px solid var(--line);padding-top:33px}.visit-info h3{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--red);margin-bottom:16px}.visit-info p,.visit-info address{font-size:13px;line-height:1.85}.visit-info address{font-style:normal}.text-link{display:inline-block;font-size:12px;font-weight:700;margin-top:16px}.email-link{display:block;width:fit-content;font-size:12px;margin-top:10px}.site-footer{border-top:5px double var(--red);padding-top:26px;padding-bottom:30px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--red)}.footer-wordmark{font-family:Rye,Georgia,serif;font-size:28px;letter-spacing:-.04em;text-decoration:none}.site-footer p{font-size:11px;line-height:1.9;color:var(--muted)}.back-top{font-size:11px;white-space:nowrap}.research-page{max-width:850px;padding-top:65px;padding-bottom:80px}.research-page h1{font-size:60px;margin:20px 0 30px;color:var(--red)}.research-page h2{font-family:var(--serif);font-size:30px;font-weight:400;color:var(--red);line-height:1.2;margin:40px 0 17px}.research-page p{margin-bottom:17px}.research-page table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.75;margin:22px 0}.research-page th,.research-page td{text-align:left;vertical-align:top;padding:13px 0;border-bottom:1px solid var(--line)}.research-page th{width:24%;padding-right:18px;color:var(--red)}.research-page li{margin-bottom:8px}.source-card{border-top:4px double var(--red);margin-top:36px}.research-page .eyebrow{font-size:11px}
@media(min-width:1550px){.shop-name{font-size:239px}.opening,.graeme-inner{gap:110px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.shop-name{font-size:17vw}.phone-label{display:none}.opening,.graeme-inner{gap:44px}.opening{padding-top:45px;padding-bottom:60px}h1{font-size:51px}.price-board{padding:25px 23px}.price-board h2{font-size:25px}.prices dt{font-size:20px}.prices dd{font-size:36px}.board-footer{font-size:12px}.graeme-heading h2{font-size:58px}.story-lead{font-size:24px}.visit-info{gap:32px}.graeme-section{padding-block:65px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.concept-bar{font-size:11px;padding-block:6px}.shopfront{padding-top:22px}.shopfront-top{font-size:14px;padding-top:10px}.shop-name{font-size:17.2vw;line-height:1.5;margin-left:-.035em}.shopfront-bottom{gap:17px;margin-top:-3px}.shopfront-bottom p{font-size:11px;letter-spacing:.27em}.shop-nav{padding:16px 0;font-size:11px;gap:12px}.nav-links{gap:19px}.nav-phone{font-size:11px}.opening{grid-template-columns:1fr;gap:40px;padding-top:36px;padding-bottom:52px}.welcome .eyebrow{font-size:11px;margin-bottom:19px}.barber-stripe{width:26px;height:11px}h1{font-size:clamp(45px,10vw,65px)}.welcome-copy{font-size:14px;max-width:440px;margin-top:23px}.call-button{margin-top:25px;padding:13px 20px}.alternative{font-size:11px}.price-area{padding:0 4px 0 0}.price-board{padding:28px 27px 25px}.price-board h2{font-size:30px;margin-bottom:20px}.prices>div{padding:12px 0}.prices dt{font-size:23px}.prices dd{font-size:41px}.board-footer{font-size:14px}.price-source{font-size:11px;margin-top:18px}.graeme-section{padding:48px 0 50px}.graeme-inner{grid-template-columns:1fr;gap:34px}.graeme-heading .eyebrow{font-size:11px;margin-bottom:20px}.graeme-heading h2{font-size:60px}.shop-sign{margin-top:28px;gap:18px}.shop-sign img{width:68px;height:68px}.shop-sign p{font-size:18px}.graeme-story{padding-top:0}.story-lead{font-size:27px}.graeme-story>p:not(.story-lead){font-size:14px}.graeme-story blockquote{margin-top:26px}.graeme-story blockquote p{font-size:49px}.visit-section{padding-block:48px}.visit-heading .eyebrow{font-size:11px}.visit-heading h2{font-size:40px}.visit-heading>p:last-child{font-size:12px}.big-phone{font-size:clamp(32px,8.8vw,59px);margin-top:18px;margin-bottom:31px}.big-phone span{margin-left:4px}.visit-info{grid-template-columns:1fr 1fr;gap:28px 30px;padding-top:28px}.visit-info>div:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:24px}.visit-info h3{font-size:11px;margin-bottom:12px}.visit-info p,.visit-info address{font-size:12px}.site-footer{flex-wrap:wrap;gap:18px;padding-top:22px;padding-bottom:28px}.footer-wordmark{font-size:24px;order:0}.site-footer>div{order:2;width:100%}.back-top{order:1;font-size:11px}.research-page{padding-top:40px;font-size:14px}.research-page h1{font-size:46px}.research-page h2{font-size:27px}.research-page table{font-size:12px}.research-page th{width:29%;padding-right:12px}}
@media(max-width:370px){.wrap{width:calc(100% - 32px)}.nav-links{gap:13px}.shop-nav{font-size:11px}.nav-phone{font-size:11px}.price-board{padding-inline:22px}.price-board h2{font-size:26px}.prices dt{font-size:21px}.board-footer{font-size:12px}.visit-info{grid-template-columns:1fr;gap:26px}.visit-info>div:last-child{grid-column:auto}.graeme-heading h2{font-size:53px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
.shop-name{line-height:1.05}.shop-nav{padding-block:12px}.shop-nav a{display:inline-flex;align-items:center;min-height:44px}.price-source summary{min-height:44px}.call-button{font-size:14px}.alternative{font-size:12px}.prices dt small{font-size:11px}.graeme-story>p:not(.story-lead){font-size:15px}.visit-info p,.visit-info address{font-size:14px}
@media(max-width:700px){.shop-name{line-height:1.5}.shop-nav{padding-block:6px}.welcome-copy{font-size:16px}.alternative{font-size:12px}.graeme-story>p:not(.story-lead){font-size:15px}.visit-info p,.visit-info address{font-size:14px}.visit-info .text-link,.email-link{font-size:13px}.price-source{font-size:12px}}
@media print{body{background:white;color:black;font-size:11pt}.wrap{width:100%}.concept-bar,.shop-nav,.call-button,.alternative,.back-top,.price-source{display:none}.shopfront{padding-top:0}.shop-name{font-size:100px}.opening,.graeme-inner{gap:30px}.opening,.visit-section{padding-block:30px}.graeme-section{background:white;color:black;padding-block:25px;border-top:1px solid black;outline:none}.graeme-story>p:not(.story-lead),.graeme-heading .eyebrow,.graeme-story cite,.shop-sign span{color:black}.graeme-heading h2{font-size:40px}.graeme-story blockquote p{font-size:30px}.price-board{box-shadow:none;break-inside:avoid}.big-phone{font-size:55px}.site-footer{padding-block:15px}}
/* One short haircut sequence when the illustration enters the viewport. */
.barber-animation{margin:27px 0 0;max-width:560px}
.haircut-scene{display:block;width:100%;height:auto;overflow:hidden}
.barber-animation figcaption{padding-top:10px;color:#e8cdbb;font-size:11px;line-height:1.5}
.hair-strand{opacity:0}
.snipping-arm{transform-origin:188px 170px;transform-box:view-box}
.barber-back-arm{transform-origin:189px 176px;transform-box:view-box}
.scissor-blade{transform-origin:0 0;transform-box:view-box}
.motion-ready .snipping-arm{animation:barber-trim 3.8s ease-in-out 1 both}
.motion-ready .barber-back-arm{animation:barber-comb 3.8s ease-in-out 1 both}
.motion-ready .scissor-upper{animation:barber-snip-upper .95s ease-in-out 4 both}
.motion-ready .scissor-lower{animation:barber-snip-lower .95s ease-in-out 4 both}
.motion-ready .hair-strand{animation:barber-clipping 3.8s ease-in 1 both}
.motion-ready .strand-two{animation-delay:.22s}
.motion-ready .strand-three{animation-delay:.45s}
@keyframes barber-trim{0%,100%{transform:rotate(0deg)}25%{transform:rotate(-4deg)}55%{transform:rotate(3deg)}78%{transform:rotate(-2deg)}}
@keyframes barber-comb{0%,100%{transform:rotate(0deg)}40%{transform:rotate(-3deg)}70%{transform:rotate(2deg)}}
@keyframes barber-snip-upper{0%,100%{transform:rotate(-9deg)}45%,58%{transform:rotate(8deg)}}
@keyframes barber-snip-lower{0%,100%{transform:rotate(9deg)}45%,58%{transform:rotate(-8deg)}}
@keyframes barber-clipping{0%,22%{opacity:0;transform:translate(0,0)}26%{opacity:.9}68%{opacity:0;transform:translate(24px,65px) rotate(3deg)}100%{opacity:0;transform:translate(24px,65px) rotate(3deg)}}
@media(max-width:700px){.barber-animation{margin-top:22px}.barber-animation figcaption{font-size:11px;gap:10px}}
@media(prefers-reduced-motion:reduce){.barber-animation .haircut-scene *{animation:none!important}}
@media print{.barber-animation{display:none}.price-source{display:block}}

/* Open typography in place of boxed calls to action and price cards. */
.call-button{padding:9px 0 7px;gap:30px;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--red);font-family:var(--serif);font-size:25px;font-weight:400;font-style:italic;line-height:1.5}
.call-button:hover{background:transparent;color:var(--red);border-bottom-width:2px;padding-bottom:6px}
.call-button span{font-family:var(--sans);font-size:22px;font-style:normal}
.price-board{border:0;outline:0;box-shadow:none;background:transparent;padding:0 0 18px}
@media(max-width:700px){.call-button{font-size:23px;gap:24px}.price-board{padding-top:4px}}
@media(max-width:370px){.call-button{font-size:21px;gap:20px}}
