/* The approved edition, with a tactile visual and motion layer. */
:root{--brass:#b68c55;--ease-out:cubic-bezier(.16,1,.3,1)}
@view-transition{navigation:auto}
::view-transition-old(root){animation:edition-out .28s ease both}
::view-transition-new(root){animation:edition-in .55s var(--ease-out) both}
@keyframes edition-out{to{opacity:0;transform:translateY(-18px) scale(.985)}}
@keyframes edition-in{from{opacity:0;transform:translateY(35px) rotate(.35deg)}to{opacity:1;transform:none}}
body{background-color:#1d1c19;background-image:radial-gradient(ellipse at 15% 5%,#66503a80,transparent 40%),radial-gradient(ellipse at 90% 70%,#3c484138,transparent 40%)}
.paper{box-shadow:0 1px 0 #e8d7b2,0 12px 0 -7px #b3a68f,0 22px 0 -14px #766c5d,0 35px 90px #0008;transform-origin:50% 0}
.site-header{height:84px}.site-header .wordmark span{display:inline-block;transition:transform .5s var(--ease-out)}.wordmark:hover span{transform:rotate(180deg)}
.light-control{border-color:#8b765647;box-shadow:inset 0 0 14px #c69b4b0c;transition:background .3s,box-shadow .3s}.light-control:hover{box-shadow:0 0 30px #d4a04c20}
.home-hero{position:relative;overflow:clip;background:radial-gradient(ellipse at 80% 42%,#fff8de9c,transparent 53%)}
.masthead{perspective:600px;padding-top:30px;padding-bottom:31px}
.masthead h1{position:relative;text-shadow:1px 1px 0 #f7f2e4,2px 2px 0 #17120b20}
.mast-letter{display:inline-block;transform-origin:50% 90%;transition:transform .5s var(--ease-out),color .35s}.mast-letter:hover{transform:translateY(-9px) rotate(-5deg);color:var(--red)}
.masthead-x{position:relative;text-shadow:2px 2px 0 #802b2220}
.masthead-x:after{content:'';position:absolute;left:12%;right:0;bottom:-10px;border-bottom:3px solid var(--red);transform:rotate(-6deg) scaleX(.9);opacity:.5}
.hero-portrait{max-width:335px;box-shadow:2px 5px 8px #21180930,12px 23px 25px #21180925;transform:perspective(800px) rotate(6deg);transition:box-shadow .5s,transform .6s var(--ease-out)}
.hero-portrait:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,#fff8 0%,transparent 35%,transparent 65%,#45250013);mix-blend-mode:soft-light}
.hero-bottom{padding-block:43px}.hero-note{max-width:650px}
.hero-bottom-rule{position:relative}.hero-bottom-rule:after{content:'';position:absolute;top:-3px;left:0;width:46px;height:5px;background:var(--red);transform:translateX(var(--hero-mark,0px));transition:transform .1s linear}
.home-section{position:relative}.section-heading{position:relative}.section-number{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--red);border-radius:50%;font-size:10px}
.others:before{content:'“';position:absolute;right:5%;top:12px;font:230px/.9 var(--display);opacity:.045;pointer-events:none}
.quote-grid{gap:27px 23px;perspective:1300px}.quote-card{box-shadow:1px 2px 1px #30261a30,6px 10px 20px #30261a14;transform-origin:50% 0;transition:transform .6s var(--ease-out),box-shadow .5s}
.quote-card:before{content:'';position:absolute;top:-8px;left:43%;width:47px;height:20px;background:#cbb57a55;transform:rotate(-7deg);border-inline:1px solid #e3d7b522;pointer-events:none}
.quote-card.q0:before{background:#b9955559}.quote-card:hover{z-index:2;box-shadow:4px 12px 28px #24140b2b}
.credentials .credential-seal{background:repeating-conic-gradient(from 10deg,#802b220a 0 10deg,transparent 10deg 20deg);outline:1px solid #802b2238;outline-offset:3px}.stamp{box-shadow:inset 0 0 0 2px var(--paper),inset 0 0 0 3px #802b2233}
.shortcut-banner{position:relative;overflow:clip;background:repeating-linear-gradient(0deg,transparent,transparent 27px,#51402d08 28px),var(--paper-dark)}
.shortcut-banner:before{content:'';position:absolute;left:19px;top:0;bottom:0;border-left:1px dashed #8d7b5666}.round-link{position:relative;background:#eae0c766;box-shadow:3px 5px 0 #61503212}.round-link:after{content:'';position:absolute;inset:-9px;border:1px dashed #8d775555;border-radius:50%;transition:transform .6s}.round-link:hover:after{transform:rotate(70deg)}
/* Project frames form a small exhibition, without changing the project order. */
.home .projects{background:#202923;color:#ede6d7;isolation:isolate;overflow:clip;border-top:1px solid #77775c}
.home .projects:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 18% 0,#b1995340,transparent 43%),repeating-linear-gradient(90deg,transparent 0 149px,#b4b9920b 150px 151px);pointer-events:none}
.home .projects .text-link,.home .projects .section-number{color:#d2ba88}.home .projects .section-number{border-color:#b8995d}.home .projects .section-heading{margin-bottom:55px}
.home .project-art{padding:25px;background:linear-gradient(130deg,#625441,#211f1a 24%,#75664d 25%,#28291f 27%,#35332a 96%,#bcac86)!important;border:1px solid #a9946f;box-shadow:0 18px 35px #0005,0 0 0 4px #121811,0 0 0 5px #806e4959;transform:perspective(1000px) rotateY(var(--tilt-x,0deg)) rotateX(var(--tilt-y,0deg));transition:transform .45s var(--ease-out),box-shadow .4s}
.home .project-art:before{content:'';position:absolute;inset:6px;pointer-events:none;border:1px solid #c4b17c50;z-index:2}.home .project-art:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at var(--glow-x,30%) var(--glow-y,0%),#fff1bd26,transparent 65%);z-index:2}
.home .project-card:hover .project-art{box-shadow:0 26px 40px #0007,0 0 0 4px #121811,0 0 0 5px #b19a6880}.home .project-card:hover img{transform:scale(1.025)}
.home .project-caption{border-color:#78816b69;padding-top:25px}.home .project-caption .mono{color:#c9b381}.home .project-open{color:#27261e;background:#d7caad}.home .project-card h3{font-size:48px}.home .project-card:nth-child(even){margin-top:75px}.home .project-card:nth-child(odd){margin-bottom:75px}.home .project-grid{column-gap:45px;row-gap:18px}
.about{background:var(--paper-light)}.about-row{overflow:hidden;isolation:isolate;transition:padding .5s var(--ease-out),color .3s,background .4s}.about-row:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateY(102%);transition:transform .45s var(--ease-out)}
.about-row:hover{background:transparent;color:var(--paper-light);padding-left:24px}.about-row:hover:before{transform:translateY(0)}.about-row:hover p,.about-row:hover h3,.about-row:hover .mono,.about-row:hover .about-arrow{color:var(--paper-light)}.about-arrow{transition:transform .5s var(--ease-out)}.about-row:hover .about-arrow{transform:rotate(45deg)}
.contact{position:relative;overflow:clip;background:radial-gradient(ellipse at 85% 100%,#56412c80,transparent 65%),#20221e}.contact:after{content:'X';position:absolute;right:-30px;bottom:-100px;font:600px/.9 var(--display);color:#e3c89a04;pointer-events:none}.contact h2{position:relative;z-index:1}.contact h2 em{color:#d1b17b}.contact-links a{transition:padding .35s var(--ease-out),color .3s}.contact-links a:hover{padding-left:12px;color:#e5c58f}
/* Each page arrives as an edition, then settles into a quiet reading surface. */
.page-head{position:relative;isolation:isolate;overflow:clip;background:radial-gradient(ellipse at 90% 0,#fef9e9,transparent 68%)}
.page-head:after{content:attr(data-initial);position:absolute;z-index:-1;right:2%;bottom:-.22em;font:clamp(160px,26vw,380px)/1 var(--display);color:#7761420b;pointer-events:none}
.page-head h1{max-width:1100px}.page-head .folio{position:relative}.page-head .folio:after{content:'';position:absolute;right:0;bottom:-2px;width:38px;height:4px;background:var(--red)}
.next-page{position:relative;overflow:hidden}.next-page:after{content:'';position:absolute;inset:0;background:#b79a5317;transform:translateX(-100%);transition:transform .6s var(--ease-out);pointer-events:none}.next-page:hover:after{transform:translateX(0)}
.photo>a{transition:box-shadow .45s,transform .5s var(--ease-out)}.photo>a:hover{box-shadow:0 12px 27px #30200f24;transform:translateY(-3px)}
.summary-gallery .photo{box-shadow:5px 8px 0 #88744e15}.proof-gallery{scroll-snap-type:x proximity}.proof-gallery .photo{scroll-snap-align:start}.deck-grid figure>a{transition:transform .5s var(--ease-out),box-shadow .5s}.deck-grid figure>a:hover{transform:translateY(-7px) rotate(-1deg);box-shadow:0 12px 20px #21190f25}
.word-section>header .mono{display:inline-block;padding:7px 10px;border:1px solid var(--red);transform:rotate(-4deg)}.word-section>header h2{position:relative}.word-section>header h2:after{content:'';display:block;width:50px;height:2px;background:var(--red);margin-top:23px}
.ideas-page .idea[open]{background:#fff6}.idea summary .details-mark{transition:transform .4s var(--ease-out)}.idea[open] .details-mark{transform:rotate(45deg)}
/* Goal: a charcoal opening, lit type, a silver watch; the full story stays on paper. */
.goal-page .paper{background:#20221f}.goal-page .page-head{color:#eee6d4;background:transparent;padding-bottom:0}.goal-page .page-head .folio{border-color:#85795d;color:#baae94}.goal-page .page-head .folio:after{background:var(--brass)}.goal-page .page-head h1{font:12px var(--mono);letter-spacing:.25em;text-transform:uppercase;margin:37px 0 0;color:#cfb486}.goal-page .page-head:after{display:none}
.goal-opening{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:40px;align-items:center;background:radial-gradient(ellipse at 95% 30%,#927c4930,transparent 50%);color:#eee7d8;padding:45px var(--pad) 100px;min-height:710px;overflow:clip}
.goal-opening:before{content:'';position:absolute;z-index:-1;right:-230px;top:0;width:700px;height:700px;border:1px solid #bca87614;border-radius:50%;box-shadow:0 0 0 70px #bca87604,0 0 0 140px #bca87603}
.goal-opening .goal-vow{font-family:var(--display);font-size:clamp(40px,5.1vw,74px);letter-spacing:-.015em;word-spacing:.045em;line-height:1.12;margin:0 0 44px;max-width:930px;color:#f0e9da}.vow-word{display:inline-block}
.goal-opening .goal-context{font-size:21px;line-height:1.65;max-width:700px;margin:0;color:#c8c0af}.goal-timepiece{position:sticky;top:120px;align-self:start;width:100%;margin-top:55px;filter:drop-shadow(5px 16px 13px #0005)}.goal-timepiece canvas{display:block;width:100%;max-width:240px;height:auto;margin:auto}.watch-chain{position:absolute;bottom:100%;left:50%;width:2px;height:200px;background:repeating-linear-gradient(#b6a784 0 3px,#4b493a 3px 5px);transform:translateX(-50%);opacity:.45}
.goal-scroll{position:absolute;bottom:30px;left:var(--pad);width:40px;height:40px;border:1px solid #bd9e6755;border-radius:50%;display:grid;place-items:center;font-size:22px;color:#d0b684;transition:background .3s,transform .3s}.goal-scroll:hover{background:#bfa36a22;transform:translateY(3px)}
.goal-body{position:relative;background:var(--paper);padding-top:80px;border-top:5px double #c8b79a;box-shadow:0 -20px 50px #0002}.goal-body .prose>h2:first-child{font-size:clamp(38px,4.5vw,60px);line-height:1.1;margin-top:0;max-width:600px}.goal-body .prose>p:first-of-type:first-letter{float:left;font-family:var(--display);font-size:78px;line-height:.8;margin:10px 10px 0 0;color:var(--red)}
.grandpa{position:relative;padding:11px 11px 26px;background:#f7f0dd;transform:rotate(-2deg);box-shadow:3px 7px 5px #2a24152e,12px 20px 36px #2a241522;max-width:360px}.grandpa:before{content:'';position:absolute;top:-13px;left:36%;width:92px;height:29px;background:#c2a66b66;transform:rotate(7deg);z-index:1}.grandpa figcaption{padding-top:15px}.grandpa:hover{transform:rotate(0)}.goal-page .next-page,.goal-page .site-footer{background:var(--paper-light)}
body.reading-light .goal-page{color:var(--ink)}.goal-page.reading-light .page-head,.goal-page.reading-light .goal-opening{background:var(--paper-light);color:var(--ink)}.goal-page.reading-light .goal-vow{color:var(--ink)}.goal-page.reading-light .goal-context{color:var(--muted)}.goal-page.reading-light .page-head .folio{color:var(--muted)}.goal-page.reading-light .page-head h1{color:var(--red)}
/* Prevent entrance/reveal FOUC: animated content starts hidden before deferred JS runs. */
@media(prefers-reduced-motion:no-preference){
.motion-boot .home .masthead h1,.motion-boot .home .hero-portrait,.motion-boot .page-head h1,.motion-boot .goal-title h1{opacity:0}
.motion-boot .section-heading,.motion-boot .quote-card,.motion-boot .credentials,.motion-boot .shortcut-banner>div,.motion-boot .project-card,.motion-boot .about-row,.motion-boot .contact h2,.motion-boot .chapter-title,.motion-boot .word-section>header,.motion-boot .deck-head,.motion-boot .summary-gallery .photo,.motion-boot .grandpa,.motion-boot .media-section>h2,.motion-boot .next-page,.motion-boot .goal-chapter-head,.motion-boot .goal-pivot,.motion-boot .goal-route,.motion-boot .goal-finale>p{opacity:0;translate:0 35px;filter:blur(3px)}
.motion-boot .quote-card{translate:0 50px}
}
/* Progressive enhancement: content stays visible until its observer is installed. */
.motion-ready [data-reveal]{transition:opacity .85s var(--ease-out),translate 1s var(--ease-out),filter .85s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal]:not(.is-revealed){opacity:0;translate:0 35px;filter:blur(3px)}
.motion-ready .quote-card[data-reveal]:not(.is-revealed){translate:0 50px;rotate:var(--reveal-rotate,-4deg)}
.motion-ready .quote-card[data-reveal]{transition:opacity .8s var(--ease-out),translate 1s var(--ease-out),rotate 1s var(--ease-out),transform .5s var(--ease-out),box-shadow .5s;transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal]:focus-within{opacity:1;translate:0;filter:none}
.pointer-wick{position:fixed;top:0;left:0;width:12px;height:24px;pointer-events:none;z-index:100;opacity:0;transition:opacity .3s;filter:drop-shadow(0 0 9px #edbe6270)}.pointer-wick.is-active{opacity:.85}.pointer-wick svg{display:block;width:100%;height:100%}.pointer-wick .flame{transform-origin:50% 75%;animation:wick 1.6s ease-in-out infinite alternate}@keyframes wick{from{transform:rotate(-5deg) scale(.92,1.05)}to{transform:rotate(6deg) scale(1.07,.96)}}.reading-light .pointer-wick{display:none}
.section-dial{position:fixed;z-index:30;right:8px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;padding:14px 5px;background:#211c18db;border:1px solid #ad956837;border-radius:25px;backdrop-filter:blur(8px)}.section-dial a{width:22px;height:22px;display:grid;place-items:center;color:#9b8b70;font:8px var(--mono);border:1px solid transparent;border-radius:50%;transition:background .3s,color .3s}.section-dial a[aria-current]{background:#d5bb85;color:#24211c;border-color:#f3deac}.section-dial a:hover{color:#fff2d7;border-color:#d5bb85}.section-dial a[aria-current]:hover{color:#24211c}
@media(min-width:1000px){.home .hero-bottom{min-height:340px}.home .masthead h1{font-size:clamp(140px,16.5vw,231px)}.home .about{padding-bottom:100px}.page-head{padding-top:34px;padding-bottom:65px}}
@media(max-width:1050px){.section-dial{display:none}.goal-opening{grid-template-columns:minmax(0,1fr) 170px;gap:25px}.goal-opening .goal-vow{font-size:53px}.home .project-grid{column-gap:30px}.home .project-art{padding:20px}}
@media(max-width:650px){.site-header{height:66px}.masthead{padding-top:22px;padding-bottom:25px}.hero-bottom{padding-block:29px}.hero-portrait{transform:rotate(5deg);max-width:150px}.hero-note{font-size:22px}.quote-grid{gap:21px 13px}.quote-card:before{width:35px;height:15px;top:-6px;left:38%}.section-number{width:23px;height:23px;font-size:8px}.section-heading{gap:10px}.section-heading .text-link{margin-left:33px}.home .project-card:nth-child(even),.home .project-card:nth-child(odd){margin:0}.home .project-grid{row-gap:32px}.home .projects .section-heading{margin-bottom:36px}.home .project-art{padding:15px}.home .project-card h3{font-size:38px}.home .project-caption{padding-top:20px}.shortcut-banner:before{left:10px}.about-row:hover{padding-left:8px}.contact:after{font-size:340px;bottom:-50px}.page-head{padding-bottom:35px}.page-head:after{font-size:190px}.goal-opening{display:block;min-height:0;padding-top:31px;padding-bottom:88px}.goal-opening .goal-vow{font-size:42px;line-height:1.13;max-width:520px;margin-bottom:30px}.goal-opening .goal-context{font-size:19px;line-height:1.6}.goal-timepiece{position:relative;top:auto;width:155px;margin:15px auto -80px}.watch-chain{display:none}.goal-scroll{bottom:25px}.goal-page .page-head h1{margin-top:28px;font-size:10px}.goal-body{padding-top:45px}.goal-body .prose>h2:first-child{font-size:38px}.grandpa{max-width:280px}.pointer-wick{display:none}.motion-ready [data-reveal]:not(.is-revealed){translate:0 22px;filter:none}.motion-ready .quote-card[data-reveal]:not(.is-revealed){translate:0 25px}}
@media(max-width:370px){.hero-note{font-size:20px}.goal-opening .goal-vow{font-size:36px}.goal-opening .goal-context{font-size:18px}.home .project-card h3{font-size:35px}.goal-body .prose>h2:first-child{font-size:33px}}
@media(prefers-reduced-motion:reduce){html:not(.motion-full)::view-transition-old(root),html:not(.motion-full)::view-transition-new(root){animation:none}html:not(.motion-full) .motion-ready [data-reveal]:not(.is-revealed){opacity:1;translate:none;rotate:none;filter:none}html:not(.motion-full) .pointer-wick{display:none}html:not(.motion-full) .hero-portrait,html:not(.motion-full) .project-art{transform:none!important}html:not(.motion-full) .mast-letter:hover{transform:none}}
@media print{.section-dial,.pointer-wick,.goal-timepiece,.goal-scroll{display:none}.motion-ready [data-reveal]{opacity:1!important;translate:none!important;filter:none!important}.goal-opening{display:block;min-height:0}.goal-page .page-head,.goal-page .goal-opening,.home .projects{background:white;color:black}.goal-opening .goal-vow,.goal-opening .goal-context{color:black}.goal-opening .goal-vow{font-size:28pt}.goal-opening .goal-context{font-size:12pt}.grandpa{transform:none;box-shadow:none}.paper{box-shadow:none}}
