/* Family-front composition only. Shared roles/interactions remain parent-owned. */
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--fc-canvas);color:var(--fc-text);font:400 17px/1.65 var(--fc-type-body,'DM Sans',sans-serif)}
::selection{background:var(--fc-selected-bg);color:var(--fc-selected-text)}
a{color:var(--fc-link);text-underline-offset:.22em}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--fc-focus);outline-offset:5px}img{max-width:100%;height:auto}figure{margin:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--fc-type-display,'Fredoka',sans-serif);font-weight:700;line-height:1.1;letter-spacing:-.025em}h2{font-size:clamp(36px,4vw,54px)}p{max-width:68ch}p+p{margin-top:18px}.wrap{width:calc(100% - 64px);max-width:1376px;margin-inline:auto}.arrow{flex-shrink:0;vertical-align:middle}
.skip-link{position:absolute;z-index:100;top:8px;left:20px;transform:translateY(-180%);background:var(--fc-canvas);padding:12px 20px;border:2px solid var(--fc-focus);border-radius:12px}.skip-link:focus{transform:none}
.fc-family__brand small{margin:5px 0 0;font-size:12px}.fc-family__brand span{font-size:20px}.fc-family__brand picture{background:#fff}.fc-family__spaces-panel .arrow{grid-row:1/3;grid-column:2;align-self:center}
.front-hero{position:relative;isolation:isolate;min-height:640px;border-radius:0 0 28px 28px;overflow:hidden}
.hero-scene{position:absolute;inset:auto 0 0;z-index:-1;display:block;width:100%}.hero-scene img{width:100%;display:block;mask-image:linear-gradient(to bottom,transparent,#000 65px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 65px)}
.hero-copy{position:relative;padding:58px 0 70px 38px;width:43%;max-width:550px}.hero-copy h1{font-size:clamp(60px,6.55vw,92px)}
.hero-copy h1 .fc-arc-line:first-child{transform:rotate(-3deg);transform-origin:left center}.hero-copy h1 .fc-arc-line:nth-child(2){margin:2px 0 1px 7px}.hero-copy h1 .fc-arc-line:nth-child(3){margin-left:8px;transform:rotate(-2deg)}
.fc-painted-underline{margin-top:15px;width:190px;height:22px}.hero-intro{max-width:32ch;font-size:18px;line-height:1.55;margin:23px 0 25px}.hero-note{position:absolute;left:50%;top:52px;width:205px}.hero-note .fc-hand-note{font-size:23px;line-height:1.35}.gesture{display:block;width:83px;height:66px;object-fit:contain;margin:9px 0 0 51px}.small-heart{position:absolute;right:14px;bottom:0;width:27px;height:27px;object-fit:contain}
.starting-points{padding-top:74px}.section-intro{display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:center;margin:0 38px 38px}.section-intro h2{font-size:clamp(38px,4.1vw,58px)}.section-intro p{max-width:43ch;font-size:19px;line-height:1.6}
.branch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.branch{display:flex;flex-direction:column;border:1px solid var(--fc-border-subtle);border-radius:24px;overflow:hidden;background:var(--fc-canvas)}.branch-copy{padding:30px 28px 0;position:relative;z-index:1}.branch h3{font-size:clamp(34px,3.3vw,46px)}.branch h3 .fc-arc-line:first-child{transform:rotate(-2.3deg);transform-origin:left}.branch-copy p{font-size:17px;line-height:1.6;margin-top:19px;min-height:109px}.branch-scene{display:block;width:100%;margin-top:10px;mask-image:linear-gradient(to bottom,transparent,#000 55px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 55px)}.branch-scene img{display:block;width:100%;height:auto;aspect-ratio:4/3}.branch-actions{padding:25px 28px 27px;flex:1}.branch-actions>.fc-action-primary,.branch-actions>.fc-action-secondary,.branch-actions>.fc-action-tertiary{width:100%;padding-inline:14px}.branch-actions>p{font-size:15px;line-height:1.5;margin-top:16px;color:var(--fc-text-muted)}.branch-sublinks{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:13px}.text-link{display:inline-flex;gap:10px;align-items:center;min-height:44px;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;border-radius:4px}.text-link .arrow{width:19px;height:19px;transition:transform 180ms}.text-link:hover{text-decoration-thickness:2px;color:var(--fc-text)}.text-link:hover .arrow{transform:translateX(3px)}.text-link:active{transform:translateY(1px)}
.meet-kyle{display:grid;grid-template-columns:1.2fr 1fr;gap:54px;align-items:center;padding:126px 30px 88px}.portrait-composition{position:relative}.portrait-group{display:block;position:relative;width:100%}.meet-dialogue{position:absolute;top:-30px;right:6px;font-size:19px;max-width:15ch}.meet-copy{max-width:470px}.meet-copy>.fc-hand-note{font-size:24px;margin:0 0 28px;max-width:24ch}.meet-copy h2{font-size:56px;margin-bottom:20px}.meet-copy .text-link{margin-top:22px}.shared-work{border-block:1px solid var(--fc-border-subtle);padding:36px 38px;display:flex;justify-content:space-between;align-items:center;gap:36px}.shared-work h2{font-size:30px;margin-bottom:8px}.shared-work p{font-size:17px}.shared-work>a{flex-shrink:0}
.logo-story-placement{max-width:1000px;padding:65px 38px 20px;display:grid;grid-template-columns:1fr 300px;align-items:center;gap:80px}.logo-story-copy h2{font-size:42px;max-width:17ch}.logo-story-copy .fc-hand-note{margin:28px 0 23px;font-size:23px;max-width:23ch}.logo-story-copy>p:last-child{max-width:31ch}.logo-story-placement>[data-family-logo-story]{width:300px;max-width:100%}.logo-story-placement .fc-logo-entry__still img{height:100%}
.shared-work.has-story{display:block}.shared-work.has-story>h2,.shared-work.has-story>p{max-width:920px;margin-inline:auto}.shared-work.has-story>p{font:400 21px/1.5 'Shantell Sans',cursive;margin-top:12px}.shared-work .fc-page-story{max-width:920px;margin:24px auto 0}.shared-work .fc-page-story [data-story-card]{width:min(440px,calc(100% - 412px))}.shared-work [data-story-card] .text-link{font-size:17px}
@container(max-width:819px){.shared-work .fc-page-story [data-story-card]{width:100%}}
.front-footer{margin-top:70px;position:relative;isolation:isolate;padding-top:20px}.footer-content{display:flex;justify-content:space-between;align-items:flex-start;padding:0 38px 65px;gap:48px}.footer-content .fc-hand-note{font-size:25px;margin-bottom:22px}.footer-content p:not(.fc-hand-note){font-size:14px;color:var(--fc-text-muted)}.footer-content nav{display:flex;gap:26px;flex-wrap:wrap;margin-top:16px}.footer-content .text-link{font-size:15px}.footer-ground{display:block;width:100%;height:150px;overflow:hidden;mask-image:linear-gradient(to bottom,transparent,#000 78%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 78%)}.footer-ground img{display:block;width:100%;height:100%;object-fit:cover;object-position:bottom}
/* About: image contact and complete portrait proportions stay intact. */
.about-hero{display:grid;grid-template-columns:1fr 1.14fr;gap:22px;align-items:center;padding:78px 38px 75px}.about-copy h1{font-size:clamp(42px,4.55vw,66px)}.about-copy .fc-arc-line:first-child{transform:rotate(-3deg);transform-origin:left}.about-copy>p{max-width:40ch;font-size:18px;line-height:1.65}.about-copy .about-lede{margin-top:24px}.about-copy .fc-action-primary{margin-top:28px}.about-portrait{position:relative;padding-top:70px}.about-portrait>img:first-child{display:block;width:100%}.about-portrait figcaption{position:absolute;top:0;right:32px;font-size:24px;max-width:18ch;transform:rotate(5deg)}.about-portrait .portrait-heart{position:absolute;right:7%;top:112px;width:31px;height:31px;object-fit:contain}
.practice{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:62px 38px 75px;border-top:1px solid var(--fc-border-subtle)}.practice h2{font-size:clamp(35px,3.3vw,48px);margin-bottom:27px}.practice-copy>p{font-size:17px}.practice-copy .text-link{margin-top:22px}.worktable img{display:block;width:100%;height:auto;border-radius:18px;aspect-ratio:3/2}.worktable figcaption{font-size:14px;color:var(--fc-text-muted);margin-top:12px;line-height:1.5}
.work-directions{padding:42px 38px 70px;max-width:1200px}.work-directions h2{font-size:44px;margin-bottom:30px}.direction-list{border-top:1px solid var(--fc-border-control)}.direction-list>a{display:grid;grid-template-columns:250px 1fr 28px;align-items:center;gap:32px;padding:23px 15px;border-bottom:1px solid var(--fc-border-subtle);color:var(--fc-text);text-decoration:none;transition:background 180ms;border-radius:0}.direction-list>a:hover{background:var(--fc-surface-soft)}.direction-name{font:700 25px/1.25 var(--fc-type-display);color:var(--fc-link)}.direction-list>a>span:nth-child(2){font-size:17px;line-height:1.55}.direction-list>a:hover .direction-name{text-decoration:underline;text-underline-offset:5px}
.at-the-table{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center;padding:40px 38px 85px}.table-art{position:relative}.table-scene{display:block;overflow:hidden;border-radius:0 0 20px 20px;mask-image:linear-gradient(to bottom,transparent,#000 70px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 70px)}.table-scene img{width:100%;display:block}.table-dialogue{position:absolute;top:0;left:14px;font-size:20px;max-width:15ch;transform:rotate(-4deg)}.at-the-table h2{margin-bottom:25px;font-size:48px;max-width:15ch}.at-the-table .text-link{margin-top:20px}
.contact-kyle{padding:50px 38px 65px;border-top:1px solid var(--fc-border-subtle);text-align:center}.contact-brush{display:block;width:150px;height:18px;margin:0 auto 22px}.contact-kyle h2{font-size:clamp(40px,4.2vw,60px);transform:rotate(-2deg);margin-bottom:25px}.contact-kyle>p{max-width:52ch;margin:0 auto 27px}.contact-details{margin-top:28px}.contact-details p{margin-inline:auto;font-size:15px;color:var(--fc-text-muted)}.contact-details nav{display:flex;justify-content:center;gap:26px;margin-top:10px}
[data-theme=dark] .gesture{visibility:hidden}[data-theme=dark] .portrait-composition,[data-theme=dark] .about-portrait{border-radius:24px;background:radial-gradient(ellipse at 50% 60%,#294d62 0,transparent 70%)}
/* Native fallback when JavaScript is unavailable. Pictures themselves use media sources. */
@media(prefers-color-scheme:dark){html:not([data-theme]){--fc-canvas:#081b31;--fc-text:#e8f4f8;--fc-text-muted:#afc4d2;--fc-surface:#10273e;--fc-surface-soft:#213e59;--fc-border-subtle:#3c586d;--fc-border-control:#8caabb;--fc-link:#8fe3e6;--fc-focus:#8fe3e6}html:not([data-theme]) .fc-ink-coral{color:#ff9bb8}html:not([data-theme]) .fc-ink-teal{color:#8fe3e6}html:not([data-theme]) .fc-ink-ink{color:#e8f4f8}html:not([data-theme]) .gesture{visibility:hidden}}
@media(min-width:1600px){.front-hero{min-height:700px}.hero-copy{padding-top:74px}.hero-note{top:68px}}
@media(max-width:1100px){.front-hero{min-height:610px}.hero-copy{padding-left:20px;width:48%;padding-top:45px}.hero-copy h1{font-size:75px}.hero-intro{max-width:29ch;font-size:17px}.hero-note{left:54%;top:42px}.hero-note .fc-hand-note{font-size:21px}.section-intro{margin-inline:20px;gap:50px}.branch-grid{gap:16px}.branch-copy{padding:27px 21px 0}.branch h3{font-size:37px}.branch-copy p{font-size:16px;min-height:135px}.branch-actions{padding:20px}.branch-actions>a{font-size:15px}.meet-kyle{gap:35px;padding-inline:20px}.meet-copy h2{font-size:48px}.about-hero{padding-inline:20px;grid-template-columns:1fr 1.07fr;gap:10px}.about-copy h1{font-size:48px}.about-copy>p{font-size:17px}.about-portrait figcaption{right:14px;font-size:22px}.practice{gap:40px;padding-inline:20px}.practice h2{font-size:37px}.direction-list>a{grid-template-columns:215px 1fr 24px;gap:22px}.at-the-table{gap:44px}.at-the-table h2{font-size:40px}.footer-content{padding-inline:20px}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.front-hero{min-height:0;overflow:visible;border-radius:0;display:flex;flex-direction:column}.hero-copy{width:100%;max-width:none;padding:48px 12px 0}.hero-copy h1{font-size:clamp(59px,12vw,82px)}.hero-copy h1 .fc-arc-line{display:inline-block}.hero-copy h1 .fc-arc-line:first-child{display:block}.hero-copy h1 .fc-arc-line:nth-child(2){margin-right:.14em;margin-left:0}.hero-copy h1 .fc-arc-line:nth-child(3){margin-left:0}.hero-copy .fc-painted-underline{width:180px;margin-top:12px}.hero-intro{max-width:42ch;font-size:18px;margin-top:20px;margin-bottom:23px}.hero-scene{position:relative;order:2;inset:auto;width:calc(100% + 36px);margin:6px -18px 0;z-index:0;mask-image:linear-gradient(to bottom,transparent,#000 65px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 65px)}.hero-scene img{mask-image:none;-webkit-mask-image:none;aspect-ratio:4/3;object-fit:cover;object-position:bottom;height:auto}.hero-note{display:none}.starting-points{padding-top:45px}.section-intro{display:block;margin:0 12px 30px}.section-intro h2{font-size:42px;margin-bottom:22px}.section-intro p{font-size:18px}.branch-grid{grid-template-columns:1fr;gap:30px}.branch{border-radius:22px}.branch-copy{padding:29px 27px 0}.branch h3{font-size:43px}.branch-copy p{min-height:0;font-size:17px;max-width:43ch}.branch-scene{margin-top:8px}.branch-actions{padding:23px 27px 28px}.branch-actions>a{font-size:17px;max-width:400px}.branch-sublinks{flex-direction:row;flex-wrap:wrap;column-gap:24px}.meet-kyle{grid-template-columns:1fr;gap:36px;padding:89px 12px 50px}.meet-copy{max-width:none}.meet-copy>.fc-hand-note{font-size:22px;margin-bottom:24px}.meet-dialogue{right:8px;top:-48px;font-size:20px}.meet-copy h2{font-size:48px}.meet-copy p{font-size:18px}.shared-work{display:block;padding:28px 12px}.shared-work h2{font-size:30px;max-width:23ch}.shared-work>a{margin-top:22px}.footer-content{display:block;padding:0 12px 28px}.footer-content nav{gap:7px 23px}.front-footer{margin-top:50px}.footer-ground{height:100px}.logo-story-placement{padding:35px 12px}
.about-hero{grid-template-columns:1fr;gap:15px;padding:46px 12px 50px}.about-copy h1{font-size:clamp(40px,9vw,65px)}.about-copy>p{max-width:48ch;font-size:18px}.about-portrait{padding-top:58px;margin-inline:-12px}.about-portrait figcaption{top:9px;right:16px;font-size:21px}.about-portrait .portrait-heart{top:67px;right:10px;width:28px;height:28px}.practice{grid-template-columns:1fr;gap:34px;padding:44px 12px 40px}.practice h2{font-size:clamp(34px,7.5vw,45px)}.worktable figcaption{font-size:14px}.work-directions{padding:32px 12px 40px}.work-directions h2{font-size:37px}.direction-list>a{grid-template-columns:1fr 25px;gap:10px 12px;padding:23px 10px}.direction-name{font-size:26px}.direction-list>a>span:nth-child(2){grid-column:1;grid-row:2;font-size:16px}.direction-list .arrow{grid-row:1/3;grid-column:2}.at-the-table{grid-template-columns:1fr;gap:33px;padding:15px 12px 45px}.table-dialogue{left:7px;font-size:20px}.at-the-table h2{font-size:40px;max-width:20ch}.contact-kyle{padding:43px 12px}.contact-kyle h2{font-size:41px}.contact-kyle>p{font-size:17px}.contact-details p{font-size:14px}}
@media(max-width:420px){.hero-copy h1{font-size:clamp(49px,12.4vw,53px)}.hero-copy{padding-top:39px}.hero-intro{font-size:17px}.hero-copy .fc-action-primary{font-size:15px;padding:12px 18px;gap:8px}.section-intro h2{font-size:37px}.branch-copy{padding-inline:23px}.branch h3{font-size:40px}.branch-actions{padding-inline:23px}.about-copy h1{font-size:clamp(35px,9.4vw,40px)}.practice h2{font-size:33px}.fc-family__brand span{font-size:17px}.fc-family__brand small{font-size:11px}.fc-family__inner{padding-inline:18px}.fc-family__brand{gap:8px}.fc-family__toggle{padding-inline:12px}.about-portrait figcaption{font-size:20px}.meet-dialogue{font-size:17px}.work-directions h2{font-size:33px}.contact-kyle h2{font-size:35px}}
@media(max-width:760px){.logo-story-placement{display:flex;flex-direction:column;align-items:flex-start;gap:26px;padding:48px 12px 15px}.logo-story-copy h2{font-size:36px}.logo-story-copy .fc-hand-note{font-size:21px;margin:24px 0 22px}.logo-story-placement>[data-family-logo-story]{width:min(300px,100%);align-self:center}}
/* Respect the supplied brush's 3:1 canvas; a short forced box shrank it to a tick. */
.family-front .fc-painted-underline{width:215px;height:auto;aspect-ratio:3/1;margin:0 0 -18px -40px;object-fit:contain}
.contact-brush{width:200px;height:auto;aspect-ratio:3/1;margin:-12px auto 0}
@media(max-width:760px){.hero-copy h1 .fc-arc-line:nth-child(2){margin-right:.32em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.family-front *, .family-front *::before,.family-front *::after{animation:none!important;transition:none!important}}
[data-motion=reduced] *,[data-motion=off] *{animation:none!important;transition:none!important}
@media(forced-colors:active){.hero-scene,.branch-scene,.footer-ground,.gesture,.small-heart,.portrait-heart,.contact-brush{display:none}.branch{border:1px solid CanvasText}.front-hero{min-height:0}.hero-copy{padding-bottom:35px}.fc-arc-line{color:CanvasText}.direction-list>a{border-color:CanvasText}}
@media print{.fc-family,.front-footer,.hero-note,.logo-story-placement{display:none}.wrap{width:100%}.front-hero{min-height:0}.hero-scene{display:none}.hero-copy{width:100%;padding:20px}.branch-grid{gap:12px}.meet-kyle,.practice,.at-the-table{break-inside:avoid}.contact-kyle{padding:25px}a{color:inherit}}

/* Director composition: continue the painted route through the host and final invitation. */
.home-page .meet-kyle{position:relative;isolation:isolate;padding-bottom:105px}
.journal-ground{position:absolute;inset:auto 0 0;z-index:-1;height:180px;overflow:hidden;mask-image:linear-gradient(transparent,#000 76%);-webkit-mask-image:linear-gradient(transparent,#000 76%)}
.journal-ground img{display:block;width:100%;height:100%;object-fit:cover;object-position:bottom}
.home-page .shared-work{border:0;padding-top:52px;padding-bottom:16px}
.home-page .logo-story-placement{grid-template-columns:minmax(0,1fr) 220px;max-width:1100px;gap:80px;padding-top:45px}
.home-page .logo-story-placement>[data-family-logo-story]{width:220px}
.home-page .logo-story-copy h2{max-width:22ch}
.home-page .logo-story-copy>p{max-width:44ch}
.home-page .logo-story-copy .fc-action-primary{margin-top:24px}
.home-page [data-logo-state=idle]:has([data-logo-toggle][hidden]) .fc-logo-entry__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){.home-page .meet-kyle{padding-bottom:90px}.journal-ground{height:100px}.home-page .logo-story-placement{gap:30px}.home-page .logo-story-placement>[data-family-logo-story]{align-self:flex-end;width:180px}.home-page .logo-story-copy h2{font-size:36px}.home-page .logo-story-copy .fc-action-primary{font-size:16px}}
@media(forced-colors:active){.journal-ground{display:none}}
.perspective{padding:40px 38px 30px}.perspective>.fc-hand-note{font-size:23px;margin-bottom:30px;transform:rotate(-2deg)}
.perspective h2{font:700 clamp(32px,3.6vw,49px)/1.15 var(--fc-type-display);max-width:27ch;margin:0 0 30px}.perspective h2 span{color:var(--fc-link)}
.perspective-copy{display:grid;grid-template-columns:1fr 1fr;gap:50px;max-width:1050px}.perspective-copy p{font-size:18px;line-height:1.65;margin:0}
.case-preview{padding-top:60px;align-items:center}.case-kicker{font:700 14px/1.5 var(--fc-type-body);color:var(--fc-text-muted)}.case-preview h2 span{color:var(--fc-link)}
.case-question{font-weight:700}.case-preview .case-limit{font-size:15px;line-height:1.55;color:var(--fc-text-muted)}
.research-artifact{margin:0;transform:rotate(1deg)}.research-artifact img{display:block;width:100%;height:auto;border:1px solid var(--fc-border-subtle);border-radius:4px}.research-artifact figcaption{font:400 14px/1.55 var(--fc-type-body);color:var(--fc-text-muted);padding-top:14px}
@media(max-width:760px){.perspective{padding:20px 12px 10px}.perspective h2{font-size:35px}.perspective-copy{grid-template-columns:1fr;gap:20px}.perspective-copy p{font-size:17px}.case-preview{padding-top:38px;gap:32px}.research-artifact{transform:none}}
@media(max-width:760px){.home-page .hero-scene img{aspect-ratio:1.1;object-position:bottom}.home-page .hero-scene{mask-image:linear-gradient(transparent,#000 20px);-webkit-mask-image:linear-gradient(transparent,#000 20px)}}

/* Exact supplied paint supports the human-and-character scene. */
.portrait-composition .portrait-paint{width:70%;height:75%;left:-9%;top:20%;z-index:0;opacity:.52;transform:rotate(-12deg)}
[data-theme=dark] .portrait-composition .portrait-paint{opacity:.14}
.meet-dialogue{font-size:22px;right:14px;top:-47px;max-width:16ch}
.meet-dialogue .fc-note-heart{width:38px;height:38px}
@media(max-width:760px){.meet-dialogue{font-size:20px;top:-52px;right:0}.portrait-composition .portrait-paint{left:-6%;width:70%}.meet-kyle{padding-top:116px}}

.legacy-portfolio-links {font-size:.875rem;}
.legacy-portfolio-links a {display:none;}
.legacy-portfolio-links a:target {display:inline-block;padding-block:1rem;}
