/*
Theme Name: UPOO
Description: Le site personnel de Frédéric Rose. Un thème éditorial conçu pour les blocs WordPress.
Version: 0.2.1
Author: UPOO
Text Domain: upoo
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
*/
:root{--blue:#233fd0;--ink:#191a1d;--paper:#fff;--muted:#65666b;--line:#d8d9dc;--soft:#f0f1f4;--accent:#e2f38c;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--serif:Georgia,"Times New Roman",serif;--gutter:clamp(1.25rem,5vw,6rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}body.admin-bar .site-header{top:32px}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{color:var(--blue)}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400;line-height:1.08}p+p{margin-top:1.2rem}img{max-width:100%;height:auto}.skip-link{position:fixed;top:-100px;left:1rem;z-index:1000;background:white;padding:.7rem 1.2rem}.skip-link:focus{top:1rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.15rem var(--gutter);background:white;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);min-height:92px}.wordmark{font-weight:750;font-size:2.75rem;line-height:1;letter-spacing:-.075em;text-decoration:none}.brand-sub{font-size:.8rem;font-weight:400;letter-spacing:0;margin-left:1.25rem;vertical-align:middle}.site-nav{display:flex;align-items:center;gap:clamp(1.2rem,3vw,3rem);font-size:.9rem}.site-nav a{text-decoration:none}.site-nav a:last-child{border-bottom:1px solid;padding-bottom:.15rem}.menu-toggle{display:none;border:1px solid var(--ink);background:white;padding:.5rem .85rem;font:inherit;font-size:.9rem}.wp-site-blocks{padding:0}.wp-block-group{margin-top:0;margin-bottom:0}.wp-block-columns{display:flex;gap:3rem;margin:0}.wp-block-column{flex:1;min-width:0}.wp-block-buttons{display:flex;flex-wrap:wrap;gap:1rem}.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:white;padding:.95rem 1.5rem;border-radius:0;font-size:1rem;line-height:1.4;text-decoration:none;border:1px solid var(--ink)}.wp-block-button__link:hover{background:var(--blue);border-color:var(--blue);color:white}.eyebrow{font-size:.8rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;line-height:1.5}.hero{background:var(--blue);color:white;padding:3.2rem var(--gutter) 2.5rem;min-height:min(820px,calc(100svh - 92px));display:flex;flex-direction:column;justify-content:space-between;gap:2rem}.hero h1{font-family:var(--serif);font-size:clamp(3.5rem,8.1vw,8.2rem);line-height:1;letter-spacing:-.055em;max-width:1100px;padding:.15em 0}.hero h1 em{font-weight:400;color:var(--accent)}.hero-bottom{align-items:flex-end;justify-content:space-between;gap:4rem}.hero-intro{flex:0 1 650px}.hero-intro p{font-size:clamp(1.15rem,1.65vw,1.55rem);line-height:1.5;max-width:37rem}.hero a:hover{color:var(--accent)}.hero-link{flex:0 0 auto;text-align:right;font-size:.95rem}.hero a:focus-visible,.contact-band a:focus-visible{outline-color:var(--accent)}.origin-strip{padding:1.7rem var(--gutter);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:3rem;font-size:.9rem}.origin-strip p:first-child{font-weight:700;letter-spacing:.02em;white-space:nowrap}.origin-strip p+p{margin:0;max-width:780px}.section{padding:6.5rem var(--gutter)}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:3rem;align-items:start;margin-bottom:3.5rem}.section-heading h2{font-size:clamp(2.1rem,4.2vw,4rem);font-family:var(--serif);letter-spacing:-.035em}.section-heading p{padding-top:.4rem}.questions{gap:0}.question{padding:0 2.5rem;border-left:1px solid var(--line)}.question:first-child{padding-left:0;border-left:0}.question:last-child{padding-right:0}.question .number{font-size:.9rem;color:var(--blue);margin-bottom:2rem}.question h3{font-size:clamp(1.4rem,1.8vw,1.9rem);line-height:1.3;letter-spacing:-.035em;min-height:5.1em;margin-bottom:1.5rem}.question p{font-size:1rem;color:#515257}.stories{background:var(--soft)}.story-row{border-top:1px solid #bfc2ca;padding:2rem 0;display:grid;grid-template-columns:1fr 2fr;gap:3rem}.story-row:last-child{border-bottom:1px solid #bfc2ca}.story-row .story-label{font-size:.85rem;line-height:1.5}.story-row h3{font-size:clamp(1.6rem,2.8vw,2.75rem);letter-spacing:-.035em;line-height:1.18;max-width:850px}.story-row h3 a{text-decoration:none;display:block}.story-row h3 a::after{content:" ↗";font-family:var(--sans);font-size:.7em;color:var(--blue);white-space:nowrap}.story-row p{max-width:620px;margin-top:1rem;font-size:1rem;color:#55565c}.story-row .story-label p{margin-top:0;color:var(--ink)}.story-row .story-label p+p{margin-top:.3rem;color:var(--muted)}.journey{display:grid;grid-template-columns:1fr 2fr;gap:3rem}.journey h2{font-family:var(--serif);font-size:clamp(2.4rem,4.7vw,4.7rem);letter-spacing:-.045em;margin-bottom:2rem}.journey .biography{font-size:1.2rem;max-width:780px}.journey .eyebrow{margin-bottom:1.4rem}.name-note{border-left:3px solid var(--blue);padding-left:1.5rem;margin:2.5rem 0;font-size:1rem}.name-note h3{font-family:var(--serif);font-size:1.7rem;margin-bottom:1rem}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;border-top:1px solid var(--line);padding-top:1.5rem;margin-top:2.8rem}.timeline p{font-size:.85rem;line-height:1.5;margin-top:0}.timeline strong{font-weight:400;color:var(--blue);font-size:1.5rem;display:block;margin-bottom:.4rem}.press{padding-top:0}.press-items{border-top:1px solid var(--line)}.press-item{display:flex;align-items:baseline;justify-content:space-between;gap:2rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}.press-item p{margin:0;font-size:1rem}.press-item p:first-child{font-weight:500}.press-item p:last-child{font-size:.85rem;color:var(--muted)}.contact-band{background:var(--blue);color:white;padding:5.5rem var(--gutter);display:grid;grid-template-columns:1fr 2fr;gap:3rem}.contact-band h2{font-family:var(--serif);font-size:clamp(3rem,6.2vw,6rem);letter-spacing:-.055em;max-width:900px;margin:0 0 2rem}.contact-band .contact-copy>p{max-width:610px}.contact-band .wp-block-buttons{margin-top:2rem}.contact-band .wp-block-button__link{background:var(--accent);border-color:var(--accent);color:var(--ink)}.contact-band .wp-block-button__link:hover{background:white;border-color:white}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;padding:2rem var(--gutter);font-size:.85rem}.site-footer a{text-decoration:none}.footer-brand{font-weight:700}.single-page .entry-header{padding:4rem var(--gutter);background:var(--blue);color:white}.single-page .entry-header h1{font-family:var(--serif);font-size:clamp(2.8rem,6vw,6rem);letter-spacing:-.045em;max-width:1100px;line-height:1.08}.single-page .entry-header .eyebrow{margin-bottom:1.5rem}.single-page .entry-header a:hover{color:var(--accent)}.single-page .entry-content{max-width:900px;padding:4rem var(--gutter);box-sizing:content-box;margin:auto}.single-page .entry-content h2{font-family:var(--serif);font-size:2.4rem;letter-spacing:-.03em;margin:3rem 0 1.25rem}.single-page .entry-content .lead{font-size:1.45rem;line-height:1.55}.single-page .entry-content .source-note{font-size:.9rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1.5rem;margin-top:3rem}.single-page .entry-content .wp-block-buttons{margin-top:3rem}.error-page{padding:6rem var(--gutter)}.error-page h1{margin-bottom:2rem;font-size:3rem}.site-footer a:focus-visible{outline-offset:4px}
/* Classic WordPress adds a neutral inner wrapper to Group blocks. Let the
   authored grid/flex layouts apply to the actual blocks inside that wrapper. */
.wp-block-group__inner-container{display:contents}
@media(min-width:1600px){.hero,.section,.contact-band,.origin-strip{padding-left:max(var(--gutter),calc((100vw - 1440px)/2));padding-right:max(var(--gutter),calc((100vw - 1440px)/2))}}
@media(max-width:900px){.brand-sub{display:none}.site-nav{gap:1.2rem}.hero{min-height:680px}.section{padding-top:4.5rem;padding-bottom:4.5rem}.section-heading,.journey,.contact-band{grid-template-columns:1fr 2fr;gap:2rem}.question{padding:0 1.2rem}.question h3{min-height:6.4em}.timeline{grid-template-columns:repeat(2,1fr)}.press{padding-top:0}}
@media(max-width:680px){body{font-size:17px}.site-header{min-height:78px;padding-top:1rem;padding-bottom:1rem}.wordmark{font-size:2.4rem}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:white;border-bottom:1px solid var(--line);padding:1.5rem var(--gutter);flex-direction:column;align-items:flex-start;gap:1.3rem}.site-nav.is-open{display:flex}.hero{min-height:calc(88svh - 78px);padding-top:2.5rem;padding-bottom:2.3rem;gap:2rem}.hero h1{font-size:clamp(3.5rem,12.1vw,5.2rem);letter-spacing:-.05em;line-height:1.04}.hero-bottom{flex-direction:column;align-items:flex-start;gap:1.5rem}.hero-intro{flex:auto}.hero-intro p{font-size:1.15rem}.hero-link{text-align:left}.origin-strip{display:block;padding-top:1.5rem;padding-bottom:1.5rem}.origin-strip p+p{margin-top:.65rem}.section{padding-top:3.5rem;padding-bottom:3.5rem}.section-heading,.journey,.contact-band{display:block}.section-heading{margin-bottom:2.5rem}.section-heading h2{margin-top:1.5rem}.questions{flex-direction:column;gap:2rem}.question{padding:0 0 2rem;border-left:0;border-bottom:1px solid var(--line)}.question:last-child{padding-bottom:0;border-bottom:0}.question .number{margin-bottom:1rem}.question h3{min-height:0;font-size:1.65rem;margin-bottom:1rem}.story-row{grid-template-columns:1fr;gap:1rem;padding:1.6rem 0}.story-label{display:block}.story-row .story-label p+p{margin-top:.3rem}.journey>.eyebrow{margin-bottom:2rem}.journey .biography{font-size:1.1rem}.name-note{padding-left:1rem}.timeline{gap:1.5rem}.press{padding-top:0}.press-item{display:block}.press-item p:last-child{margin-top:.5rem}.contact-band{padding-top:3.5rem;padding-bottom:3.5rem}.contact-band>.eyebrow{margin-bottom:2rem}.contact-band h2{font-size:3.3rem}.site-footer{align-items:flex-start;flex-wrap:wrap;gap:.75rem 2rem}.site-footer p:last-child{flex-basis:100%;margin:0}.single-page .entry-header{padding-top:3rem;padding-bottom:3rem}.single-page .entry-content{padding-top:2.5rem;padding-bottom:3rem}.single-page .entry-content h2{font-size:2rem}.single-page .entry-content .lead{font-size:1.2rem}body.admin-bar .site-header{top:46px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Editorial revision: four stories with explicit sectors and six milestones. */
.stories-intro{max-width:760px;margin:0 0 2.5rem;line-height:1.65}.story-row .story-label p:first-child{font-weight:600}.story-row .story-label .story-sector{font-size:.9rem;color:var(--blue)}.story-row .story-label .story-context{font-size:.8rem;margin-top:.7rem}.entry-content>.story-sector{color:var(--blue);font-size:.95rem;margin-top:.6rem;margin-bottom:1.5rem}.story-invitation{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:2rem}.story-invitation .wp-block-buttons{margin-top:1.5rem}
