@import url('./tokens.css');
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--chalk);color:var(--ink);font-family:var(--body);font-size:15px;font-weight:400;line-height:1.7}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:8px}button{border:0}h1,h2,p,figure{margin:0}h1,h2{font-family:var(--display);font-weight:400;line-height:1.04}h2{font-size:clamp(44px,4.6vw,76px);letter-spacing:-.03em}p{max-width:40ch}img{max-width:100%;height:auto;display:block}section{position:relative}picture{display:block}::selection{background:var(--sand);color:var(--ink)}.skip{position:fixed;z-index:50;left:20px;top:12px;transform:translateY(-150%);background:var(--chalk);padding:10px 16px}.skip:focus{transform:none}
.scene{position:absolute;inset:0;overflow:hidden}.scene img{width:100%;height:100%;object-fit:cover}.hero{min-height:760px;height:100svh;max-height:1180px;color:var(--white);isolation:isolate;overflow:hidden}.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#17130e35,transparent 22%,transparent 52%,#1e1a1477);pointer-events:none}.hero-scene{z-index:-2}.hero-scene img{animation:hero-arrive 2s var(--ease) both}.masthead{position:relative;display:flex;align-items:center;justify-content:space-between;padding:34px var(--gutter);font-size:12px;letter-spacing:.055em;text-shadow:var(--text-shadow)}.signature{font-size:14px}.masthead nav{display:flex;gap:44px;align-items:center}.masthead nav a{padding-block:8px}.masthead .mobile-nav{display:none}.portfolio-more{text-align:center;margin-top:74px;font-size:13px}.hero-copy{position:absolute;left:12%;bottom:11%;right:6%;text-shadow:var(--text-shadow)}.hero h1{position:relative;font-size:clamp(70px,6.7vw,112px);letter-spacing:-.045em;line-height:1.04;margin-bottom:14px;white-space:nowrap;width:max-content;max-width:100%;animation:copy-arrive 1.5s .25s var(--ease) both}.last-stroke{position:relative}.city-window{position:absolute;left:calc(100% + .07em);bottom:.08em;overflow:hidden;width:14em;height:1.5em;font:400 .235em/1.45 var(--body);letter-spacing:-.015em;white-space:nowrap}.city{display:inline-block;opacity:1;transform:translateX(0)}.city.enter{animation:city-in .36s var(--ease) both}.city.exit{animation:city-out .28s var(--ease) both}.hero-subtitle{font-size:clamp(17px,1.7vw,25px);line-height:1.4}.hero-bottom{display:flex;align-items:center;gap:40px;margin-top:33px;font-size:12px;letter-spacing:.015em}.text-link{display:inline-block;line-height:1.7;border-bottom:1px solid currentColor;padding-block:8px 5px;min-height:36px}.light-link{border-color:#fff8}
.stone-surface{background:var(--chalk)}.work-intro{display:grid;grid-template-columns:.8fr 1fr;align-items:center;gap:7vw;padding:var(--space-section) 9vw var(--space-section) 12vw}.work-text h2{font-size:clamp(56px,5.9vw,94px);line-height:1.08;margin-bottom:36px}.work-text p{font-size:14px;line-height:1.85;color:#5c574e}.facet-frame{padding:0;background:transparent;display:block;max-width:590px;filter:drop-shadow(0 4px 3px #45392b30) drop-shadow(0 18px 16px #45392b1a);transition:filter .7s}.facet-frame:hover{filter:drop-shadow(0 5px 4px #45392b38) drop-shadow(0 22px 18px #45392b24)}.facet-art{display:block;width:100%;height:auto}.materials{height:clamp(720px,66vw,980px);color:var(--white);overflow:hidden}.materials::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,#17140f22)}.image-heading{position:absolute;z-index:1;left:66%;right:4%;top:27%;font-size:clamp(44px,4.5vw,76px);line-height:1.1;letter-spacing:-.025em;text-shadow:var(--text-shadow)}
.portfolio{padding:var(--space-section) var(--gutter) calc(var(--space-section) + 25px);overflow:hidden}.portfolio h2{text-align:center;margin-bottom:80px}.shelves{display:grid;grid-template-columns:1.15fr .58fr 1fr;align-items:start;gap:5.5vw;max-width:var(--measure);margin:auto}.shelf{position:relative;padding:16px 16px 0;background:linear-gradient(125deg,#bdb3a443,#f3efe885);box-shadow:var(--recess)}.shelf::before{content:'';position:absolute;inset:0;box-shadow:inset 5px 8px 12px #433b301f;pointer-events:none;z-index:1}.photo-button{display:block;position:relative;width:100%;padding:0;background:transparent;overflow:hidden}.photo-button img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}.photo-button:hover img{transform:scale(1.028)}.shelf-main{margin-top:0}.shelf-main .photo-button{aspect-ratio:.71}.shelf-detail{margin-top:150px;padding:12px 12px 0}.shelf-detail .photo-button{aspect-ratio:.51}.shelf-round{margin-top:80px}.shelf-round .photo-button{aspect-ratio:.66}.ledge{position:relative;height:17px;background:linear-gradient(#ddd4c7,#c2b7a6);margin:0 -23px -17px;box-shadow:var(--shelf-shadow);border-top:2px solid #ede5d8}.ledge::after{content:'';position:absolute;left:0;right:0;top:100%;height:50px;background:linear-gradient(#72604b19,transparent);clip-path:polygon(0 0,100% 0,89% 100%,10% 100%);pointer-events:none}
.craft{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;background:var(--limestone);padding:95px var(--gutter);gap:6vw}.craft-image{box-shadow:0 25px 55px -35px #322c2377;overflow:hidden}.craft-image picture,.craft-image img{width:100%;height:100%}.craft-image img{aspect-ratio:1.24;object-fit:cover}.craft-copy h2{font-size:clamp(40px,4vw,67px);line-height:1.14;margin-bottom:32px}.craft-copy p{font-size:14px;line-height:1.9;margin-top:17px;color:#59534a;max-width:33ch}.details{padding:var(--space-section) 10vw}.details h2{margin-bottom:60px;text-align:center}.video-recess{padding:18px;max-width:1160px;margin:auto;background:var(--limestone);box-shadow:var(--recess),0 22px 45px -32px #3f312761}.video-recess video{display:block;width:100%;aspect-ratio:1.6;background:#918775;object-fit:cover}.contact{padding:25px var(--gutter) 0}.contact-niche{position:relative;text-align:center;padding:90px 30px 48px;background:linear-gradient(155deg,#d2c8b8,#e3dcd1 47%,#eae4d9);box-shadow:inset 12px 16px 30px #4d41352c,inset 0 -1px 0 #fff9}.contact-niche::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 100% 115%,#fff9,transparent 72%)}.contact-niche>*{position:relative;z-index:1}.contact h2{font-size:clamp(46px,5.1vw,82px);margin-bottom:28px}.contact p{margin-inline:auto;font-size:14px;line-height:1.8;color:#635a4d}.phone{display:inline-block;margin:40px 0 9px;font-family:var(--display);font-size:clamp(36px,4.3vw,66px);line-height:1.2;letter-spacing:-.025em}.contact .contact-hours{font-size:12px}.contract-line{display:flex;justify-content:center;gap:50px;margin-top:56px;padding-top:28px;border-top:1px solid #9f917947;font-size:11px;letter-spacing:.035em;color:#60574b}footer{display:flex;justify-content:space-between;padding:34px 0;font-size:12px;color:#72695b}.photo-dialog{padding:0;border:0;background:#151410;max-width:92vw;max-height:95svh;overflow:hidden}.photo-dialog::backdrop{background:#1b1916ed}.photo-dialog>img{height:88svh;width:auto;max-width:92vw;object-fit:contain}.dialog-close{position:absolute;z-index:1;right:10px;top:10px;background:var(--chalk);color:var(--ink);font-size:12px;padding:12px 20px}.has-motion .reveal{opacity:0;transform:translateY(26px);transition:opacity 1.15s var(--ease),transform 1.3s var(--ease)}.has-motion .reveal.visible{opacity:1;transform:none}
@keyframes hero-arrive{from{transform:scale(1.025);filter:brightness(.88)}to{transform:scale(1);filter:brightness(1)}}@keyframes copy-arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes city-in{from{transform:translateX(-108%);opacity:0}to{transform:none;opacity:1}}@keyframes city-out{from{transform:none;opacity:1}to{transform:translateX(-108%);opacity:0}}
@media(min-width:1600px){.hero-copy{left:15%}.image-heading{left:67%}}
@media(max-width:1100px){.hero h1{font-size:7vw}.city-window{font-size:.26em}.hero-copy{left:8%}.work-intro{padding-inline:8vw;gap:5vw}.craft{gap:4vw;padding-inline:5vw}.craft-copy h2{font-size:4.6vw}.materials{height:72vw;min-height:620px}.shelves{gap:5vw}.masthead nav{gap:28px}}
@media(max-width:700px){:root{--gutter:24px;--space-section:88px}.hero{height:100svh;min-height:720px;max-height:1100px}.hero::after{background:linear-gradient(180deg,#1b170f39,transparent 23%,transparent 43%,#21190e88)}.masthead{padding:25px 24px}.signature{font-size:12px;letter-spacing:.03em}.masthead .desktop-nav{display:none}.masthead .mobile-nav{display:flex;gap:22px;font-size:11px;letter-spacing:0}.masthead .mobile-nav a{min-height:44px;display:flex;align-items:center;padding-block:10px}.portfolio-more{margin-top:55px;font-size:12px}.hero-copy{left:30px;right:24px;bottom:11%}.hero h1{font-size:clamp(54px,13vw,86px);line-height:1.05;letter-spacing:-.045em;margin-bottom:14px}.title-first{display:block}.city-window{font-size:.245em;left:calc(100% + .22em);bottom:.15em;width:11.4em}.hero-subtitle{font-size:17px}.hero-bottom{display:block;margin-top:29px;font-size:11px}.hero-bottom p{margin-bottom:8px}.work-intro{grid-template-columns:1fr;padding:78px 24px 85px;gap:44px}.work-text{padding-left:6px}.work-text h2{font-size:56px;line-height:1.04;margin-bottom:25px}.work-text p{font-size:13px}.facet-frame{width:100%;max-width:470px;margin:auto}.materials{height:150vw;min-height:620px;max-height:1100px}.materials::after{background:linear-gradient(180deg,transparent 40%,#17110b10 65%,#17110b66)}.image-heading{left:30px;right:25px;top:auto;bottom:45px;font-size:clamp(44px,11vw,66px);line-height:1.05}.portfolio{padding:82px 28px 104px}.portfolio h2{font-size:52px;text-align:left;margin-bottom:40px}.shelves{grid-template-columns:1.2fr .64fr;gap:52px 25px;align-items:start}.shelf{padding:10px 10px 0}.shelf-main{grid-column:1;grid-row:1;margin:0}.shelf-detail{grid-column:2;grid-row:1;margin-top:60px;padding:7px 7px 0}.shelf-round{grid-column:1/3;grid-row:2;margin:0 6% 0 18%}.ledge{margin-inline:-15px;height:12px;margin-bottom:-12px}.craft{grid-template-columns:1fr;padding:64px 24px;gap:38px}.craft-image img{aspect-ratio:2/3;object-fit:cover}.craft-copy{padding-inline:6px}.craft-copy h2{font-size:46px;margin-bottom:24px}.craft-copy p{max-width:37ch;font-size:13px}.details{padding:82px 20px 60px}.details h2{font-size:54px;text-align:left;margin:0 8px 36px}.video-recess{padding:10px}.video-recess video{aspect-ratio:.75}.contact{padding:24px 20px 0}.contact-niche{padding:60px 20px 28px}.contact h2{font-size:45px}.contact p{font-size:12px}.phone{font-size:36px;margin-top:32px}.contract-line{flex-direction:column;gap:7px;margin-top:30px;padding-top:22px;font-size:10px}footer{font-size:11px;padding:25px 3px}.photo-dialog>img{height:auto;max-height:90svh}.dialog-close{padding:12px}.hero-copy p{max-width:100%}}
@media(max-width:370px){.hero h1{font-size:50px}.city-window{font-size:12px;width:11.5em}.hero-copy{left:23px}.phone{font-size:31px}.contact h2{font-size:39px}.work-text h2{font-size:50px}.craft-copy h2{font-size:39px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.has-motion .reveal{opacity:1;transform:none}}

/* Approved DK identity and final stone / light composition. */
.masthead{align-items:center;padding-top:26px;padding-bottom:26px}
.hero::after{background:linear-gradient(180deg,#17130e52 0%,#17130e05 24%,transparent 45%,#1e1a147a 100%)}
.masthead .brand-name{filter:brightness(0) invert(1);opacity:.97}
.masthead nav a{min-height:44px;display:inline-flex;align-items:center;border-bottom:1px solid transparent;transition:border-color .25s}
.masthead nav a:hover{border-bottom-color:#fff8}
.portfolio{padding-top:clamp(82px,8vw,138px)}
.portfolio h2{margin-bottom:clamp(48px,5.5vw,86px)}
.portfolio-more{margin-top:80px}
.work-intro{background:radial-gradient(ellipse at 7% 34%,#fff9,transparent 60%),var(--chalk)}
.contact{padding-top:35px}
.contact-niche{isolation:isolate;overflow:hidden;padding:65px 45px 42px;border:18px solid;border-color:#c8bcaa #e4dacc #f4ecdf #ccbeaa;background:radial-gradient(ellipse at 76% 80%,#f5efdfd9 0%,#f0e8d36b 35%,transparent 76%),linear-gradient(125deg,#c7bba8 0%,#ded5c5 32%,#e5ddcf 70%,#d6cbb9 100%);box-shadow:inset 15px 20px 32px -12px #57422b45,inset -2px -3px 5px #fff8,0 20px 45px -38px #463d3160}
.contact-niche::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(90deg,transparent calc(18% - 1px),#84765f19 18%,#fff4 calc(18% + 1px),transparent calc(18% + 2px),transparent calc(82% - 1px),#84765f19 82%,#fff4 calc(82% + 1px),transparent calc(82% + 2px));opacity:.65}
.contact-niche::after{inset:0;z-index:-1;background:radial-gradient(ellipse at 100% 115%,#fff9 0%,#fff3 36%,transparent 72%);box-shadow:inset 0 1px 2px #66543d25}
.contact-logo{width:132px;height:auto;margin:0 auto 39px;mix-blend-mode:multiply}
.contact h2{font-size:clamp(46px,4.8vw,76px);margin-bottom:25px;line-height:1.1}
.contact p{color:#534b40;line-height:1.9}
.phone{font-family:var(--body);font-weight:400;font-size:clamp(30px,3.5vw,52px);letter-spacing:-.045em;margin-top:32px;padding-block:5px}
.contract-line{max-width:790px;margin:43px auto 0;border-top-color:#897c6540;color:#534b40;gap:40px}
footer{align-items:center;min-height:85px}
@media(max-width:1100px){.masthead nav{gap:26px}}
@media(max-width:700px){
  .hero{min-height:640px}.masthead{padding:20px 22px;align-items:center}.masthead .mobile-nav{gap:16px}
  .hero-copy{bottom:9%;left:28px}.hero::after{background:linear-gradient(180deg,#211a1157,transparent 28%,#21190e08 42%,#21190e8c)}
  .portfolio{padding-top:76px}.portfolio-more{margin-top:58px}.work-intro{padding-top:80px;padding-bottom:80px}
  .contact{padding:22px 16px 0}.contact-niche{border-width:10px;padding:43px 15px 28px}
  .contact-logo{width:116px;margin-bottom:30px}.contact h2{font-size:clamp(38px,10.3vw,48px);margin-bottom:22px}
  .phone{font-size:clamp(25px,7.6vw,35px);letter-spacing:-.055em;margin-top:25px;white-space:nowrap}
  .contract-line{gap:8px;margin-top:29px;padding-top:23px}.contact-niche::before{opacity:.4}footer{min-height:75px}
}
@media(max-width:370px){.masthead{padding-inline:18px}.masthead .mobile-nav{gap:12px;font-size:10px}.hero-copy{left:23px}.hero h1{font-size:49px}.hero-bottom{margin-top:23px}}
