/* Ameline Marie portfolio — styling.
   Colors and fonts: edit the variables at the top of :root (--bg, --fg, --ac, ...). */
:root{--bg:#121010;--fg:#ECE7DA;--mut:#8B857A;--ln:#2b2725;--ac:#E4372A;--d:"Archivo","Helvetica Neue",Arial,sans-serif;--m:"DM Mono",ui-monospace,Menlo,monospace;color-scheme:dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:border-box}*{margin:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(4.5rem + env(safe-area-inset-top,0px))}
body::before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:49}
main{padding-top:5.2rem}
body{background:var(--bg);color:var(--fg);font:400 1.05rem/1.5 var(--d);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--ac);outline-offset:4px}
.mo{font:400 .78rem/1.3 var(--m);letter-spacing:.06em;text-transform:uppercase}
.pad{padding-inline:clamp(1.25rem,3.3vw,3rem)}
.big{font-weight:800;font-stretch:114%;text-transform:uppercase;letter-spacing:-.025em;line-height:1}
.top{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:1.5rem;padding-top:calc(1.2rem + env(safe-area-inset-top,0px));padding-bottom:1.2rem;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}.top.sc{background:rgba(18,16,16,.8);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:var(--ln)}
@media(prefers-reduced-motion:no-preference){.js .lg{opacity:0}}
.lg{flex:none;font:800 1.35rem/1 var(--d);font-stretch:100%;text-transform:uppercase;letter-spacing:-.01em}.lg b{background:var(--ac);color:#fff;padding:0 .12em;margin:0 .06em 0 .1em;font-weight:800}.lg i{font-weight:300;text-transform:none;font-size:1.3rem}
.top nav{display:flex;justify-content:flex-end;align-items:center;gap:1.6rem;white-space:nowrap;flex:none}.top nav a,.top .pill{white-space:nowrap}.clk{margin:0 auto;white-space:nowrap}@media(max-width:1180px){.clk{display:none}.top nav{margin-left:auto}}
.pill{display:inline-block;background:var(--ac);color:#fff;border-radius:99px;padding:.85rem 1.5rem;transition:transform .25s}.pill:hover{transform:translateY(-3px)}
.pill.o{background:none;color:var(--fg);border:1px solid var(--fg);transition:background .25s,color .25s}.pill.o:hover{background:var(--fg);color:var(--bg)}
.lang{border:1px solid var(--ln);border-radius:99px;padding:.3rem .8rem}
.hero{--hw:min(24vw,520px);min-height:calc(100svh - 5rem);display:grid;grid-template-rows:auto 1fr;padding-bottom:1.8rem}.hm{align-self:center}
.meta{display:flex;justify-content:space-between;color:var(--mut);padding-top:2.2rem}
.nmw{align-self:center;position:relative}.nm{position:relative;z-index:45;transform-origin:0 0;will-change:transform;font:900 13vw/.84 var(--d);font-stretch:118%;letter-spacing:-.035em;text-transform:uppercase;padding-block:2rem}
.ln{display:block;overflow:hidden;padding-bottom:.06em;position:relative;z-index:1}.l2{text-align:right}
.ch{display:inline-block;transform:translateY(112%);animation:up 1.05s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*60ms + .2s)}
@keyframes up{to{transform:none}}
.hl{display:grid;grid-template-columns:var(--hw) 1fr;gap:clamp(1.5rem,4vw,5rem);align-items:start;padding-bottom:1rem}
.hp{position:relative;margin-top:var(--up,0px);width:var(--hw);aspect-ratio:3/4;overflow:hidden;background:#1a1716;clip-path:inset(0 0 100% 0);animation:wipe 1.4s .7s cubic-bezier(.2,.8,.2,1) forwards}
.hr{display:flex;flex-direction:column;justify-content:space-between;gap:2.2rem;align-self:stretch;padding-top:.4rem}
.hi{font-size:clamp(1.35rem,2.4vw,2.4rem);line-height:1.16;max-width:19em;letter-spacing:-.01em}
.hc{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.spin{position:relative;width:clamp(84px,8vw,124px);aspect-ratio:1;flex:none;display:grid;place-items:center}.spin svg{position:absolute;inset:0;width:100%;height:100%;animation:rot 22s linear infinite;fill:var(--fg);font:500 8.2px var(--m);letter-spacing:.04em;text-transform:uppercase}.spin b{font-weight:400;font-size:1.5rem;color:var(--ac);transition:transform .3s}.spin:hover b{transform:translateY(4px)}
@keyframes rot{to{transform:rotate(360deg)}}body.paused .spin svg{animation-play-state:paused}
@keyframes rise{from{opacity:0;transform:translateY(26px)}}.hi{animation:rise 1s 1s cubic-bezier(.2,.8,.2,1) both}.hc{animation:rise 1s 1.2s cubic-bezier(.2,.8,.2,1) both}.hp img{display:block;width:100%;height:100%;object-fit:cover}@keyframes wipe{to{clip-path:inset(0)}}
@keyframes fade{from{opacity:0;transform:translateY(30px)}}
.hb{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:1.5rem}@media(min-width:800px){.hb{padding-left:calc(var(--hw) + 2.5rem)}}.hb p:first-child{max-width:34ch;font-size:clamp(1.1rem,1.7vw,1.6rem);line-height:1.25}.hb .pill{justify-self:end}.hb .mo{color:var(--mut)}
.mqw{overflow:hidden;border-block:1px solid var(--ln);padding:1.2rem 0}
.mq{display:flex;width:max-content;animation:run 42s linear infinite}.mq span{font:800 clamp(2rem,6vw,5rem)/1 var(--d);font-stretch:118%;text-transform:uppercase;padding-right:3rem;white-space:nowrap}.mq span:nth-child(even){color:transparent;-webkit-text-stroke:1px var(--fg)}
@keyframes run{to{transform:translateX(-50%)}}body.paused .mq{animation-play-state:paused}
.sh{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-block:5.5rem 1.6rem}.sh h2{font-size:clamp(2rem,5vw,4.2rem)}.sh .mo{color:var(--mut)}
.row{display:grid;grid-template-columns:4rem 1fr auto;align-items:baseline;gap:1rem;padding:1.5rem 0;border-top:1px solid var(--ln);transition:padding .4s cubic-bezier(.2,.8,.2,1)}
.row:last-child{border-bottom:1px solid var(--ln)}.row h3{font-size:clamp(1.7rem,5vw,4.4rem);transition:color .25s}.row:hover{padding-left:1.2rem}.row:hover h3{color:var(--ac)}.row .mo:last-child{color:var(--mut);text-align:right}
#pv{position:fixed;left:0;top:0;width:min(22vw,300px);aspect-ratio:4/5;object-fit:cover;pointer-events:none;z-index:20;opacity:0;transition:opacity .25s;will-change:transform}#pv.on{opacity:1}
.st{display:flex;align-items:flex-start;gap:1.4rem;overflow-x:auto;scrollbar-width:none;padding:1rem clamp(1.25rem,3.3vw,3rem) 2rem;cursor:grab}.st::-webkit-scrollbar{display:none}
.ph{flex:0 0 clamp(170px,19vw,280px);text-align:left}.fr{border:7px solid #1f1b1a;border-radius:2rem;overflow:hidden;background:#000;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.ph:hover .fr{transform:translateY(-8px)}
.scr{aspect-ratio:9/16;background:#1a1716 center/cover no-repeat}
.ph .mo{display:block;margin-top:.8rem;color:var(--mut)}
.case{display:grid;gap:2.5rem;padding-block:1rem 2rem}@media(min-width:900px){.case{grid-template-columns:.8fr 1.2fr}}
@media(min-width:900px){.case>div:first-child{position:sticky;top:2rem;align-self:start}}
.case p{max-width:44ch;font-size:1.25rem;line-height:1.35}.kv{display:grid;grid-template-columns:7rem 1fr;gap:.7rem 1rem;margin-top:2rem;max-width:44ch}.kv dt{color:var(--mut)}.kv dd{margin:0}
.cars{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.cars img{width:100%;aspect-ratio:4/3;object-fit:cover}.cars .wd{grid-column:1/-1;aspect-ratio:auto;border:1px solid var(--ln)}
.ps{--h:clamp(230px,48svh,540px);height:calc(var(--h) + 3rem);padding-block:1rem 2rem}
.pt{position:relative;flex:0 0 auto;padding:0;height:var(--h);width:calc(var(--h)*.75);overflow:hidden;background:#1a1716}
.pt:nth-child(3n+2){height:calc(var(--h)*.8);width:calc(var(--h)*.6);align-self:flex-end}.pt:nth-child(3n){height:calc(var(--h)*.66);width:calc(var(--h)*.495);align-self:center}
.pt img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.pt:hover img{transform:scale(1.06)}
.pt::after{content:attr(data-c);position:absolute;left:.6rem;bottom:.5rem;font:400 .72rem var(--m);letter-spacing:.06em;color:#fff;text-shadow:0 0 6px rgba(0,0,0,.7)}
.hello{font-size:clamp(1.7rem,4.4vw,3.9rem);line-height:1.12;font-weight:600;font-stretch:104%;letter-spacing:-.02em;max-width:24em;padding-block:6rem 2rem}.w{opacity:.16;transition:opacity .5s}.w.on{opacity:1}
.rows2 a{display:grid;grid-template-columns:4rem 3rem 1fr;gap:1rem;align-items:baseline;padding:1.6rem 0;border-top:1px solid var(--ln);transition:background .3s,color .3s,padding .3s}.rows2 a:hover{background:var(--fg);color:var(--bg);padding-inline:1rem}
.rows2 h3{font-size:clamp(1.5rem,3.4vw,2.8rem)}.rows2 p{grid-column:3;color:var(--mut);max-width:52ch}.rows2 a:hover p{color:#444}
@media(min-width:900px){.rows2 a{grid-template-columns:4rem 3rem 1fr 1.2fr}.rows2 p{grid-column:4}}
.ct{padding-block:7rem 2rem}.ct h2{font-size:clamp(2.4rem,9vw,8rem);margin-bottom:2rem}.em{display:inline-block;font:800 clamp(1.3rem,5vw,4.6rem)/1.1 var(--d);font-stretch:112%;letter-spacing:-.03em;word-break:break-all;border-bottom:3px solid var(--ac);transition:color .25s}.em:hover{color:var(--ac)}
.lk{display:flex;gap:1rem;flex-wrap:wrap;margin:2rem 0 5rem}
.ft{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.5rem 2rem;border-top:1px solid var(--ln);color:var(--mut)}
dialog{border:0;padding:0;background:#000;max-height:92vh;border-radius:1.4rem;overflow:hidden}dialog::backdrop{background:rgba(0,0,0,.85)}dialog video{display:block;max-height:88vh;max-width:92vw;aspect-ratio:9/16}
.x{position:absolute;top:.6rem;right:.6rem;z-index:2;background:var(--fg);color:var(--bg);border-radius:50%;width:2.4rem;height:2.4rem;font-size:1.3rem}
.cur,.dot{position:fixed;left:0;top:0;pointer-events:none;z-index:60;display:none}
@media(pointer:fine){.cur,.dot{display:grid}.cur{width:46px;height:46px;margin:-23px;border:1px solid var(--fg);border-radius:50%;place-items:center;font:500 .7rem var(--m);color:#fff;transition:width .25s,height .25s,margin .25s,background .25s}.cur.big{width:92px;height:92px;margin:-46px;background:var(--ac);border-color:var(--ac)}.dot{width:6px;height:6px;margin:-3px;background:var(--ac);border-radius:50%}}
@media(max-width:799px){.top{grid-template-columns:1fr auto}.clk,.top nav a:not(.pill){display:none}.meta span:first-child{display:none}.nm{font-size:14vw}.hp{width:64vw;margin:1.4rem 0 1.8rem}.hl{display:block}.hi{font-size:1.25rem}.hr{gap:1.4rem}.hc{margin-top:1.2rem}.hb{grid-template-columns:1fr}.hb .pill{justify-self:start}.row{grid-template-columns:2.6rem 1fr}.row .mo:last-child{display:none}.rows2 a{grid-template-columns:2.6rem 1fr}.rows2 p{grid-column:2}.rows2 a .mo:nth-child(2){display:none}.top .pill{white-space:nowrap;padding:.7rem 1.1rem}.top nav{gap:.7rem}}
@media(prefers-reduced-motion:no-preference){.js .rv{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.2,.8,.2,1),filter 1.6s}.js .port .rv{filter:grayscale(1) brightness(.7)}.js .rv.on{clip-path:inset(0);filter:none}}
@media(prefers-reduced-motion:reduce){.hi,.hc,.spin svg{animation:none}.ch,.hp{animation:none;transform:none}.mq{animation:none}html{scroll-behavior:auto}.w{opacity:1}}
.scr{position:relative}.scr video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s}.scr video.on{opacity:1}
#pbx{background:#000;padding:0;border:0;border-radius:1rem;overflow:hidden}#pbx::backdrop{background:rgba(0,0,0,.88)}#pimg{display:block;max-height:92vh;max-width:90vw;object-fit:contain}
.nv{position:absolute;top:50%;z-index:2;width:3rem;height:3rem;border-radius:50%;background:var(--fg);color:var(--bg);font-size:1.3rem;transform:translateY(-50%)}.bk{left:.6rem}.fw{right:.6rem}
.cvg{display:grid;gap:3rem}@media(min-width:900px){.cvg{grid-template-columns:1fr 1fr;gap:4rem}}
.cvr{display:grid;grid-template-columns:6.5rem 1fr;gap:1rem;padding:1.2rem 0;border-top:1px solid var(--ln)}.cvr h3{font-size:clamp(1.2rem,2.1vw,1.8rem);margin-bottom:.3rem}.cvr p{color:var(--mut);max-width:48ch}.cvr .mo{color:var(--mut)}
.ic{width:4.2rem;height:4.2rem;border:1px solid var(--fg);border-radius:50%;display:grid;place-items:center;transition:background .25s,border-color .25s,transform .25s}.ic:hover{background:var(--ac);border-color:var(--ac);color:#fff;transform:translateY(-4px)}.ic svg{width:1.7rem;height:1.7rem}
