:root{--bg:#0b0f26;--fg:#f6ecdf;--line:#f6ecdf40;--hot:#ffd58a;--display:var(--font-instrument-serif), Georgia, serif;--body:var(--font-instrument-sans), "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, Menlo, monospace;--gutter:clamp(1rem, 4vw, 3.5rem);--small:.8125rem;--ease:cubic-bezier(.16, 1, .3, 1);color-scheme:dark;scrollbar-color:var(--fg) var(--bg)}@view-transition{navigation:auto}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}*{transition:none!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--body);caret-color:var(--hot);margin:0;font-size:1.0625rem;line-height:1.5}::selection{background:var(--hot);color:var(--bg)}:focus-visible{outline-offset:2px;outline:2px solid}a{color:inherit;text-underline-offset:.2em;transition:text-decoration-thickness .15s var(--ease);text-decoration-thickness:1px}a:hover{text-decoration-thickness:3px}h1,h2,h3,p,ul,ol,dl,dd{margin:0}h1,h2,h3{font-family:var(--display);text-wrap:balance;font-weight:400}.num{font-variant-numeric:tabular-nums}[hidden]{display:none!important}.wrap{padding-inline:var(--gutter)}.skip{left:var(--gutter);background:var(--fg);color:var(--bg);padding:.5rem .75rem;position:absolute;top:-4rem}.skip:focus{top:.5rem}.top{flex-wrap:wrap;justify-content:space-between;gap:0 2rem;padding-block:.3125rem;font-size:.9375rem;display:flex}.top a{padding-block:.6875rem;text-decoration:none;display:inline-block}.top a:hover,.top a[aria-current]{text-decoration:underline 3px}.name{font-weight:700}.top nav{flex-wrap:wrap;gap:0 clamp(.75rem,3vw,1.25rem);display:flex}.hero{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;min-height:min(100svh - 4rem,52rem);padding-block:clamp(2.5rem,8svh,6rem) 2rem;display:flex}.hero h1{letter-spacing:-.01em;max-width:12em;font-size:clamp(2.75rem,7.6vw,6.5rem);line-height:.98}.lead{text-wrap:pretty;max-width:34em;font-size:clamp(1.0625rem,1.5vw,1.25rem)}.logos{flex-wrap:wrap;justify-content:center;gap:1rem 1.5rem;padding:0;list-style:none;display:flex}.logos svg{fill:currentColor;opacity:.7;width:1.375rem;height:1.375rem;display:block}.scene{z-index:-1;background:linear-gradient(#060918,#0c1330 60%,#12244a);position:fixed;inset:0;overflow:clip}.dusk{opacity:0;background:linear-gradient(#262650,#5d477b 42%,#b9667e 74%,#e59a78);position:absolute;inset:0}.place{position:absolute;inset:0}.city{--w:max(100vw, calc(var(--k) * var(--ar)));left:calc((100vw - var(--w)) / 2);width:var(--w);aspect-ratio:var(--ar);position:absolute}.co .city{--ar:2.51;--k:80svh;left:min(0px, max(100vw - var(--w), 28vw - .391 * var(--w)));top:calc(70svh - .255 * var(--w) / var(--ar))}.ma{opacity:0}.ma .city{--ar:2.738;--k:60svh;bottom:0}.lines{opacity:.45;mask:var(--m) center / 100% 100% no-repeat;background:#8e9bd0;position:absolute;inset:0}.co .lines{--m:url(/_astro/coruna.BlOzKY_M.webp)}.ma .lines{--m:url(/_astro/madrid.CXa_ozuG.webp)}.leaves{opacity:.1;mask:var(--m) center / 100% 100% no-repeat, radial-gradient(circle, #000 35%, transparent 70%) 0 0 / 3.5rem 2.5rem, linear-gradient(transparent 86%, #000 92%);transform-origin:50% 100%;background:#c9d3ff;mask-composite:intersect}.leaves+.leaves{mask-position:50%,1.75rem 1.25rem,0 0}.red{left:var(--x);top:var(--y);background:radial-gradient(closest-side,#ff6e5fb3,#ff5a5040 35%,#0000);width:1.5rem;height:1.5rem;position:absolute;translate:-50% -50%}.beam,.lamp{position:absolute;top:25.5%;left:39.1%;translate:-50% -50%}.beam{opacity:0;background:conic-gradient(from -6deg,#0000,#ffe4b06b 6deg,#0000 12deg);width:170vmax;height:170vmax;rotate:105deg;mask-image:radial-gradient(closest-side,#000,#0000)}.lamp{background:#ffe9b8;border-radius:50%;width:.3rem;height:.3rem;box-shadow:0 0 .75rem .2rem #ffe4b0cc}.gull{aspect-ratio:22/9;opacity:.7;background:#1e183c;width:2rem;position:absolute;top:30svh;left:-3rem;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 9' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7Q6 0 11 6Q16 0 21 7' stroke-width='1.6'/%3E%3C/svg%3E") 50%/contain no-repeat}.gull+.gull{width:1.3rem;top:22svh}.gull+.gull+.gull{width:1.6rem;top:38svh}.stars{opacity:.4;background:radial-gradient(circle,#dfe5ff 0 .6px,#0000 1.3px) 0 0/173px 131px,radial-gradient(circle,#dfe5ff 0 .5px,#0000 1.1px) 60px 40px/241px 197px,radial-gradient(circle,#ffe9c4 0 .8px,#0000 1.5px) 110px 90px/311px 263px;position:absolute;inset:0 0 40svh;mask:linear-gradient(#000 45%,#0000)}.stars+.stars{background-position:90px 70px,20px 120px,200px 30px}@keyframes dusk{0%{opacity:1}}@keyframes ink{0%{opacity:.85;background-color:#1e183c}}@keyframes rise{to{translate:0 -38svh}}@keyframes sweep{0%,80%{opacity:1}to{opacity:0;rotate:-15deg}}@keyframes warm{45%{color:var(--hot);text-shadow:0 0 1.5em #ffd58a73}}@keyframes leave{to{opacity:0}}@keyframes appear{to{opacity:1}}@keyframes flash{0%,2%,10%,12%,20%,22%,30%,32%{opacity:1}5%,15%,25%,35%,to{opacity:.15}}@keyframes sway{0%{transform:skew(-.5deg)}to{transform:skew(.5deg)}}@keyframes rustle{0%{opacity:.04}to{opacity:.2}}@keyframes glow{0%{opacity:.15}}@keyframes flap{to{scale:1 .35}}@keyframes drift{25%{translate:28vw -3svh}50%{translate:55vw 2svh}75%{translate:82vw -4svh}to{translate:112vw}}@keyframes twinkle{0%{opacity:.15}to{opacity:.6}}@media (prefers-reduced-motion:no-preference){.lamp{animation:20s linear infinite flash}.leaves{animation:5s ease-in-out infinite alternate sway,3.2s ease-in-out infinite alternate rustle}.leaves+.leaves{animation-duration:6.5s,4.3s;animation-delay:-2s,-1.6s}.red{animation:4s ease-in-out infinite alternate glow}.red:nth-of-type(odd){animation-delay:-2s}.gull{animation:48s linear infinite drift,.9s steps(2,jump-none) infinite alternate flap}.gull+.gull{animation-duration:66s,.7s;animation-delay:-30s,0s}.gull+.gull+.gull{animation-duration:57s,.8s;animation-delay:-12s,0s}.stars{animation:5s ease-in-out infinite alternate twinkle}.stars+.stars{animation-duration:7s;animation-delay:-3s}@supports (animation-timeline:scroll()){.dusk{animation:linear both dusk;animation-range:0 80svh}.co .lines{animation:linear both ink;animation-range:0 80svh}.beam{animation:linear both sweep;animation-range:0 110svh}.hero h1{animation:linear both warm;animation-range:0 75svh}.co .city{animation:linear both rise;animation-range:0 160svh}.co{animation:linear both leave;animation-range:calc(100% - 100svh) calc(100% - 70svh)}.ma{animation:linear both appear;animation-range:calc(100% - 55svh) calc(100% - 20svh)}.dusk,.co .lines,.beam,.hero h1,.co .city,.co,.ma{animation-timeline:scroll()}}}.index{padding-block-start:clamp(2rem,5vw,4rem)}.index>h2,.page h2{font-size:clamp(2rem,4vw,3.25rem);font-style:italic;line-height:1}.index>h2{margin-block-end:1rem}.index h2 a{text-decoration:none}.field{padding-block:clamp(3rem,9vw,7rem) clamp(1.25rem,3vw,2.5rem)}.field h1{letter-spacing:-.01em;font-size:clamp(2.75rem,7.6vw,6.5rem);line-height:.98}.field p{max-width:60ch;margin-block-start:1rem}.page{padding-block:0 clamp(3rem,8vw,6rem)}.page h2{margin-block:clamp(3rem,7vw,5rem) 1.25rem}.rows{padding:0;list-style:none}.rows>li{gap:.25rem var(--gutter);border-block-start:1px solid var(--line);grid-template-columns:minmax(0,5fr) minmax(0,6fr) 4rem;align-items:baseline;padding-block:.75rem;display:grid}.rows :is(h2,h3){text-wrap:wrap;margin:0;font-size:clamp(1.375rem,2.4vw,2rem);font-style:normal;line-height:1.1}.rows p{max-width:62ch}.rows .meta{font:var(--small) / 1.4 var(--mono);text-align:end;grid-column:3}.page .rows>li{grid-template-columns:minmax(0,4fr) minmax(0,6fr) minmax(0,2fr)}.rows .links{flex-wrap:wrap;justify-content:flex-end;gap:0 1.5ch;display:flex}.filter{font:var(--small) / 1.4 var(--mono);border:0;flex-wrap:wrap;gap:.25rem 2ch;margin:0 0 1rem;padding:0;display:flex}.filter legend{clip-path:inset(50%);position:absolute}.filter label{cursor:pointer}.filter:has([value=case-study]:checked)~.rows>[data-c]:not([data-c=case-study]),.filter:has([value=guide]:checked)~.rows>[data-c]:not([data-c=guide]),.filter:has([value=essay]:checked)~.rows>[data-c]:not([data-c=essay]){display:none}.prose{max-width:68ch;padding-block-start:clamp(2rem,5vw,4rem)}article.prose{font-size:clamp(1.0625rem,1.25vw,1.25rem)}.prose>*+*{margin-block-start:1em}.prose h2{margin-block:2em .5em;font-size:2rem}.prose img{max-width:100%;height:auto}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.5rem 1.5rem .5rem 0}.prose object{border:1px solid var(--line);width:100%;height:80vh;display:block}.prose pre{font-family:var(--mono);background:#f6ecdf14;padding:1rem;overflow-x:auto}.print{box-sizing:border-box;border:1px solid var(--line);max-width:100%;height:auto;padding:.375rem;display:block}.photo{width:min(100%,24rem);margin:clamp(2rem,5vw,4rem) 0 0}.photo figcaption{font:var(--small) / 1.4 var(--mono);margin-block-start:.5rem}.still .co,.still .co .city,.still .co .lines{animation:none}.still .co{opacity:.55}.still .co .city{top:calc(92svh - .255 * var(--w) / var(--ar))}.me{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;display:flex}.me .print{aspect-ratio:4/5;object-fit:cover;object-position:50% 80%;width:9rem}.me p{text-wrap:balance;margin:0}.bio{gap:1em;max-width:34em;margin-inline:auto;padding-block-end:30svh;font-size:clamp(1.0625rem,1.5vw,1.25rem);display:grid}.bio h2{margin-block:1em 0}.close{border-block-start:1px solid var(--line);margin-block-start:clamp(3rem,8vw,6rem);padding-block:clamp(2rem,6vw,5rem) 1.3125rem}.close p{max-width:40ch}.close .mail{font-family:var(--display);overflow-wrap:anywhere;margin-block:.5rem clamp(2rem,6vw,4rem);font-size:clamp(1.5rem,6vw,5.5rem);line-height:1;text-decoration:none;display:block}.close .mail:hover{text-decoration:underline .06em}.close ul{flex-wrap:wrap;gap:0 1.5rem;padding:0;font-size:.9375rem;list-style:none;display:flex}.close li a{align-items:center;gap:.5rem;padding-block:.6875rem;display:inline-flex}.close svg{fill:currentColor;width:1em;height:1em}@media (width<=44rem){.rows>li,.page .rows>li{grid-template-columns:minmax(0,1fr)}.rows .meta{text-align:start;grid-column:auto}.rows .links{justify-content:flex-start}}
