/* Curry Transport. Black ink on white paper. One line weight, lots of air. */
:root{
  --paper:#fff;--ink:#000;--grey:#6e6e6e;--rule:#e6e6e6;--line:#bdbdbd;
  --disp:"Montserrat","Futura","Avenir Next","Century Gothic",sans-serif;
  --text:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --navh:64px;--m:clamp(20px,4vw,56px);--w:1040px;
}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:light only;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--text);font-weight:300;font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:1px solid #000;outline-offset:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--m)}

/* menu bar */
.nav{position:sticky;top:0;z-index:5;height:var(--navh);background:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:0 var(--m);border-bottom:1px solid var(--rule)}
.nav .mark img{height:38px;width:auto;display:block}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:40px}
.nav li a{font-family:var(--disp);font-weight:400;font-size:12px;letter-spacing:.28em;text-transform:uppercase;position:relative;padding:6px 0;display:inline-block}
.nav li a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#000;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav li a:hover::after,.nav li a[aria-current="page"]::after{transform:scaleX(1)}
.nav .menu{display:none;background:none;border:0;font-family:var(--disp);font-weight:400;font-size:12px;letter-spacing:.28em;text-transform:uppercase;padding:8px 0;cursor:pointer;color:#000}
@media (max-width:820px){
  .nav ul{display:none;position:fixed;top:var(--navh);left:0;right:0;bottom:0;background:#fff;flex-direction:column;gap:0;padding:24px var(--m);overflow:auto}
  .nav.open ul{display:flex}
  .nav li a{font-size:16px;padding:18px 0;display:block;border-bottom:1px solid var(--rule)}
  .nav li a::after{display:none}
  .nav .menu{display:block}
}

/* first screen */
.hero{min-height:calc(64vh - var(--navh));min-height:calc(64svh - var(--navh));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px var(--m) 40px}
.hero .logo{width:min(560px,78vw)}
.hero .logo img{width:100%;height:auto;display:block}
.hero .logo .word{margin-top:0}
.hero .tag{font-family:var(--disp);font-weight:300;font-size:clamp(13px,1.3vw,16px);letter-spacing:.42em;text-transform:uppercase;margin:28px 0 0;padding-left:.42em}
.hero .btn{margin-top:36px}
@media (prefers-reduced-motion:no-preference){
  .js .hero .stroke{clip-path:inset(0 100% 0 0);animation:draw 1.9s cubic-bezier(.4,0,.2,1) .3s forwards}
  .js .hero .word,.js .hero .tag,.js .hero .btn{opacity:0;animation:up .9s ease-out forwards}
  .js .hero .word{animation-delay:2s}.js .hero .tag{animation-delay:2.35s}.js .hero .btn{animation-delay:2.6s}
  @keyframes draw{to{clip-path:inset(0 0 0 0)}}
  @keyframes up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}

/* buttons */
.btn{display:inline-block;border:1px solid #000;padding:17px 36px 16px;font-family:var(--disp);font-weight:400;font-size:12px;letter-spacing:.28em;text-transform:uppercase;background:#fff;color:#000;cursor:pointer;transition:background .2s,color .2s;line-height:1.4}
.btn:hover{background:#000;color:#fff}
.btn[disabled]{opacity:.5;cursor:default}

/* home: three statements */
.three{border-top:1px solid #000;display:grid;grid-template-columns:repeat(3,1fr);gap:0 56px;padding:40px 0 80px}
.three h2{font-family:var(--disp);font-weight:300;font-size:14px;letter-spacing:.3em;text-transform:uppercase;margin:0 0 20px}
.three p{margin:0;max-width:34ch}
.three p a{border-bottom:1px solid var(--line);padding-bottom:1px}
.three p a:hover{border-color:#000}
@media (max-width:820px){.three{grid-template-columns:1fr;gap:48px;padding:48px 0 80px}}

/* page head */
.head{padding:112px 0 56px}
.head h1{font-family:var(--disp);font-weight:300;font-size:clamp(28px,4vw,46px);letter-spacing:.22em;text-transform:uppercase;line-height:1.15;margin:0;text-wrap:balance}
.head p{font-size:20px;line-height:1.55;max-width:48ch;margin:28px 0 0}
.head .btn{margin-top:40px}
@media (max-width:820px){.head{padding:72px 0 40px}}

/* about */
.about{padding:112px 0 0}
.about h1{font-family:var(--disp);font-weight:300;font-size:clamp(28px,4vw,46px);letter-spacing:.22em;text-transform:uppercase;line-height:1.15;margin:0 0 40px}
.about .stmt{font-size:clamp(22px,2.4vw,30px);line-height:1.45;max-width:40ch;margin:0;text-wrap:balance}
.about .more{font-size:20px;line-height:1.6;max-width:56ch;margin:32px 0 0}
@media (max-width:820px){.about{padding:72px 0 0}}

/* fact rows, label left and value right */
.sheet{border-top:1px solid #000;margin-top:16px}
.sheet .r{display:grid;grid-template-columns:220px 1fr;gap:24px 48px;padding:30px 0;border-bottom:1px solid var(--rule)}
.sheet .r:last-child{border-bottom:1px solid #000}
.sheet .k{font-family:var(--disp);font-weight:400;font-size:12px;letter-spacing:.28em;text-transform:uppercase;padding-top:6px}
.sheet .v{margin:0;max-width:62ch}
.sheet .v b{font-weight:400}
.sheet .v a{border-bottom:1px solid var(--line);padding-bottom:1px}
.sheet .v a:hover{border-color:#000}
@media (max-width:820px){.sheet .r{grid-template-columns:1fr;gap:10px;padding:22px 0}}
.sec{padding:96px 0 0}
.sec h2{font-family:var(--disp);font-weight:300;font-size:14px;letter-spacing:.3em;text-transform:uppercase;margin:0 0 8px}
@media (max-width:820px){.sec{padding:64px 0 0}}

/* people */
.people{border-top:1px solid #000;padding-top:40px}
.person{padding:0 0 40px}
.person .n{font-weight:400;font-size:30px;line-height:1.2;margin:0}
.person .t{color:var(--grey);margin:6px 0 10px;font-size:16px}
.person .c{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0}
.person .c a{font-weight:400;border-bottom:1px solid var(--line);padding-bottom:2px;white-space:nowrap}
.person .c a:hover{border-color:#000}
@media (max-width:820px){.person .n{font-size:26px}}

/* forms */
.form{border-top:1px solid #000;padding-top:8px;max-width:760px}
.form .f{display:grid;grid-template-columns:260px 1fr;gap:8px 40px;align-items:end;padding:22px 0 0}
.form label,.form .lbl{font-size:16px;padding-bottom:10px;display:block}
.form input,.form select,.form textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:none;font:inherit;font-size:17px;padding:6px 0 9px;border-radius:0;color:#000}
.form textarea{resize:vertical;min-height:2.4em}
.form input:focus,.form select:focus,.form textarea:focus{border-bottom-color:#000;outline:0}
.form select{appearance:none;-webkit-appearance:none}
.form select[multiple]{border-bottom:1px solid var(--line);padding:0}
.form select[multiple] option{padding:6px 0}
.form .yn{display:flex;gap:36px;padding:4px 0 8px}
.form .yn label{display:inline-block;padding:6px 0;border-bottom:1px solid transparent;cursor:pointer;font-family:var(--disp);font-weight:400;font-size:12px;letter-spacing:.28em;text-transform:uppercase}
.form .yn input{position:absolute;opacity:0;width:1px;height:1px}
.form .yn input:checked+label{border-bottom-color:#000}
.form .yn input:focus-visible+label{outline:1px solid #000;outline-offset:4px}
.form .btn{margin-top:48px}
.form .note{margin:12px 0 0;color:var(--grey);font-size:15px}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.done{border-top:1px solid #000;padding:40px 0 0;max-width:62ch}
.done h2{font-family:var(--disp);font-weight:300;font-size:14px;letter-spacing:.3em;text-transform:uppercase;margin:0 0 16px}
.done p{margin:0 0 12px}
.done a{border-bottom:1px solid var(--line);padding-bottom:1px}
@media (max-width:820px){.form .f{grid-template-columns:1fr;gap:4px}}

/* gallery */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding:0 0 40px}
.grid button{display:block;width:100%;padding:0;border:0;background:#f2f2f2;aspect-ratio:4/3;overflow:hidden;cursor:zoom-in}
.grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.grid button:hover img{transform:scale(1.03)}
.grid .empty{grid-column:1/-1;color:var(--grey);margin:0}
@media (max-width:820px){.grid{grid-template-columns:1fr 1fr;gap:16px}}
@media (max-width:480px){.grid{grid-template-columns:1fr}}
dialog.light{border:0;padding:0;background:#fff;max-width:min(96vw,1400px);max-height:96vh;width:auto}
dialog.light::backdrop{background:rgba(255,255,255,.96)}
dialog.light img{display:block;max-width:96vw;max-height:88vh;width:auto;height:auto;margin:0 auto}
dialog.light button{position:fixed;top:16px;right:20px;border:0;background:none;font-family:var(--disp);font-size:12px;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;padding:12px}

/* footer, on every page */
footer{margin-top:140px;border-top:1px solid var(--rule);padding:72px var(--m) 48px;text-align:center;font-size:15px;line-height:1.7}
footer .mark img{height:64px;width:auto;margin:0 auto 32px;display:block}
footer p{margin:0}
footer a{border-bottom:1px solid var(--line);padding-bottom:1px}
footer a:hover{border-color:#000}
footer .team{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:var(--w);margin:44px auto;text-align:left;font-size:14px;line-height:1.6;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:32px 0}
footer .team b{font-weight:400;display:block}
footer .team i{font-style:normal;color:var(--grey);display:block;margin-bottom:6px}
footer .team a{white-space:nowrap}
footer .social{color:var(--grey);font-family:var(--disp);font-weight:400;font-size:12px;letter-spacing:.28em;text-transform:uppercase;display:flex;justify-content:center;gap:32px;flex-wrap:wrap}
footer .legal{color:var(--grey);font-size:13px;margin-top:28px}
@media (max-width:820px){footer{margin-top:96px}footer .team{grid-template-columns:1fr 1fr;gap:28px 16px}}

/* sections rise into view on scroll, only when the script is running */
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
  .js .reveal.in{opacity:1;transform:none}
}
/* click-to-open sections */
.fold{border-top:1px solid #000;margin-top:56px}
.fold details{border-bottom:1px solid var(--rule)}
.fold details:last-child{border-bottom:0}.fold .form .btn{margin-top:72px}
.fold summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 0;font-family:var(--disp);font-weight:300;font-size:14px;letter-spacing:.3em;text-transform:uppercase}
.fold summary::-webkit-details-marker{display:none}
.fold summary::after{content:"Open";font-weight:400;font-size:12px;letter-spacing:.28em;color:var(--grey)}
.fold details[open] summary::after{content:"Close"}
.fold .body{padding:0 0 40px}
.fold .form{border-top:0;padding-top:0;margin-top:-8px}
.req{list-style:none;margin:0;padding:0;max-width:62ch}
.req li{padding:10px 0;border-top:1px solid var(--rule)}
.req li:first-child{border-top:0;padding-top:0}
.people.center{padding:44px 0}.people.center .person{padding:0}.people.center + .fold{margin-top:0}
.form select{background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2714%27 height=%278%27%3E%3Cpath d=%27M1 1l6 6 6-6%27 fill=%27none%27 stroke=%27%23000%27 stroke-width=%271%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;padding-right:24px;cursor:pointer}
.form .picks select+select{margin-top:14px}
.form input[type=date]{cursor:pointer;position:relative;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 fill=%27none%27 stroke=%27%23000%27 stroke-width=%271%27%3E%3Crect x=%271.5%27 y=%273.5%27 width=%2713%27 height=%2711%27/%3E%3Cpath d=%27M1.5 7.5h13M5 1.5v4M11 1.5v4%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;padding-right:28px;min-height:2.2em}
.form input[type=date]::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:0;top:0;width:32px;height:100%;cursor:pointer}
.form input[type=date]::-webkit-date-and-time-value{text-align:left}
.form input,.form select,.form textarea{display:block;width:100%;min-width:100%;max-width:100%;box-sizing:border-box;-webkit-appearance:none;appearance:none;margin:0;height:40px;min-height:0;padding:8px 0 9px;line-height:22px;font-size:17px}
.form textarea{height:auto;min-height:40px}
.form input[type=date]{height:40px;min-height:0;padding:8px 28px 9px 0}
.form input[type=date]::-webkit-datetime-edit{padding:0;line-height:22px;height:22px}
.form input[type=date]::-webkit-datetime-edit-fields-wrapper{padding:0}
.form label,.form .lbl{padding-bottom:11px;line-height:22px}
.form select{background-color:transparent}
.form .yn{display:flex;gap:36px;padding:4px 0 8px}
.form .yn label{display:inline-block;width:auto;padding:6px 0;border-bottom:1px solid transparent;cursor:pointer;font-family:var(--disp);font-weight:400;font-size:12px;letter-spacing:.28em;text-transform:uppercase;line-height:1.4}
.form .yn input{position:absolute;opacity:0;width:1px;height:1px;min-width:0;min-height:0;margin:0;padding:0;border:0;pointer-events:none}
.form .yn input:checked+label{border-bottom-color:#000}
.form .yn input:focus-visible+label{outline:1px solid #000;outline-offset:4px}
.form .f:has(.yn){align-items:start}
.form .f:has(.yn) .lbl{padding-bottom:0}
.form .yn{padding:0}
.form .yn label{padding:3px 0 2px}
.names{list-style:none;margin:0;padding:0;columns:3;column-gap:40px;font-size:16px;line-height:1.5}
.names li{break-inside:avoid;padding:4px 0}
.names li.wide{column-span:all;padding:0 0 14px;max-width:62ch}
@media (max-width:820px){.names{columns:2;column-gap:24px}}
@media (max-width:480px){.names{columns:1}}
