@font-face{font-family:Noto;src:url('assets/noto-bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{color-scheme:light;--bg:#efefec;--text:#1b1d19;--muted:#5e625a;--line:#c8cbc3;--accent:#ddeb91;--space:clamp(24px,4.4vw,72px);--ease:cubic-bezier(.16,1,.3,1)}
:root[data-theme=dark]{color-scheme:dark;--bg:#181a17;--text:#efefec;--muted:#b1b5aa;--line:#41463d;--accent:#ddeb91}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#181a17;--text:#efefec;--muted:#b1b5aa;--line:#41463d}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #2471ee;outline-offset:6px}.skip{position:fixed;top:8px;left:8px;padding:16px;background:var(--text);color:var(--bg);z-index:10;transform:translateY(-150%)}.skip:focus{transform:none}
header{height:80px;max-width:1600px;margin:auto;padding:0 var(--space);display:flex;align-items:center;justify-content:space-between}.brand{font-size:31px;letter-spacing:-3px;font-weight:800;line-height:1}.brand span{color:var(--muted)}nav{display:flex;align-items:center;gap:40px}nav a{font-size:14px;padding:14px 0}nav a span{font-size:10px;vertical-align:super;margin-left:8px;color:var(--muted)}#theme{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;display:grid;place-items:center}#theme svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.5}#theme:hover{background:var(--line)}main,footer{max-width:1600px;margin:auto}.hero{padding:56px var(--space) 0;position:relative}.intro{font-size:14px;margin:0 0 24px;color:var(--muted)}h1{font-size:clamp(76px,13.1vw,205px);font-weight:500;line-height:1.08;letter-spacing:-.075em;margin:0;white-space:nowrap}h1 span{font-weight:800}h1 i{font-style:normal;color:var(--muted)}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin:40px 0 48px}.hero-bottom p{font-size:18px;line-height:1.5;letter-spacing:-.4px;margin:0}.explore{font-size:14px;display:flex;gap:48px;align-items:center;min-height:48px}.explore span{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;font-size:22px;transition:transform .3s var(--ease),background .3s}.explore:hover span{transform:translateY(4px);background:var(--accent);color:#1b1d19}.hero-line{height:1px;background:var(--line)}.projects{padding:32px var(--space) 0}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}h2{font-size:16px;font-weight:500;margin:0}h2 span{margin-left:8px;color:var(--muted)}.edition{font-size:11px;letter-spacing:1px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:56px 24px}.project{display:block;min-width:0}.project-visual{position:relative;overflow:hidden;height:540px;border-radius:4px;background:#202522;color:#fff;isolation:isolate}.project:first-child{grid-column:1/-1}.project:first-child .project-visual{height:600px}.project .art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s var(--ease)}.visual-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#151b17eb 0%,#151b17b8 38%,#151b1720 100%)}.project-top{display:flex;align-items:center;gap:24px;padding:32px}.number{font-size:12px;opacity:.8}.category{font-size:12px;letter-spacing:.4px}.arrow{margin-left:auto;width:44px;height:44px;border:1px solid #ffffff70;border-radius:50%;display:grid;place-items:center;transition:background .25s,color .25s,transform .3s var(--ease)}svg{width:20px;height:20px}.wordmark{position:absolute;left:40px;top:130px;font-weight:800;font-size:clamp(40px,6vw,96px);letter-spacing:-.07em;line-height:1}.drillwerk .wordmark{font-family:Noto,Arial,sans-serif;font-style:italic;letter-spacing:-.065em;transform:scaleX(.94);transform-origin:left}.drillwerk .wordmark:after{content:'';display:block;height:5px;background:#ff826f;width:100%;margin-top:16px}.drillwerk .art{object-position:75% 50%}.project h3{position:absolute;left:40px;bottom:40px;font-size:clamp(32px,3.8vw,60px);font-weight:500;letter-spacing:-.055em;line-height:1.05;margin:0}.project-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-top:20px}.project-caption p{font-size:14px;line-height:1.55;max-width:390px;color:var(--muted);margin:0}.project-caption>span{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:12px;min-height:24px}.project-caption svg{width:14px;height:14px}.base .wordmark{width:190px;top:110px}.wordmark img{width:100%;height:auto}.base .visual-shade{background:linear-gradient(180deg,#171d1bdd,#171d1b25 65%,#171d1bdc)}.base .art{object-position:60% center}.base h3{font-size:44px}.keeep .project-visual{background:#dce8ff;color:#112957}.keeep .visual-shade{background:linear-gradient(90deg,#dce8ffb0,#dce8ff00)}.keeep .wordmark{font-size:80px;top:115px;letter-spacing:-.085em;font-weight:600}.keeep .arrow{border-color:#11295766}.keeep h3{font-size:44px}.keeep .category{letter-spacing:0}.project:hover .art{transform:scale(1.035)}.project:hover .arrow{background:#fff;color:#171d1b;transform:rotate(45deg)}.project:active .arrow{transform:scale(.94)}.closing{display:flex;align-items:flex-end;justify-content:space-between;padding:128px var(--space) 88px}.closing>p{font-size:clamp(48px,7vw,104px);line-height:1.02;letter-spacing:-.065em;margin:0}.closing>p span{color:var(--muted)}.closing>div{font-size:14px;color:var(--muted);line-height:1.6;padding-bottom:8px}footer{border-top:1px solid var(--line);padding:28px var(--space);display:flex;align-items:center;justify-content:space-between}footer p,footer>a:last-child{font-size:12px;color:var(--muted)}footer>a:last-child{min-height:44px;display:flex;align-items:center;gap:20px}
@media(prefers-reduced-motion:no-preference){.hero h1{animation:enter .9s var(--ease) both}.hero-bottom{animation:enter .9s .12s var(--ease) both}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.is-visible{opacity:1;transform:none}@keyframes enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}}
@media(min-width:1600px){h1{font-size:205px}}
@media(max-width:900px){.hero{padding-top:40px}.project-caption{display:block}.project-caption>span{margin-top:12px}.project:first-child .project-visual{height:510px}.project-visual{height:480px}.project-top{padding:24px;gap:16px}.wordmark,.project h3{left:24px}.category{font-size:11px}.drillwerk .wordmark{font-size:70px}.base .wordmark{width:150px}.keeep .wordmark{font-size:68px}.base h3,.keeep h3{font-size:36px}}
@media(max-width:767px){header{height:72px}nav{gap:24px}.hero{padding-top:32px}.intro{font-size:12px;margin-bottom:24px}h1{font-size:clamp(65px,14vw,108px);letter-spacing:-.07em}.hero-bottom{align-items:flex-start;flex-direction:column;gap:24px;margin:28px 0 32px}.hero-bottom p{font-size:16px}.explore{justify-content:space-between;width:100%}.projects{padding-top:24px}.section-heading{margin-bottom:24px}.project-grid{grid-template-columns:1fr;gap:36px}.project:first-child{grid-column:auto}.project-visual,.project:first-child .project-visual{height:470px}.project-top{padding:20px;gap:14px}.category{font-size:11px}.wordmark,.project h3{left:24px}.drillwerk .wordmark{font-size:clamp(34px,9vw,60px);top:120px}.drillwerk .wordmark:after{height:4px;margin-top:12px}.project h3{bottom:28px;font-size:42px}.drillwerk .art{object-position:68% center}.drillwerk .visual-shade{background:linear-gradient(180deg,#151b1780,#151b1740 50%,#151b17e8)}.base .wordmark{width:175px;top:115px}.keeep .wordmark{font-size:74px;top:115px}.project-caption{padding-top:16px}.project-caption p{max-width:100%;font-size:14px}.closing{padding-top:80px;padding-bottom:56px;display:block}.closing>p{font-size:58px}.closing>div{margin-top:24px}footer{flex-wrap:wrap;gap:16px}footer p{display:none}.arrow{width:44px;height:44px}}
@media(max-width:360px){.project-top{gap:10px;padding:16px}.category{font-size:10px}.project h3{font-size:36px}.closing>p{font-size:50px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(max-width:380px){h1{font-size:clamp(48px,15.8vw,60px)}}

/* Project gate is a browser-side interaction barrier, not server authentication. */
button.project{font:inherit;color:inherit;text-align:left;border:0;padding:0;background:none;cursor:pointer;width:100%}
.project-gate{width:min(440px,calc(100% - 32px));padding:32px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--text)}
.project-gate::backdrop{background:#0009}
.project-gate h2{font-size:28px;letter-spacing:-1px;padding-right:32px}
.project-gate p{font-size:14px;line-height:1.6;color:var(--muted)}
.project-gate label{display:block;font-size:14px;margin:24px 0 8px}
.project-gate input{width:100%;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--text);font:inherit;font-size:16px}
.project-gate input:focus-visible{outline:3px solid #2471ee;outline-offset:3px}
.project-gate .gate-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border:0;background:none;font-size:28px}
.project-gate .gate-submit{width:100%;min-height:48px;border:0;border-radius:4px;background:var(--text);color:var(--bg);font:inherit}
.project-gate #gate-error{min-height:24px;color:#bd3333;margin:12px 0}
:root[data-theme=dark] .project-gate #gate-error{color:#ff9898}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .project-gate #gate-error{color:#ff9898}}

.knockknock{grid-column:1/-1}.knockknock .project-visual{background:#eaf1ff;color:#101b33}.knockknock .art{object-position:75% center}.knockknock .visual-shade{background:linear-gradient(90deg,#eaf1ffff 0%,#eaf1ffef 30%,#eaf1ff00 75%)}.knockknock .wordmark{font-size:clamp(32px,5.7vw,80px);max-width:55%;letter-spacing:-.06em}.knockknock .arrow{border-color:#101b3370}.knockknock h3{color:#0b56cf}@media(max-width:767px){.knockknock .wordmark{font-size:38px;max-width:85%;top:110px}.knockknock .visual-shade{background:linear-gradient(180deg,#eaf1ff 0%,#eaf1ff70 48%,#eaf1ff 100%)}.knockknock .art{object-position:60% center}}

@font-face{font-family:KnockManrope;src:url('assets/knockknock-bold.ttf') format('truetype');font-weight:700;font-display:swap}
.knockknock .wordmark{display:flex;align-items:center;gap:18px;color:#0754f8;max-width:85%;font-size:clamp(32px,4.8vw,64px);letter-spacing:-.06em;top:125px}
.knockknock .wordmark .brand-icon{width:72px;height:72px;flex-shrink:0}
.knockknock .brand-type{white-space:nowrap;line-height:1.1;font-weight:400}
.knockknock .brand-type b{font-family:KnockManrope,Arial,sans-serif;font-weight:700}
.knockknock .brand-type>span{font-weight:400}
.knockknock .art{object-position:center}
.knockknock .visual-shade{background:linear-gradient(90deg,#f0f6ffeb 0%,#f0f6ffb0 38%,#f0f6ff00 66%)}
.knockknock h3{font-family:KnockManrope,Arial,sans-serif;color:#081638}
@media(max-width:767px){.knockknock .wordmark{font-size:clamp(22px,6vw,36px);gap:10px;left:20px;top:105px;max-width:calc(100% - 40px)}.knockknock .wordmark .brand-icon{width:48px;height:48px}.knockknock .art{object-position:68% center}.knockknock .visual-shade{background:linear-gradient(180deg,#f0f6fff0 0%,#f0f6ff30 48%,#f0f6fff0 100%)}.knockknock h3{font-size:38px}}

.mise{grid-column:1/-1}.mise .project-visual{background:#f7f5ef;color:#35232f}.mise .art{width:64%;left:auto;right:0;object-position:center}.mise .visual-shade{background:linear-gradient(90deg,#f7f5ef 0%,#f7f5ef 34%,#f7f5efb0 47%,#f7f5ef00 66%)}.mise .wordmark{width:260px;top:125px}.mise .wordmark img{height:auto;aspect-ratio:206/64}.mise .arrow{border-color:#35232f80}.mise h3{color:#35232f}.mise:hover .arrow{background:#35232f;color:#fff}@media(max-width:767px){.mise .art{width:100%;object-position:62% center}.mise .visual-shade{background:linear-gradient(180deg,#f7f5eff5 0%,#f7f5efb0 30%,#f7f5ef10 55%,#f7f5eff5 90%)}.mise .wordmark{width:205px;top:105px}.mise h3{font-size:40px}}

.rheinrebe{grid-column:1/-1}.rheinrebe .project-visual{background:#f6f2e9;color:#0f3b2e}.rheinrebe .art{object-position:center}.rheinrebe .visual-shade{background:linear-gradient(90deg,#f6f2e9f5 0%,#f6f2e9d9 28%,#f6f2e940 56%,#f6f2e900 80%)}.rheinrebe .wordmark{width:300px;top:95px;left:32px}.rheinrebe .wordmark img{height:200px;width:300px;object-fit:contain;mix-blend-mode:multiply}.rheinrebe .arrow{border-color:#0f3b2e70}.rheinrebe h3{color:#0f3b2e}.rheinrebe:hover .arrow{background:#0f3b2e;color:white}@media(max-width:767px){.rheinrebe .wordmark{width:240px;left:8px;top:80px}.rheinrebe .wordmark img{width:240px;height:160px}.rheinrebe .visual-shade{background:linear-gradient(180deg,#f6f2e9f5 0%,#f6f2e9c0 33%,#f6f2e910 57%,#f6f2e9ed 100%)}.rheinrebe h3{font-size:38px}}

/* STYFT studio identity follows the existing editorial portfolio system. */
header>.brand,footer>.brand{letter-spacing:-1.8px;font-size:27px}
.hero .studio-title{font-size:clamp(76px,11vw,166px);line-height:.94;letter-spacing:-.075em;white-space:normal}
.hero .studio-title>span{font-weight:800}.hero .hero-bottom p{max-width:480px}
.studio-section{padding:112px var(--space) 96px;display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(32px,6vw,96px);scroll-margin-top:32px}
.studio-origin{border-top:1px solid var(--line);padding-top:24px}
.studio-signature{display:block;font-size:clamp(44px,5vw,72px);font-weight:800;letter-spacing:-.07em}
.studio-signature>span{color:var(--muted)}
.studio-origin p{font-size:16px;line-height:1.5;color:var(--muted);margin-top:20px}
.studio-story h2{font-size:clamp(30px,3vw,46px);line-height:1.12;letter-spacing:-.05em;font-weight:500;margin:0 0 32px}
.studio-story h2>span{color:var(--muted)}
.studio-story>p{font-size:17px;line-height:1.7;max-width:60ch;color:var(--muted);margin:0 0 20px}
.studio-story>.studio-principle{color:var(--text);font-size:23px;letter-spacing:-.03em;line-height:1.3;margin-top:40px;margin-bottom:16px}
.personal-signature{margin-left:20px}
@media(min-width:1600px){.hero .studio-title{font-size:166px}}
@media(max-width:767px){.studio-nav{display:none}.hero .studio-title{font-size:clamp(66px,16vw,110px);line-height:.96}.hero .hero-bottom p{font-size:16px}.studio-section{grid-template-columns:1fr;padding-top:72px;padding-bottom:56px;gap:40px}.studio-story h2{font-size:32px}.studio-story>p{font-size:16px}.personal-signature{display:block;margin:8px 0 0}footer p{display:block;font-size:11px;line-height:1.4}footer{gap:12px}}
.project-caption>p{display:none}.project-caption{justify-content:flex-end}

/* Alternate large features with compact paired project tiles. */
@media(min-width:768px){
 .knockknock,.mise{grid-column:auto}
 .knockknock .project-visual,.mise .project-visual{height:480px}
 .knockknock .wordmark{left:24px;top:110px;font-size:clamp(24px,2.7vw,40px);gap:12px;max-width:calc(100% - 48px)}
 .knockknock .wordmark .brand-icon{width:52px;height:52px}
 .knockknock .art{object-position:63% center}
 .knockknock .visual-shade{background:linear-gradient(180deg,#f0f6ffef 0%,#f0f6ff80 32%,#f0f6ff10 55%,#f0f6fff0 100%)}
 .knockknock h3,.mise h3{left:24px;font-size:42px;bottom:32px}
 .mise .wordmark{left:24px;top:105px;width:220px}
 .mise .art{width:100%;object-position:60% center}
 .mise .visual-shade{background:linear-gradient(180deg,#f7f5eff5 0%,#f7f5efb0 30%,#f7f5ef10 55%,#f7f5eff5 100%)}
}
@media(min-width:768px) and (max-width:1000px){.knockknock .wordmark{font-size:24px;gap:8px;left:20px}.knockknock .wordmark .brand-icon{width:40px;height:40px}.knockknock h3,.mise h3{font-size:36px}}
