@font-face { font-family:Barlow;src:url('assets/display-heavy.ttf') format('truetype');font-weight:800;font-display:swap }
@font-face { font-family:Manrope;src:url('assets/body-regular.ttf') format('truetype');font-weight:400;font-display:swap }
@font-face { font-family:Manrope;src:url('assets/body-semibold.ttf') format('truetype');font-weight:600 800;font-display:swap }
:root { --blue:#244fe5;--paper:#f3f4ef;--ink:#20251e;--muted:#62665f;--line:#cbd0c8;--mint:#dce7d5;--pad:clamp(24px,5vw,88px) }
* { box-sizing:border-box }
html { scroll-padding-top:96px }
html.section-scrolling { overflow-anchor:none;scroll-behavior:auto }
body { margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.6 }
a { color:inherit;text-decoration:none }
button, input, textarea { font:inherit }
button, a, summary { -webkit-tap-highlight-color:transparent }
button { cursor:pointer }
button { color:inherit }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible { outline:3px solid #e45731;outline-offset:6px }
/* Section navigation moves focus without drawing a border around the destination. */
:is(body, main, section)[tabindex="-1"]:focus { outline:none }
button { border:0 }
::selection { background:var(--blue);color:white }
img { max-width:100%;display:block }
h1, h2, h3, p, figure { margin:0 }
h1, h2 { font-family:Barlow,'Arial Narrow',sans-serif;font-weight:800;text-transform:uppercase;line-height:.88;letter-spacing:-.025em }
h2 { font-size:clamp(62px,6.3vw,100px) }
.skip { position:fixed;top:10px;left:10px;padding:12px;background:white;z-index:100;transform:translateY(-200%) }
.skip:focus { transform:none }
.header { height:108px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20;background:var(--paper) }
.brand { display:flex;align-items:center;gap:12px;color:var(--blue);font-size:21px;line-height:1;letter-spacing:-1px;font-weight:800 }
.brand img { width:57px;height:auto }
.header nav { display:flex;gap:34px;font-size:14px }
.header nav a { position:relative }
.header nav a:after { content:'';position:absolute;bottom:-5px;left:0;width:100%;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s }
.header nav a:hover:after { transform:scaleX(1) }
.header-cta { background:transparent;border:1px solid var(--blue);border-radius:30px;padding:11px 21px;color:var(--blue);font-size:14px;display:flex;align-items:center;gap:28px }
.header-cta span { font-size:22px }
.header-cta:hover { background:var(--blue);color:white }
.menu-toggle { display:none }
.mobile-menu[hidden] { display:none }
.hero { padding:0 var(--pad);overflow:hidden }
.hero-topline { display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:13px;color:var(--muted) }
.hero-composition { position:relative;min-height:660px;height:calc(100svh - 205px);max-height:880px;padding-top:40px }
.hero h1 { color:var(--blue);font-size:clamp(126px,14.4vw,235px);line-height:.83;position:relative;z-index:2;pointer-events:none;width:max-content }
.hero h1>span { display:block }
.hero h1>span:nth-child(2) { margin-left:11.3vw }
.hero h1>span:nth-child(3) { margin-left:0 }
.period { letter-spacing:-.08em }
.orb-wrap { position:absolute;right:-7.5vw;top:-50px;width:51vw;height:51vw;max-width:760px;max-height:760px;pointer-events:none;z-index:1 }
canvas { width:100%;height:100% }
.orb-cross { position:absolute;color:var(--blue);font-size:24px;font-weight:400 }
.cross-a { top:20%;left:18% }
.cross-b { top:70%;right:12% }
.cross-c { top:12%;right:13% }
.orb-caption { position:absolute;top:51%;right:6%;font-size:12px;writing-mode:vertical-rl;color:var(--blue) }
.hero-note { position:absolute;left:50%;bottom:48px;z-index:3;display:grid;grid-template-columns:35px 1fr;gap:14px 25px;font-size:15px }
.small-line { width:35px;height:1px;background:var(--ink);margin-top:12px }
.text-link { font-size:14px;display:inline-flex;align-items:center;gap:32px;border-bottom:1px solid currentColor;padding-bottom:7px;width:max-content }
.text-link span { font-size:22px;transition:transform .2s }
.text-link:hover span { transform:translate(3px,3px) }
.hero-note .text-link { grid-column:2 }
.scroll-cue { position:absolute;right:0;bottom:53px;width:73px;height:73px;border:1px solid var(--blue);color:var(--blue);border-radius:50%;display:grid;place-items:center;font-size:34px;z-index:3;transition:background .2s,color .2s }
.scroll-cue:hover { background:var(--blue);color:var(--paper) }
.hero-bottom { display:flex;justify-content:space-between;padding:18px 0 20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted) }
.hero-bottom span:last-child { display:flex;gap:40px }
.section-pad { padding:120px var(--pad) }
.services { display:grid;grid-template-columns:1fr 1.4fr;gap:7vw;background:#fff }
.section-label { font-size:14px;display:flex;align-items:center;gap:10px;margin-bottom:38px }
.square { display:block;width:7px;height:7px;background:currentColor }
.section-intro h2 { font-size:clamp(60px,5.2vw,85px);margin-bottom:34px }
.section-intro>p:last-child { color:var(--muted);font-size:15px;line-height:1.9 }
.service-list { border-top:1px solid var(--ink) }
details { border-bottom:1px solid var(--line) }
summary { list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;align-items:center;padding:25px 0;gap:6px 22px }
summary::-webkit-details-marker { display:none }
summary>span:first-child { font-size:clamp(23px,2.2vw,34px);letter-spacing:-.9px;line-height:1.2 }
.service-hint { display:none }
.plus { position:relative;width:26px;height:26px;grid-column:2;grid-row:1 }
.plus:before, .plus:after { content:'';position:absolute;top:12px;left:4px;width:18px;height:1px;background:currentColor;transition:transform .25s }
.plus:after { transform:rotate(90deg) }
details[open] .plus:after { transform:rotate(0) }
details[open] summary, summary:hover { color:var(--blue) }
.service-body { padding:0 55px 30px 0;font-size:14px;color:var(--muted) }
.service-body p { max-width:50ch;line-height:1.9 }
.tags { display:flex;flex-wrap:wrap;gap:8px;margin-top:20px }
.tags span { font-size:12px;border:1px solid var(--line);padding:4px 11px;border-radius:20px }
.manifesto { height:140vh;min-height:850px;background:var(--blue);color:var(--paper);position:relative;overflow:clip }
.manifesto-meta { display:flex;justify-content:space-between;font-size:13px }
.manifesto-type { font-family:Barlow,'Arial Narrow',sans-serif;font-size:clamp(80px,11.6vw,192px);font-weight:800;text-transform:uppercase;line-height:.91;letter-spacing:-.025em;white-space:nowrap;align-self:center }
.manifesto-type span { display:block;will-change:transform }
.manifesto-type span:nth-child(2) { margin-left:16vw }
.outline-type { color:transparent;-webkit-text-stroke:1.5px var(--paper) }
.manifesto-foot { display:flex;align-items:flex-end;justify-content:space-between }
.manifesto-foot img { width:95px;height:auto;transform:rotate(-14deg) }
.manifesto-foot p { font-size:14px;line-height:1.9;max-width:370px }
.work { background:var(--paper) }
.work-heading { display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:70px;gap:30px }
.work-heading>p { font-size:14px;color:var(--muted);line-height:1.9;padding-bottom:6px }
.project-grid { display:grid;grid-template-columns:1.08fr 1fr;column-gap:6vw;row-gap:95px }
.project-image { position:relative;overflow:hidden;background:#e4e6df }
.project-image>img { width:100%;height:120%;object-fit:cover;position:absolute;left:0;top:-10%;will-change:transform }
.project-outdoor .project-image { height:560px }
.project-textile { padding-top:145px }
.project-textile .project-image { height:300px;background:#fff }
.project-textile .project-image>img { object-fit:contain;mix-blend-mode:multiply;padding:28px }
.project-books .project-image { height:420px }
.project-books { grid-column:2;grid-row:2;margin-top:-70px }
.project-chip { position:absolute;bottom:20px;left:20px;border-radius:30px;background:var(--paper);padding:7px 14px;font-size:12px;z-index:2 }
.project figcaption { display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px }
.project figcaption h3 { font-size:19px;font-weight:600;letter-spacing:-.5px }
.project figcaption>span { font-size:12px;color:var(--muted) }
.project-note { grid-column:1;grid-row:2;padding:25px 0 0 8vw;align-self:center }
.project-note>span { font-size:64px;line-height:1;color:var(--blue) }
.project-note p { font-family:Barlow,sans-serif;font-size:65px;font-weight:800;line-height:1;text-transform:uppercase;margin:25px 0 35px }
.project-note small { display:block;font-size:12px;color:var(--muted);margin-top:10px }
.contact { background:var(--mint);padding-top:45px;padding-bottom:65px;overflow:hidden }
.contact-top { display:flex;justify-content:space-between;align-items:flex-start;font-size:13px }
/* Leave room above the second line for Czech uppercase accents. */
.contact h2 { font-size:clamp(110px,17.5vw,280px);line-height:1.04;color:var(--blue);margin:45px 0 55px }
.contact h2 span { display:inline-block;transform:rotate(12deg) }
.contact-bottom { display:flex;justify-content:space-between;align-items:flex-end }
.contact-bottom p { font-size:14px }
.big-cta { background:var(--blue);color:white;padding:22px 28px 22px 35px;border-radius:60px;display:flex;align-items:center;gap:80px;font-size:20px;transition:transform .25s }
.big-cta .cta-arrow { font-size:40px;line-height:1 }
footer { display:flex;align-items:center;justify-content:space-between;padding:35px var(--pad);font-size:12px;gap:24px }
.footer-name { font-size:21px;font-weight:800;letter-spacing:-1px;color:var(--blue) }
input { accent-color:var(--blue) }
textarea { width:100%;border:1px solid var(--line);background:white;padding:12px;resize:vertical;font-size:15px }
.form-note { font-size:12px;color:var(--muted);margin:12px 0 20px }
@media(min-width:1650px) {
  .hero-composition { min-height:800px }
  .hero-note { bottom:70px }
  .hero h1 { font-size:230px }
}
@media(max-width:1100px) {
  .header nav { gap:20px }
  .hero-composition { height:650px }
  .hero h1 { font-size:16vw }
  .orb-wrap { top:0;width:65vw;height:65vw;right:-13vw }
  .hero-note { left:43%;bottom:35px }
  .services { gap:5vw;grid-template-columns:1fr 1.25fr }
  .project-outdoor .project-image { height:480px }
  .project-grid { column-gap:4vw }
  .project figcaption { display:block }
  .project figcaption>span { display:block;margin-top:4px }
  .project-note { padding-left:3vw }
  .project-note p { font-size:57px }
}
@media(max-width:760px) {
  html { scroll-padding-top:20px }
  .header { height:88px }
  .brand { font-size:18px }
  .brand img { width:44px }
  .header nav, .header-cta { display:none }
  .menu-toggle { display:flex;flex-direction:column;justify-content:center;gap:7px;background:transparent;width:44px;height:44px;padding:8px }
  .menu-toggle span { display:block;width:28px;height:1px;background:var(--blue);transition:transform .2s }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg) }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg) }
  .mobile-menu { background:var(--paper);position:absolute;top:88px;left:0;right:0;z-index:19;padding:30px var(--pad);box-shadow:0 18px 20px #20251e18 }
  .mobile-menu nav { display:flex;flex-direction:column;gap:20px;font-size:25px }
  .hero-topline { font-size:11px;padding-top:16px }
  .hero-topline span:last-child { display:none }
  .hero-composition { min-height:670px;height:auto;padding-top:45px }
  .hero h1 { font-size:24vw;line-height:.86 }
  .hero h1>span:nth-child(2) { margin-left:5vw }
  .orb-wrap { width:94vw;height:94vw;top:180px;right:-39vw;opacity:.9 }
  .orb-caption { display:none }
  .hero-note { left:0;bottom:52px;grid-template-columns:20px 1fr;gap:18px;font-size:14px }
  .small-line { width:20px }
  .hero-note p { max-width:260px }
  .hero-note .text-link { font-size:13px }
  .scroll-cue { width:48px;height:48px;bottom:54px;font-size:27px }
  .hero-bottom { font-size:10px;gap:20px }
  .hero-bottom>span:first-child { max-width:180px }
  .hero-bottom span:last-child { gap:12px;align-items:center }
  .section-pad { padding:75px var(--pad) }
  .services { grid-template-columns:1fr;gap:45px }
  .section-label { margin-bottom:25px;font-size:13px }
  .section-intro h2 { font-size:65px;margin-bottom:23px }
  .service-list summary { padding:23px 0 }
  .service-body { padding-right:20px }
  .manifesto { height:110vh;min-height:700px }
  .manifesto-meta { font-size:11px;gap:20px }
  .manifesto-type { font-size:14vw;line-height:1.07;align-self:flex-start;letter-spacing:-.015em }
  .manifesto-type span:nth-child(2) { margin-left:10vw }
  .manifesto-foot { gap:24px }
  .manifesto-foot img { width:65px }
  .manifesto-foot p { font-size:12px;max-width:240px }
  .work-heading { display:block;margin-bottom:40px }
  .work-heading h2 { font-size:65px }
  .work-heading>p { margin-top:28px }
  .project-grid { display:flex;flex-direction:column;gap:42px }
  .project-textile { padding-top:0 }
  .project-outdoor .project-image { height:440px }
  .project-textile .project-image { height:265px }
  .project-books { margin-top:0 }
  .project-books .project-image { height:330px }
  .project figcaption { display:flex;align-items:flex-start }
  .project figcaption h3 { font-size:17px }
  .project figcaption>span { font-size:10px;text-align:right }
  .project-note { padding:20px 0 0;width:100% }
  .project-note p { font-size:60px;display:inline-block;margin:0 0 25px 30px;vertical-align:top }
  .project-note>a { display:flex }
  .contact { padding-top:30px;padding-bottom:45px }
  .contact-top>span { display:none }
  .contact h2 { font-size:23vw;margin:38px 0 }
  .contact-bottom { align-items:flex-start;flex-direction:column;gap:30px }
  .big-cta { font-size:17px;padding:20px 25px;gap:65px;width:100%;justify-content:space-between }
  .big-cta .cta-arrow { font-size:30px }
  footer { flex-wrap:wrap;gap:15px;padding:28px var(--pad) }
  footer>span { display:none }
  .footer-name { font-size:19px }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *, *:before, *:after { animation:none!important;transition:none!important }
  .manifesto { height:auto;min-height:0 }
  .manifesto-type span, .project-image img { transform:none!important }
  .hero h1>span { opacity:1!important;transform:none!important }
}
@media(max-width:760px) {
  .work-heading h2 { font-size:clamp(48px,16.66vw,65px) }
  .contact h2 { font-size:21.3vw }
  .manifesto-type { font-size:16.5vw;line-height:1;white-space:normal;width:100% }
  .manifesto-type span:nth-child(2) { margin-left:5vw }
  .manifesto-type span:nth-child(3) { width:90% }
}
.contact-details { display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:40px;padding-top:38px;margin-top:58px;border-top:1px solid #a5b59d;font-style:normal;font-size:15px;line-height:1.8 }
.contact-details strong { font-weight:600 }
.contact-person, .contact-address, .contact-links { display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0 }
.contact-person strong { font-size:27px;line-height:1.3;letter-spacing:-.6px }
.contact-person>span { color:var(--muted);font-size:13px }
.contact-links { gap:8px }
.contact-links a { color:var(--blue);font-size:clamp(16px,1.45vw,23px);overflow-wrap:anywhere }
.contact-details a:hover, .form-note a:hover { text-decoration:underline;text-underline-offset:4px }
.contact-address a { margin-top:6px }
.form-note a { text-decoration:underline }
@media(max-width:760px) {
  .contact-details { grid-template-columns:1fr;gap:28px;margin-top:38px;padding-top:30px }
  .contact-links a { font-size:18px }
  .contact-person strong { font-size:25px }
}

/* Quiet uncoated stock: seamless background paint beneath the content.
   No input layer, animation, fixed attachment, or effect over the typography. */
body, .header, .services, .work, body .gallery-dialog {
  background-image:url('assets/paper-grain.svg');
  background-repeat:repeat;
  background-size:384px 384px;
}
@media print {
  body, .header, .services, .work, body .gallery-dialog { background-image:none }
}
