:root{color-scheme:dark;--bg:#091127;--bg2:#0d1b38;--card:#121f3d;--muted:#a3b1cc;--ink:#f5f6ff;--pink:#e79bbf;--gold:#efc987;--stroke:#ffffff20;--soft:#ffffff0b;--radius:22px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse 1100px 600px at 90% 2%,#203560 0%,transparent 70%),radial-gradient(ellipse 650px 430px at 4% 25%,#301c46 0%,transparent 73%),var(--bg);color:var(--ink);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.shell{width:min(1210px,calc(100% - 44px));margin-inline:auto}.header{border-bottom:1px solid var(--stroke);background:#071124b0;backdrop-filter:blur(15px)}.nav{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0}.brand{display:flex;align-items:center;gap:13px;text-decoration:none}.brand strong{display:block;letter-spacing:-.015em;font-size:17px}.brand small{font-size:11px;color:#b9c8e0;letter-spacing:.07em;text-transform:uppercase}.mark{display:grid;place-items:center;width:43px;height:43px;background:linear-gradient(135deg,#d34d96,#8b6add);font:45px Georgia;border-radius:12px;padding-bottom:12px}.about-link{color:#c2cde1;font-size:13px;text-decoration:none}.about-link:hover{color:white}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);min-height:525px;align-items:center;gap:65px;padding-top:70px;padding-bottom:76px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:.23em;color:var(--gold);margin:0 0 17px;text-transform:uppercase}h1,h2,p{margin-top:0}h1,h2{letter-spacing:-.052em}h1{font-weight:750;line-height:1.13;font-size:clamp(40px,4.5vw,68px);margin-bottom:22px}h1 em{font-family:Georgia,'Times New Roman',serif;color:var(--pink);font-weight:normal;letter-spacing:-.03em}h2{font-size:clamp(25px,3vw,39px);margin-bottom:12px;line-height:1.15}.lead{font-size:15px;color:#c5cde0;line-height:1.9;max-width:610px}.metrics{display:flex;gap:36px;margin-top:34px;flex-wrap:wrap}.metrics div{display:flex;flex-direction:column}.metrics strong{font-size:29px;letter-spacing:-.07em}.metrics span{color:#acb9d3;font-size:12px}.hero-art{position:relative;aspect-ratio:4/4.3;display:grid;place-items:center}.hero-orbit{position:absolute;inset:6%;border:1px solid #d99ec32b;border-radius:50%;box-shadow:0 0 0 39px #d99ec309,0 0 0 77px #d99ec306}.hero-quote{position:relative;z-index:1;width:77%;min-height:74%;padding:44px 27px;display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center;background:linear-gradient(145deg,#24385b 0%,#39294b 46%,#6b3155 100%);border:1px solid #f8dfd24d;border-radius:17px;box-shadow:0 32px 90px #02041291;transform:rotate(3deg)}.hero-quote p{font:clamp(18px,2vw,27px)/1.58 Georgia,serif;color:#fff2ed;max-width:295px;margin:5px 0 24px}.hero-quote small{font-size:11px;color:#f6c6d8}.giant-quote{font:75px/1 Georgia,serif;color:#ecb4ca}.sparkle{position:absolute;color:#f1cf95;font-size:50px}.sparkle.one{right:1%;top:10%}.sparkle.two{left:2%;bottom:9%;font-size:30px}.collection{padding-top:24px;padding-bottom:96px}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:29px}.section-head .eyebrow{margin-bottom:10px}.secondary-btn,.primary-btn{border-radius:11px;padding:13px 18px;min-height:46px;font-size:13px;font-weight:700;border:1px solid #7b8bb54f;color:var(--ink);background:linear-gradient(135deg,#243859,#192942);transition:background .18s,border .18s}.secondary-btn:hover{border-color:#dfbadc}.primary-btn{background:linear-gradient(110deg,#d94893,#b34083);border-color:#e275b0;box-shadow:0 6px 20px #bd327745}.primary-btn:hover{background:#e14c9d}.filters{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:13px}.search-wrap,.select-wrap{display:flex;align-items:center;min-height:58px;background:#121e38;border:1px solid #66799f48;border-radius:13px;padding:0 17px}.search-wrap:focus-within,.select-wrap:focus-within{border-color:#d4a5c4}.search-wrap input{flex:1;background:none;border:0;color:white;outline:0;font-size:15px;width:100%;min-width:0}.search-wrap input::placeholder{color:#a4aec2}.search-symbol{font-size:30px;line-height:1;margin-right:11px;color:var(--gold)}kbd{font-size:16px;color:#a0b0c8}.select-wrap{display:flex;gap:7px;flex-direction:column;align-items:stretch;justify-content:center}.select-wrap span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}select{background:#15223e;color:var(--ink);border:1px solid #7180a34b;border-radius:9px;padding:11px 12px;width:100%;outline:0;min-height:43px}.select-wrap select{border:0;padding:0;min-height:20px;background:none;font-size:12px}.categories{display:flex;gap:9px;overflow-x:auto;padding:20px 0 16px;scrollbar-color:#647297 transparent;scrollbar-width:thin}.chip{border:1px solid #ffffff22;border-radius:100px;background:#ffffff09;padding:9px 15px;color:#d5deed;white-space:nowrap;font-size:12px;transition:.18s;min-height:38px}.chip span{font-size:10px;color:#a5aec8;margin-left:7px}.chip.active{background:linear-gradient(115deg,#75294e,#522f65);border-color:#db87b2;color:#fff}.chip:hover{border-color:#e0c8d9}.results-bar{display:flex;justify-content:space-between;gap:16px;margin:19px 0 18px;align-items:center;font-size:13px;color:#bbc6d9}.results-bar span{font-size:11px;color:#899db8}.quote-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.quote-card{background:linear-gradient(153deg,#182846 0%,#101a32 100%);border:1px solid #ffffff15;border-radius:18px;padding:23px;min-height:273px;display:flex;flex-direction:column;box-shadow:0 9px 33px #00000012;position:relative;transition:transform .18s,border .18s}.quote-card:hover{border-color:#e5a8ce6b;transform:translateY(-2px)}.card-header{display:flex;align-items:start;justify-content:space-between;gap:8px}.tag{font-size:10px;border:1px solid #ffffff22;border-radius:100px;padding:6px 10px;color:#d6bedc;background:#cd77b20c;white-space:nowrap;max-width:82%;overflow:hidden;text-overflow:ellipsis}.category-tag{color:#a6b6d4;font-size:18px}.quote-mark{font:45px/.8 Georgia,serif;color:#dc91ba;margin-top:18px}.quote-body{font:18px/1.6 Georgia,serif;letter-spacing:-.016em;margin:15px 0;overflow-wrap:anywhere;flex:1}.quote-author{color:#d5c7d3;font-size:12px;margin-bottom:21px}.card-action{border:1px solid #b66d974a;background:#882a5d35;color:#f9d5e6;border-radius:10px;min-height:43px;padding:10px 12px;text-align:center;font-weight:700;font-size:12px}.card-action:hover{background:#92296265}.card-source{color:#8193b2;font-size:10px;display:block;margin-top:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.more-wrap{text-align:center;margin-top:28px}.about{display:grid;grid-template-columns:.93fr 1fr;gap:60px;align-items:center;border-top:1px solid #ffffff20;padding-top:70px;padding-bottom:100px}.about p:last-child{color:#b8c5dc;font-size:14px;line-height:1.85}footer{background:#080e1d;border-top:1px solid #ffffff17}.foot{display:flex;justify-content:space-between;gap:16px;padding:25px 0;color:#8da0c1;font-size:11px;flex-wrap:wrap}.editor{max-width:none;max-height:none;width:min(1190px,calc(100% - 30px));height:min(96vh,1060px);padding:0;border:1px solid #65739465;background:#0d182e;color:var(--ink);border-radius:18px;box-shadow:0 30px 100px #000a;overflow:hidden}.editor::backdrop{background:#010412d9;backdrop-filter:blur(6px)}.editor-shell{height:100%;display:flex;flex-direction:column;min-height:0}.editor-top{padding:17px 24px;border-bottom:1px solid var(--stroke);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.editor-top .eyebrow{font-size:10px;margin-bottom:6px}.editor-top h2{font-size:23px;margin:0}.icon-btn{border:1px solid #a4aec54d;border-radius:50%;background:#1c2945;color:white;width:38px;height:38px}.editor-content{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(310px,.84fr);gap:0;overflow:hidden;min-height:0;flex:1}.preview-pane{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;padding:12px 20px 15px;background:#070f22}.preview-caption{color:#afbcd6;display:flex;justify-content:space-between;gap:8px;width:100%;padding:7px 1px 11px;font-size:10px;letter-spacing:.11em;font-weight:700}.canvas-wrap{flex:1;min-height:0;display:flex;justify-content:center;align-items:center;width:100%}#preview{display:block;object-fit:contain;max-width:100%;max-height:100%;height:auto;width:auto;box-shadow:0 9px 24px #0009;border:1px solid #ffffff46;border-radius:3px;touch-action:none;cursor:grab}#preview:active{cursor:grabbing}.canvas-hint{color:#a5b2cc;text-align:center;font-size:11px;margin-top:10px}.move-controls{display:flex;gap:9px;justify-content:center;margin-top:9px}.move-controls button{background:#1b2b4c;color:#e4e9f3;border:1px solid #ffffff2a;border-radius:8px;padding:8px 14px;font-size:12px}.editor-options{padding:24px;overflow-y:auto;min-height:0;background:#131e35}.option-group{margin-bottom:21px}.option-group>label:first-child,.input-line label{display:block;font-weight:700;font-size:12px;margin-bottom:9px;color:#e8ddea}.option-group select{font-size:12px}.segmented{display:flex;gap:5px;padding:5px;background:#0b1630;border-radius:10px;margin:0 0 13px}.segmented button{flex:1;border:0;background:transparent;color:#b3c0d8;border-radius:7px;padding:9px 4px;font-size:12px}.segmented button.active{background:#4a325c;color:white;box-shadow:0 3px 9px #0006}.colors-row{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap}.colors-row label{font-size:11px;color:#adbdd6;display:flex;align-items:center;gap:10px}.colors-row input[type=color]{appearance:none;border:1px solid #ffffff4a;border-radius:8px;overflow:hidden;background:none;width:42px;height:35px;padding:0;cursor:pointer}.colors-row input::-webkit-color-swatch-wrapper{padding:0}.colors-row input::-webkit-color-swatch{border:0}.input-line{display:flex;justify-content:space-between}.input-line output{font-size:11px;color:#e2b6ce}.option-group input[type=range]{width:100%;accent-color:#dc73a9}.check{display:flex;gap:10px;align-items:center;margin-top:13px;color:#c9d4e5;font-size:12px}.check input{accent-color:#c95a99;width:16px;height:16px}.photos-panel p{font-size:11px;color:#aebbd1;margin-bottom:10px}.photo-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-height:165px;overflow-y:auto}.photo-thumbs button{border:2px solid transparent;padding:0;border-radius:6px;overflow:hidden;aspect-ratio:1;background:#243459}.photo-thumbs button.active{border-color:#e99cc7}.photo-thumbs img{width:100%;height:100%;object-fit:cover}.photo-thumbs .placeholder{font-size:11px;color:#aab7cb;grid-column:1/-1;padding:14px;background:#18253f;border-radius:8px}.editor-note{font-size:10px!important;line-height:1.5}.editor-source{padding:13px 15px;background:#ffffff08;border-radius:12px;border:1px solid #ffffff19}.editor-source strong{font:13px/1.5 Georgia,serif;display:block}.editor-source small{display:block;color:#ba9bba;margin-top:7px}.editor-bottom{border-top:1px solid var(--stroke);padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-shrink:0;background:#101b30}.editor-bottom>span{font-size:10px;color:#a4b5cf;max-width:250px}.editor-bottom>div{display:flex;gap:10px;flex-wrap:wrap}.editor-bottom button{padding:11px 16px;min-height:42px}@media (max-width:950px){.hero{gap:30px;min-height:470px}.quote-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-content{grid-template-columns:minmax(0,1fr) 345px}.editor-options{padding:16px}.hero-quote{width:87%}}@media(max-width:700px){.shell{width:min(100% - 28px,580px)}.nav{padding:12px 0}.brand strong{font-size:14px}.brand small{font-size:9px}.about-link{font-size:11px}.mark{width:38px;height:38px}.hero{grid-template-columns:1fr;gap:14px;padding-top:55px;padding-bottom:42px}.hero h1{font-size:43px}.hero-art{display:none}.metrics{gap:20px;margin-top:23px}.metrics strong{font-size:24px}.metrics span{font-size:10px}.lead{font-size:14px}.section-head{align-items:start;flex-direction:column}.section-head .secondary-btn{align-self:stretch}.filters{grid-template-columns:1fr}.quote-grid{grid-template-columns:1fr;gap:13px}.quote-card{min-height:230px}.about{grid-template-columns:1fr;gap:10px;padding:40px 0 60px}.editor{width:100%;height:100dvh;max-height:none;margin:0;border:0;border-radius:0}.editor-top{padding:10px 15px}.editor-top h2{font-size:17px}.editor-top .eyebrow{font-size:9px}.editor-content{display:flex;flex-direction:column;overflow:auto}.preview-pane{min-height:330px;height:52dvh;flex-shrink:0;padding:7px 13px 10px}.canvas-wrap{min-height:0}.canvas-hint{font-size:10px}.move-controls{margin-top:4px}.move-controls button{padding:6px 11px}.editor-options{padding:18px 17px;flex-shrink:0;overflow:visible}.editor-bottom{padding:10px 12px;flex-direction:column;align-items:stretch;gap:8px}.editor-bottom>span{max-width:none;text-align:center}.editor-bottom>div{display:grid;grid-template-columns:1fr 1fr}.editor-bottom button{min-height:44px;padding:10px 5px;font-size:11px}.collection{padding-bottom:55px}}@media(max-width:400px){.preview-pane{min-height:290px;height:46dvh}.editor-top h2{font-size:15px}.hero h1{font-size:39px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Version 2 : navigation Chez Colombes, publicité, administration et saisons */
.nav-actions{display:flex;align-items:center;gap:20px;justify-content:flex-end;flex-wrap:wrap}
.home-link{display:inline-flex;align-items:center;gap:5px;min-height:38px;text-decoration:none;font-weight:750;font-size:12px;border:1px solid #ffffff3a;background:#ffffff0b;border-radius:10px;padding:10px 13px;color:#f5e8ee}
.home-link:hover,.footer-home:hover{background:#ffffff17;border-color:var(--season-accent,#e79bbf)}
.footer-home{font-weight:750;color:#fff;text-decoration:none}
.pi-admin{position:fixed;left:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:40;display:grid;place-items:center;width:30px;height:30px;border:1px solid #ffffff28;border-radius:50%;font:italic 17px Georgia,serif;text-decoration:none;background:#0c1831d9;color:#b4bed1;opacity:.55;transition:opacity .15s,transform .15s;box-shadow:0 2px 9px #0003}
.pi-admin:hover,.pi-admin:focus-visible{opacity:1;transform:scale(1.07);color:#fff}
.season-pill{display:inline-flex;gap:8px;align-items:center;max-width:100%;min-height:34px;margin:0 0 18px;padding:5px 12px 5px 8px;border:1px solid color-mix(in srgb,var(--season-accent,#e79bbf) 35%,transparent);background:color-mix(in srgb,var(--season-accent,#e79bbf) 12%,transparent);border-radius:30px;font-size:12px;font-weight:650;color:#e5e8f1}
.season-pill #seasonSymbol{font-size:19px;line-height:1}
.season-mini{width:27px;height:27px;display:inline-flex;flex-shrink:0;margin-left:-6px}
.season-mini img{width:100%;height:100%;object-fit:contain}
.season-emoji{position:absolute;z-index:5;right:-7px;bottom:-7px;width:92px;height:92px;display:grid;place-items:center;filter:drop-shadow(0 6px 17px #0007)}
.season-emoji>span{font-size:74px;line-height:1}
.season-emoji picture{position:absolute;inset:0;display:grid;place-items:center}
.season-emoji picture img{width:100%;height:100%;object-fit:contain}
body[data-theme]{--season-accent:#f5aa81;--season-haze:#522c3c;--season-bottom:#132845;background:radial-gradient(ellipse 1050px 610px at 90% 4%,var(--season-bottom) 0%,transparent 70%),radial-gradient(ellipse 720px 450px at 3% 25%,var(--season-haze) 0%,transparent 75%),var(--bg)}
body[data-theme="spring"]{--season-accent:#eeb4d9;--season-haze:#344e4a;--season-bottom:#263c4e}
body[data-theme="summer"]{--season-accent:#ffcc78;--season-haze:#2a4554;--season-bottom:#264258}
body[data-theme="autumn"]{--season-accent:#ffa56f;--season-haze:#512b45;--season-bottom:#233856}
body[data-theme="winter"]{--season-accent:#bddaff;--season-haze:#243750;--season-bottom:#213957}
body[data-theme="halloween"]{--season-accent:#ffad6e;--season-haze:#512345;--season-bottom:#312943}
body[data-theme="christmas"]{--season-accent:#e9bdb6;--season-haze:#183e45;--season-bottom:#2b3048}
body[data-theme="newyear"]{--season-accent:#f9e5a0;--season-haze:#3c3256;--season-bottom:#1f3860}
body[data-theme="valentine"]{--season-accent:#ffadd0;--season-haze:#4c294f;--season-bottom:#343058}
body[data-theme] .eyebrow{color:var(--season-accent)}
body[data-theme] h1 em{color:var(--season-accent)}
body[data-theme] .hero-quote{background:linear-gradient(145deg,#24385b 0%,var(--season-bottom) 45%,var(--season-haze) 100%);border-color:color-mix(in srgb,var(--season-accent) 45%,transparent)}
body[data-theme] .chip.active{background:linear-gradient(115deg,var(--season-haze),#4a355a);border-color:var(--season-accent)}
body[data-theme] .card-action:hover{border-color:var(--season-accent)}
.ad-slot{margin-top:0;margin-bottom:54px;padding:18px;border:1px solid #ffffff24;border-radius:18px;background:#ffffff06;text-align:center}
.ad-head{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:12px;color:#c9d1e4;font-size:11px}
.ad-head span{font-size:10px;letter-spacing:.15em;color:#98a7bc}
.ad-slot>a{display:block}
.ad-slot img{max-width:100%;height:auto;max-height:280px;display:block;margin:auto;border-radius:10px;object-fit:contain}
/* Administration */
.admin-main{padding-top:40px;padding-bottom:72px}
.admin-title{font-size:clamp(31px,4vw,48px);margin-bottom:24px}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;padding:16px 18px;border:1px solid #ffffff26;background:#ffffff08;border-radius:15px;margin-bottom:20px}
.admin-toolbar span{font-size:12px;color:#c7d0e1}
.admin-tabs{display:flex;gap:9px;overflow-x:auto;margin:0 0 25px;padding:4px 1px 12px;scrollbar-width:thin}
.admin-tabs a{text-decoration:none;white-space:nowrap;border:1px solid #ffffff3a;padding:11px 16px;border-radius:11px;background:#ffffff0b;color:#e9eaf4;font-size:13px;font-weight:750}
.admin-tabs a:hover{border-color:var(--season-accent)}
.admin-panel{background:#131f38e9;border:1px solid #ffffff24;border-radius:20px;padding:clamp(18px,3vw,34px);margin-bottom:23px;scroll-margin-top:20px}
.admin-panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}
.admin-panel h2{font-size:clamp(22px,2.5vw,30px);margin-bottom:12px}
.admin-panel p{color:#b4c3d9;font-size:13px;line-height:1.7}
.admin-auth{max-width:610px}
.admin-form{display:grid;gap:16px;margin-top:22px}
.admin-form>label,.admin-form .admin-two>label,.admin-lookup{display:flex;flex-direction:column;gap:8px;color:#e8ebf6;font-weight:650;font-size:13px}
.admin-form input:not([type=checkbox]):not([type=file]),.admin-form textarea,.admin-form select,.admin-lookup input{width:100%;min-height:48px;background:#09152b;border:1px solid #61718d70;border-radius:10px;color:#f5f6ff;padding:11px 13px;font-size:15px}
.admin-form textarea{min-height:120px;resize:vertical;line-height:1.6}
.admin-form input[type=file]{max-width:100%;background:#0c1930;border:1px dashed #63718e;padding:14px;border-radius:10px;color:#c2d0e8}
.admin-form input[type=file]::file-selector-button{background:#283e61;color:white;border:0;padding:8px 12px;border-radius:7px;margin-right:9px;cursor:pointer}
.admin-form input:focus-visible,.admin-form textarea:focus-visible{outline:2px solid var(--season-accent)}
.admin-form .primary-btn{justify-self:start}
.admin-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:11px!important}
.admin-checkbox input{width:19px;height:19px;accent-color:#d761a1}
.admin-search-results{display:grid;gap:7px;max-height:260px;overflow-y:auto;margin:15px 0 18px;padding:12px;background:#09152b;border-radius:12px;border:1px solid #ffffff25;color:#9eafc7;font-size:12px}
.admin-result{width:100%;display:flex;flex-direction:column;align-items:start;gap:4px;text-align:left;padding:11px 13px;background:#192a47;color:#fff;border:1px solid transparent;border-radius:9px}
.admin-result:hover,.admin-result:focus-visible{border-color:var(--season-accent)}
.admin-result strong{font-size:12px;line-height:1.45;max-width:100%;font-weight:600}
.admin-result small{color:#b1c1d8;font-size:11px}
.admin-danger{margin-top:12px;padding-top:18px;border-top:1px solid #ffffff26}
.admin-danger .secondary-btn{border-color:#de7084aa;color:#ffe6e8}
.admin-alert{margin-bottom:20px;padding:14px 18px;border-radius:12px;font-size:14px}
.admin-alert.error{background:#512538;border:1px solid #db7785;color:#ffdee6}
.admin-alert.good{background:#193f44;border:1px solid #6dbcb0;color:#d9fff5}
.admin-hint{margin-top:16px;font-size:12px!important;color:#95a8c4!important}
.admin-ad-preview{border:1px solid #ffffff25;border-radius:11px;padding:10px;background:#08152e;margin:15px 0}
.admin-ad-preview img{max-width:100%;max-height:210px;object-fit:contain;display:block;margin:auto}
@media(max-width:700px){.nav-actions{gap:7px}.home-link{font-size:10px;padding:8px 9px}.nav{flex-wrap:wrap;gap:9px}.nav-actions{width:100%;justify-content:space-between}.season-emoji{display:none}.season-pill{margin-bottom:15px}.ad-slot{margin-bottom:28px;padding:12px}.admin-main{padding-top:26px}.admin-two{grid-template-columns:1fr}.admin-toolbar .secondary-btn{min-height:38px}.admin-panel{border-radius:15px}.admin-form .primary-btn{width:100%}.pi-admin{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.season-mini,.season-emoji picture{display:none!important}}
.season-mini[hidden],.season-emoji picture[hidden]{display:none!important}

/* Version 2.1 : formats visuels, auteur obligatoire */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.network-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.network-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 8px;border-radius:12px;border:1px solid #ffffff24;background:#0b1730;color:#e7edf8;font-weight:700;font-size:12px}
.network-btn .network-glyph{display:grid;place-items:center;inline-size:24px;block-size:24px;border-radius:999px;background:#ffffff12;color:#ffd7e8;font-weight:800;font-size:14px;flex-shrink:0}
.network-btn.active{border-color:var(--season-accent,#f1a4c5);background:linear-gradient(135deg,#192846,#2e2e56);box-shadow:0 8px 24px #00000024}
.ratio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.ratio-btn{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;min-height:108px;padding:13px 12px;border-radius:14px;border:1px solid #ffffff20;background:#0a1630;color:#e7edf8;text-align:left}
.ratio-btn .ratio-svg{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#ffffff10;color:#ffd9e9}
.ratio-btn strong{font-size:13px;line-height:1.35}
.ratio-btn small{font-size:11px;line-height:1.45;color:#b8c6da}
.ratio-btn.active{border-color:var(--season-accent,#f1a4c5);background:linear-gradient(145deg,#152445,#2b294c);box-shadow:0 10px 24px #0000002b}
.editor-lock{margin:10px 0 0;color:#bfcadf;font-size:12px;line-height:1.5}
@media(max-width:700px){.network-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ratio-grid{grid-template-columns:1fr}.network-btn{min-height:42px}.ratio-btn{min-height:94px}}

/* Version 2.2 : bibliothèque sans badges ni provenance, catégorie cliquable, Noto animé */
.filters{display:block;max-width:100%}
.filters .search-wrap{width:100%}
.card-header{justify-content:flex-end;min-height:35px}
.category-tag{display:inline-flex;gap:7px;max-width:100%;align-items:center;justify-content:flex-end;padding:5px 10px;border-radius:12px;border:1px solid #ffffff32;background:#ffffff09;color:#f4d6e8;font-weight:650;font-size:12px;line-height:1.35;text-decoration:none;transition:background .18s,border .18s}
.category-tag:hover,.category-tag:focus-visible{background:#a745823f;border-color:#e5a8cf}
.category-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.noto-inline{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;position:relative;flex:0 0 auto;width:24px;height:24px;line-height:1}
.noto-inline .noto-fallback{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:21px}
.noto-inline .noto-gif{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.noto-inline .noto-fallback[hidden]{display:none}
.noto-chip{width:20px;height:20px;margin-right:4px}
.noto-chip .noto-fallback{font-size:18px}
.noto-chip .noto-gif{width:20px;height:20px}
.chip{display:inline-flex;align-items:center;justify-content:center;gap:3px}
.chip-count{margin-left:8px}
.noto-ribbon{display:flex;align-items:center;gap:16px;margin-top:20px;min-height:49px}
.noto-ribbon .noto-inline{width:40px;height:40px}
.noto-ribbon .noto-fallback{font-size:32px}
.noto-collection{display:flex;align-items:center;gap:11px;margin-top:12px}
.noto-collection .noto-inline{height:31px;width:31px}
.noto-collection .noto-fallback{font-size:25px}
@media(min-width:701px){.noto-ribbon{margin-top:19px}}
@media(max-width:700px){.card-header{min-height:32px}.category-tag{font-size:12px}.noto-ribbon{gap:9px}.noto-ribbon .noto-inline{width:33px;height:33px}.noto-ribbon .noto-fallback{font-size:28px}}
@media(prefers-reduced-motion:reduce){.noto-inline .noto-gif{display:none!important}}

.ratio-btn[hidden]{display:none!important}

/* Version 2.3 : animations réservées aux catégories et au bouton saisonnier */
.season-link{text-decoration:none;cursor:pointer;transition:background .18s,transform .18s,border-color .18s}
.season-link:hover,.season-link:focus-visible{background:color-mix(in srgb,var(--season-accent,#f5aa81) 24%,transparent);border-color:var(--season-accent,#f5aa81);transform:translateY(-1px)}
.season-arrow{font-size:22px;line-height:1;margin-left:3px;color:#fff}
.noto-ribbon,.noto-collection{display:none!important}
.collection-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.collection-actions .secondary-btn{min-height:46px;white-space:normal}
#favoritesBtn.active{color:#c2eaff;border-color:#72c8ed;background:#0d3551}
.quote-card .card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px}
.like-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;min-height:38px;min-width:72px;padding:7px 11px;border:1px solid #ffffff30;background:#ffffff08;color:#c4d5ea;border-radius:40px;font-family:inherit;font-size:13px;font-weight:750;transition:background .16s,border-color .16s,transform .16s}
.like-button .like-icon{font-size:21px;filter:grayscale(.7);opacity:.75;line-height:1}
.like-button.liked{border-color:#69c6ec;background:#143d5b;color:#d6f3ff}
.like-button.liked .like-icon{filter:none;opacity:1}
.like-button:hover,.like-button:focus-visible{border-color:#69c6ec;background:#183854}
.like-button:active{transform:scale(.97)}
.like-button:disabled{opacity:.6;cursor:wait}
@media(max-width:700px){.collection-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px}.collection-actions .secondary-btn{width:100%;padding:10px 8px;font-size:11px}.season-link{max-width:100%}.quote-card .card-header{gap:7px}.like-button{min-width:60px;padding:6px 9px}}
@media(max-width:360px){.collection-actions{grid-template-columns:1fr}.collection-actions .secondary-btn{font-size:12px}}

body[data-theme="paques"]{--season-accent:#f9c7dd;--season-haze:#304e54;--season-bottom:#263c57}


/* Version 2.4 : saison mise en avant, likes visibles, vidéo navigateur */
.season-link-strong{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;min-height:52px;border-width:2px;background:linear-gradient(135deg,color-mix(in srgb,var(--season-accent,#f5aa81) 18%,transparent),color-mix(in srgb,var(--season-haze,#512b45) 42%,transparent));box-shadow:0 10px 26px #00000022}
.season-link-strong #seasonLabel{font-size:14px;font-weight:800;letter-spacing:.01em}
.season-quick-btn{border-color:var(--season-accent,#f5aa81)!important;background:linear-gradient(135deg,#24385b,color-mix(in srgb,var(--season-haze,#512b45) 75%,#24385b));color:#fff}
.season-feature-chip{border-color:var(--season-accent,#f5aa81)!important;background:linear-gradient(130deg,color-mix(in srgb,var(--season-accent,#f5aa81) 20%,transparent),color-mix(in srgb,var(--season-haze,#512b45) 42%,transparent));box-shadow:0 6px 18px #0000001d}
.quote-meta-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:18px}
.card-actions-row{display:flex;align-items:center;justify-content:stretch;gap:10px;margin-top:14px}.card-actions-row .card-action{flex:1}
.card-like{margin-left:auto}.card-like .like-label{display:inline}@media(max-width:700px){.card-like .like-label{display:none}}
.editor-like-row{margin-top:10px}
.editor-like{min-width:120px}
.editor-note{display:block;margin-top:8px;color:#b9c5d8;font-size:12px;line-height:1.45}
.photo-tools{display:grid;gap:10px;margin-bottom:12px}
.upload-inline{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.upload-inline label,.upload-inline{color:#dce4f1;font-size:13px}
.upload-inline input[type=file]{max-width:100%}
.photo-sliders{display:grid;gap:8px}.photo-sliders label{display:grid;gap:5px;font-size:12px;color:#c5d1e4}
.sticker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.sticker-grid button,.sticker-chip{min-height:42px;border-radius:12px;border:1px solid #ffffff22;background:#0f203f;color:#fff;font-size:24px}
.sticker-chip{padding:6px 10px;font-size:14px;min-height:38px}
.stickers-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.sticker-clear{min-height:40px}
#modeDisplay{font-weight:700;color:#c7d8ef}
.like-button .like-label{font-size:12px;font-weight:800;letter-spacing:.01em}
@media(max-width:700px){.season-link-strong #seasonLabel{font-size:13px}.season-quick-btn{grid-column:1/-1}.quote-meta-row{align-items:flex-start}.like-button{min-height:40px}.sticker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* V2.5 — Rubriques avec Google Noto animé, sans les deux rangées décoratives. */
.noto-ribbon,.noto-collection{display:none!important}
.noto-inline{display:inline-flex;position:relative;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle;line-height:1}
.noto-inline .noto-picture{display:block;position:absolute;inset:0;width:100%;height:100%}
.noto-inline .noto-picture .noto-gif{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.noto-inline .noto-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1}
.noto-inline .noto-fallback[hidden]{display:none!important}
/* Rubriques dans la barre de filtres : pictogrammes de 38 px lisibles. */
#categories{gap:12px;padding-top:18px;padding-bottom:19px;align-items:stretch}
#categories .chip{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:59px;padding:8px 15px;border-radius:18px;font-size:14px;font-weight:680;line-height:1.3}
#categories .chip .noto-chip{width:38px;height:38px;margin:0;flex-shrink:0}
#categories .chip .noto-chip .noto-fallback{font-size:34px;color:inherit;margin:0}
#categories .chip .chip-emoji{font-size:33px;line-height:1;color:inherit;margin:0}
#categories .chip .chip-count{font-size:12px;letter-spacing:0;color:#c3cde3;margin-left:2px}
#categories .season-feature-chip{border-width:2px}
/* Cartes : nom et Noto à gauche, 🩵 et nombre de likes en haut à droite. */
.quote-card .card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:54px}
.quote-card .category-tag{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;flex:0 1 auto;min-width:0;max-width:calc(100% - 78px);border-radius:15px;padding:7px 9px;font-size:15px;font-weight:760;line-height:1.3;color:#fbe5f2;text-align:left}
.quote-card .category-name{display:inline-block;overflow-wrap:anywhere}
.quote-card .category-tag .noto-chip{display:inline-flex;width:38px;height:38px;margin:0;flex-shrink:0}
.quote-card .category-tag .noto-chip .noto-fallback{font-size:34px;color:inherit}
.quote-card .category-tag .chip-emoji{font-size:34px;line-height:1;flex-shrink:0}
.quote-card .card-header .card-like{margin:0 0 0 auto;flex:0 0 auto;position:relative;min-width:73px;min-height:46px;padding:7px 9px;border-radius:15px;border-color:#72b5d45c;background:#10354a80;color:#e5f8ff;z-index:1}
.quote-card .card-header .card-like .like-icon{font-size:25px;filter:none;opacity:1}
.quote-card .card-header .card-like .like-count{font-size:14px;font-variant-numeric:tabular-nums}
.quote-card .card-header .card-like .like-label{display:none}
.quote-card .quote-meta-row{margin-top:10px}
.quote-card .quote-meta-row .quote-author{margin:0;font-size:13px}
@media(max-width:700px){
 #categories .chip{font-size:14px;min-height:62px}
 #categories .chip .noto-chip{width:38px;height:38px}
 .quote-card .category-tag{max-width:calc(100% - 76px);font-size:14px}
 .quote-card .category-tag .noto-chip{width:36px;height:36px}
 .quote-card .category-tag .noto-chip .noto-fallback{font-size:32px}
 .quote-card .card-header .card-like{min-width:70px;min-height:46px}
}
@media(prefers-reduced-motion:reduce){.noto-inline .noto-picture{display:none!important}.noto-inline .noto-fallback{display:flex!important}}

/* V2.6 — natural-sized categories, visible hearts, compact studio */
#categories .chip .noto-chip,#categories .chip .noto-chip .noto-gif{width:28px!important;height:28px!important}
#categories .chip .noto-chip .noto-fallback,#categories .chip .chip-emoji{font-size:26px!important}
#categories .chip{gap:7px!important;padding:7px 13px!important;font-size:13px!important;min-height:43px}
.quote-card .category-tag .noto-chip,.quote-card .category-tag .noto-chip .noto-gif{width:28px!important;height:28px!important}
.quote-card .category-tag .noto-chip .noto-fallback,.quote-card .category-tag .chip-emoji{font-size:27px!important}
.quote-card .category-tag{font-size:13px!important;gap:7px!important;line-height:1.2}
.quote-card .card-header{align-items:center!important}
.like-button .like-icon{filter:none!important;opacity:1!important;font-size:21px!important}
.like-button:not(.liked){background:#09182c;border-color:#44536b;color:#c3ccda}
.like-button.liked{background:#103e57;border-color:#5dbce8;color:#dcf8ff}
.text-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:6px;border:1px solid #53658366;background:#09172b;border-radius:12px}
.text-toolbar button{display:grid;place-items:center;flex:0 0 39px;width:39px;height:38px;padding:6px;border:1px solid transparent;background:transparent;color:#d8e1f3;border-radius:8px}
.text-toolbar button.active,.text-toolbar button[aria-pressed=true]{background:#55345f;border-color:#c990ba;color:#fff}
.text-toolbar button:focus-visible{outline:2px solid #8fcdea}
.text-toolbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.text-toolbar .tool-divider{height:24px;width:1px;background:#ffffff30;margin:0 2px}
.export-format{display:flex;flex-wrap:wrap;align-items:center;gap:9px;min-width:0}
.export-format>label:first-child{font-size:12px;font-weight:700;color:#dbe5f3}
.export-format select{min-width:174px;font-size:12px;max-width:100%;padding:9px 12px;border:1px solid #63718e;border-radius:9px;color:#fff;background:#14243d}
.export-format .check{font-size:11px;margin:0;color:#c6d4e8;white-space:nowrap}
.export-format .check[hidden]{display:none!important}
#downloadBtn:not(.export-ready){background:#223348!important;border-color:#54647b!important;color:#9cacbf!important;box-shadow:none!important;cursor:not-allowed}
#downloadBtn.export-ready{background:linear-gradient(135deg,#c6156a,#863f99)!important;color:#fff;border-color:#eaa7ca;box-shadow:0 5px 20px #c6156a44}
#shareBtn:disabled{opacity:.5;cursor:not-allowed}
.sticker-noto-menu{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;max-height:164px;overflow-y:auto;padding:6px;border:1px solid #ffffff1c;border-radius:10px}
.sticker-noto-menu button{min-width:0;min-height:0;height:37px;padding:4px;border-radius:7px;background:#ffffff0a;border:1px solid #ffffff13;display:grid;place-items:center}
.sticker-noto-menu button img{width:27px;height:27px;object-fit:contain}
.sticker-noto-menu button:disabled{opacity:.25;cursor:not-allowed}
.sticker-noto-menu button:focus-visible{outline:2px solid #9bc9e5}
.sticker-chip.active{border-color:#a7def3;background:#185070}
.sticker-edit{padding:10px;margin-top:10px;border:1px solid #ffffff20;border-radius:10px;background:#0b1830;display:grid;gap:7px}
.sticker-edit[hidden]{display:none!important}
.sticker-edit label{display:grid;gap:4px;color:#cad7e8;font-size:12px}
.sticker-edit button{font-size:11px;padding:9px}
.photos-panel .photo-thumbs{max-height:225px;grid-template-columns:repeat(5,minmax(0,1fr))}
.photos-panel .photo-thumbs button{aspect-ratio:1}
.editor-bottom{flex-wrap:wrap}
.editor-bottom>div:not(.export-format){flex-shrink:0}
@media(max-width:700px){
 #categories .chip .noto-chip,#categories .chip .noto-chip .noto-gif{width:27px!important;height:27px!important}
 #categories .chip .noto-chip .noto-fallback,#categories .chip .chip-emoji{font-size:25px!important}
 .quote-card .category-tag .noto-chip,.quote-card .category-tag .noto-chip .noto-gif{width:27px!important;height:27px!important}
 .editor-bottom{gap:9px}
 .export-format{width:100%;justify-content:center;gap:6px}
 .export-format select{flex:1;min-width:100px;max-width:240px}
 .export-format .check{width:100%;justify-content:center}
 .editor-bottom>div:not(.export-format){grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 .sticker-noto-menu{grid-template-columns:repeat(8,minmax(0,1fr))}
 .photos-panel .photo-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}
}


/* Version 2.7 — Photo zoom minimum (0 %) and protected compact reposition controls */
.photo-tools{gap:11px}
.photo-zoom{display:grid;gap:6px;padding:2px 0}
.photo-zoom>label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:650;color:#d9e6f4}
.photo-zoom output{font-variant-numeric:tabular-nums;color:#d9f3ff;font-weight:700}
.photo-zoom>input[type="range"]{display:block;width:min(100%,195px);max-width:195px;touch-action:pan-x;accent-color:#9fcff2;margin:3px 0 1px}
.photo-move-panel{border:1px solid #ffffff30;border-radius:12px;background:#0c1b35;overflow:hidden}
.photo-move-panel>summary{min-height:44px;display:flex;align-items:center;gap:8px;padding:10px 13px;cursor:pointer;list-style:none;color:#e4efff;font-size:13px;font-weight:700;user-select:none;-webkit-tap-highlight-color:transparent}
.photo-move-panel>summary::-webkit-details-marker{display:none}
.photo-move-panel>summary:focus-visible{outline:2px solid #9fcff2;outline-offset:-3px}
.photo-move-panel .photo-move-caret{margin-left:auto;transition:transform .18s ease;font-size:18px;color:#b7c9dc}
.photo-move-panel[open] .photo-move-caret{transform:rotate(180deg)}
.photo-move-content{padding:3px 13px 14px;display:grid;gap:12px}
.photo-direction-pad{display:flex;gap:7px;flex-wrap:wrap;align-items:center;justify-content:flex-start}
.photo-direction-pad button{display:grid;place-items:center;min-width:40px;min-height:40px;border-radius:10px;border:1px solid #536a85;background:#172e4e;color:#ecf5ff;font-size:20px;padding:4px}
.photo-direction-pad button:active{background:#3b5576}
.photo-direction-pad button:focus-visible{outline:2px solid #9fcff2}
.photo-move-panel .photo-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,150px));gap:13px;align-items:start}
.photo-move-panel .photo-sliders label{display:grid;gap:6px;font-size:12px}
.photo-move-panel .photo-sliders input[type="range"]{display:block;width:100%;max-width:145px;min-width:0;touch-action:pan-x;accent-color:#9fcff2;margin:0}
@media(max-width:390px){.photo-move-panel .photo-sliders{grid-template-columns:repeat(2,minmax(0,1fr));max-width:290px}}

.photo-move-panel:not([open])>.photo-move-content{display:none!important}

/* V2.8 : manipulation directe du texte et des stickers sur le canevas */
.canvas-wrap{position:relative;isolation:isolate}
.element-selection{position:absolute;border:2px dashed #ffcf74;border-radius:6px;box-shadow:0 0 0 1px #090e1a,0 0 0 3px #ffca4d33;z-index:2;pointer-events:none;touch-action:none;transform-origin:center center;box-sizing:border-box}
.element-selection[hidden]{display:none!important}
.element-selection[data-selection="text"]{border-color:#7dddfa;box-shadow:0 0 0 1px #0c1f36,0 0 0 3px #7dddfa22}
.element-handle{position:absolute;display:grid;place-items:center;min-width:30px;min-height:30px;width:30px;height:30px;padding:0;border:2px solid white;border-radius:50%;background:#102340;color:white;box-shadow:0 3px 12px #0009;font:700 23px/1 Arial,sans-serif;pointer-events:auto;touch-action:none;z-index:3}
.element-remove{top:-17px;right:-17px;background:#9b2853}
.element-resize{bottom:-17px;right:-17px;background:#17688a;font-size:17px}
.element-rotate{bottom:-17px;left:-17px;background:#8a57bc}
.element-handle[hidden]{display:none!important}
.editor .canvas-hint{max-width:95%;line-height:1.5}
@media(max-width:700px){.element-handle{min-width:34px;min-height:34px;width:34px;height:34px}.element-remove{top:-18px;right:-18px}.element-resize{bottom:-18px;right:-18px}.element-rotate{bottom:-18px;left:-18px}}

/* Poignées compactes, sans masquer la citation sur un petit écran. */
.element-handle{width:27px;height:27px;min-width:27px;min-height:27px;font-size:20px}
.element-handle::before{content:"";position:absolute;inset:-6px}
.element-remove{top:-14px;right:-14px}
.element-resize{bottom:-14px;right:-14px;font-size:16px}
.element-rotate{bottom:-14px;left:-14px}
@media(max-width:700px){.element-handle{width:27px;height:27px;min-width:27px;min-height:27px}.element-remove{top:-14px;right:-14px}.element-resize{bottom:-14px;right:-14px}.element-rotate{bottom:-14px;left:-14px}}

/* V2.9 — progression pendant le rendu, inspirée du Studio VideoGen fourni */
.creation-progress-backdrop[hidden],.creation-progress-backdrop [hidden]{display:none!important}
.creation-progress-backdrop{position:fixed;inset:0;z-index:99999;display:flex;justify-content:center;align-items:center;padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));background:rgba(3,10,27,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.creation-progress-card{width:min(420px,100%);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #657caa88;border-radius:24px;padding:23px 19px 24px;color:#eef4ff;text-align:center;background:linear-gradient(160deg,#152b55,#0b1732 76%);box-shadow:0 30px 90px #000a}
.creation-progress-card h2{font-size:clamp(21px,5.5vw,29px);margin:8px 0;font-weight:850}
.creation-progress-card>p{font-size:14px;line-height:1.5;color:#bfcde6;margin:10px auto;max-width:32ch}
.progress-heading-icon{font-size:32px;color:#ffbedc}
.creation-progress-ring{width:158px;height:158px;margin:19px auto;display:grid;place-items:center;position:relative;border-radius:50%;background:conic-gradient(#ed70b9 calc(var(--progress)*1%),#ffffff22 0)}
.creation-progress-ring:before{content:"";position:absolute;inset:11px;border-radius:50%;background:#14294e;box-shadow:inset 0 0 16px #050b24}
.creation-progress-ring span{position:relative;z-index:1;font-size:34px;font-weight:850;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.creation-progress-state{min-height:21px;color:#f9d9eb!important;font-size:13px!important;font-weight:700}
.progress-track{height:9px;width:100%;border-radius:999px;background:#ffffff25;overflow:hidden;margin:17px auto 20px}
.progress-track span{display:block;background:linear-gradient(90deg,#ff9acb,#d1b2ff);height:100%;width:0;transition:width .16s linear;border-radius:999px}
.progress-cancel,.progress-done{min-width:148px;min-height:46px}
@media(max-width:480px){.creation-progress-card{padding:18px 14px 22px}.creation-progress-ring{height:140px;width:140px}}

/* La progression est un vrai dialog dans le top-layer, au-dessus du studio déjà modal. */
.creation-progress-backdrop:not([open]){display:none!important}
.creation-progress-backdrop[open]{border:0;margin:0;max-width:none;max-height:none;width:100%;height:100%;box-sizing:border-box;overflow:auto}
.creation-progress-backdrop::backdrop{background:rgba(0,0,0,.65)}

/* V3.0 — large interactive preview, visual font selection, easy rotation */
.font-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(155px,46%);overflow-x:auto;gap:10px;padding:4px 3px 12px;margin:0;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#8a6ca4 transparent;-webkit-overflow-scrolling:touch}
.font-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:9px;text-align:left;padding:12px;min-height:108px;min-width:0;scroll-snap-align:start;border-radius:14px;background:#0d1b34;border:1px solid #ffffff32;color:#e8f1ff;box-shadow:0 4px 10px #0002}
.font-card .font-visual{font-size:21px;line-height:1.24;min-height:52px;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;color:#fff6f9;font-weight:normal;letter-spacing:0}
.font-card .font-title{font:600 12px/1.3 ui-sans-serif,system-ui,Arial,sans-serif;letter-spacing:0;color:#b9c9e3}
.font-card .font-selected{position:absolute;right:8px;top:7px;background:#69c7f2;color:#091a32;border-radius:999px;font:800 12px/1 ui-sans-serif,system-ui,Arial,sans-serif;padding:4px 6px;display:none}
.font-card.active{border:2px solid #f6b4d2;background:linear-gradient(145deg,#253857,#332348);box-shadow:0 0 0 2px #d35ca33d}
.font-card.active .font-selected{display:block}
.font-gallery-hint{font-size:11px;color:#b5c6e0;line-height:1.45;margin:5px 0 0}
.preview-expand-btn{border:1px solid #6b829e80;border-radius:9px;background:#203452;color:#f8f9ff;font:700 11px/1.1 ui-sans-serif,system-ui,Arial,sans-serif;padding:9px 10px;min-height:37px;letter-spacing:0;text-transform:none;white-space:nowrap;flex-shrink:0}
.preview-expand-btn:hover,.preview-expand-btn:focus-visible{border-color:#f6c1dd;background:#344b71}
.sticker-rotation-controls[hidden]{display:none!important}
.sticker-rotation-controls{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;max-width:100%;margin-top:8px}
.sticker-rotation-controls .rotation-label{width:100%;text-align:center;font-size:12px;font-weight:700;color:#dbedf9}
.sticker-rotation-controls button{min-height:42px;padding:8px 11px;background:#213b5d;border:1px solid #7896b5;border-radius:10px;color:#f3f6ff;font-size:12px;font-weight:760;touch-action:manipulation}
.sticker-rotation-controls button:active{background:#3c6389}
.sticker-rotation-controls .rotation-angle{min-width:42px;font-weight:750;font-size:12px;text-align:center;color:#e9c0d5;font-variant-numeric:tabular-nums}
.element-handle,.element-handle.element-remove,.element-handle.element-resize,.element-handle.element-rotate{min-width:37px;min-height:37px;width:37px;height:37px;font-size:23px;touch-action:none}
.element-remove{top:-20px;right:-20px}.element-resize{bottom:-20px;right:-20px}.element-rotate{bottom:-20px;left:-20px}
@media(max-width:700px){
 .editor-content{overflow:auto}
 .editor .preview-pane{height:69dvh;min-height:480px;max-height:none;padding:6px 12px 9px;flex-shrink:0}
 .editor .preview-caption{align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:5px 1px 9px}
 .editor .preview-caption>span:first-child{font-size:9px;letter-spacing:.06em}
 .editor .preview-caption #sizeDisplay{font-size:10px;letter-spacing:.02em}
 .editor .canvas-wrap{flex:1 1 auto;width:100%;min-height:0;max-width:100%;overflow:visible}
 .editor #preview{max-width:100%;max-height:100%;object-fit:contain}
 .editor .canvas-hint{font-size:10px;line-height:1.3;margin-top:7px;max-width:100%}
 .editor .move-controls{margin-top:6px}
 .editor .move-controls button{min-height:40px;padding:5px 11px;font-size:13px}
 .editor .sticker-rotation-controls{margin-top:9px}
 .font-gallery{grid-auto-columns:minmax(145px,52%)}
 .preview-expand-btn{min-height:39px;padding:8px 10px}
 .editor.preview-expanded .editor-content{overflow:hidden}
 .editor.preview-expanded .preview-pane{height:100%;min-height:0;flex:1 1 auto;padding-top:8px}
 .editor.preview-expanded .editor-options,.editor.preview-expanded .editor-bottom{display:none!important}
 .editor.preview-expanded .canvas-wrap{flex:1 1 auto;min-height:0}
 .editor.preview-expanded #preview{max-height:100%;max-width:100%}
 .element-handle,.element-handle.element-remove,.element-handle.element-resize,.element-handle.element-rotate{min-width:39px;min-height:39px;width:39px;height:39px}
 .element-remove{top:-21px;right:-21px}.element-resize{bottom:-21px;right:-21px}.element-rotate{bottom:-21px;left:-21px}
}
@media(max-width:400px){.editor .preview-pane{height:70dvh;min-height:450px}.editor.preview-expanded .preview-pane{height:100%;min-height:0}.editor .preview-caption>span:first-child{font-size:8px}.font-gallery{grid-auto-columns:minmax(140px,55%)}}
@media(max-height:650px) and (max-width:700px){.editor .preview-pane{min-height:420px;height:74dvh}.editor.preview-expanded .preview-pane{min-height:0;height:100%}}


/* V3.1 — polices plus variées + slider de taille plus compact */
#fontSize{display:block;width:calc(100% - 34px);max-width:420px;margin:0 auto;touch-action:pan-y}
.compact-slider-group{padding-bottom:2px}
.compact-slider-group .input-line{margin-bottom:6px}
.compact-slider-group .colors-row{margin-top:14px}
.font-gallery{grid-auto-columns:minmax(168px,42%)}
.font-card{min-height:116px}
.font-card .font-visual{font-size:22px;line-height:1.18;min-height:58px}
.font-card .font-title{font-size:11.5px}
@media(max-width:700px){#fontSize{width:calc(100% - 54px);max-width:290px}.font-gallery{grid-auto-columns:minmax(162px,72%)}.font-card{min-height:112px}}
@media(max-width:400px){#fontSize{width:calc(100% - 64px);max-width:250px}.font-gallery{grid-auto-columns:minmax(156px,78%)}}


/* V3.2 — formats plus compacts, dégradé enrichi, signature colombe */
.ratio-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,205px);gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:thin}
.ratio-btn{min-height:88px;padding:11px 11px;scroll-snap-align:start}
.ratio-btn .ratio-svg{width:34px;height:34px}
.ratio-btn strong{font-size:12.5px}
.ratio-btn small{font-size:10.5px}
.mini-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.mini-actions[hidden]{display:none!important}
.mini-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 12px;border-radius:12px;border:1px solid #ffffff20;background:#0f1d3c;color:#e7edf8;font-size:12px;font-weight:700}
.mini-btn:hover{background:#15284f}
#bg3Wrap[hidden]{display:none!important}
@media(max-width:700px){.ratio-grid{grid-auto-columns:minmax(156px,74vw);gap:9px}.ratio-btn{min-height:84px;padding:10px 10px}.ratio-btn strong{font-size:12px}.ratio-btn small{font-size:10px}}

/* V3.3 — émojis Noto vérifiés, recherche rapide et Emoji Kitchen */
.emoji-entry-row{display:flex;gap:8px;align-items:center;margin-top:10px;min-width:0}
.emoji-entry-row input{min-width:0;flex:1;background:#0b1931;border:1px solid #53678a;border-radius:11px;padding:11px 12px;color:#fff;font-size:13px;min-height:43px}
.emoji-kitchen-open{border:1px solid #d29dc266;background:#302844;color:#fff;padding:10px 12px;border-radius:11px;font-size:12px;font-weight:750;min-height:43px;white-space:nowrap}
.emoji-current small{flex:1 1 130px;line-height:1.4;color:#b4c4da}
.sticker-noto-menu .noto-sticker-picker{position:relative;display:grid;place-items:center;padding:5px;min-height:51px;overflow:hidden}
.noto-sticker-picker img{width:36px;height:36px;object-fit:contain;display:block}
.noto-sticker-picker .noto-thumb-fallback{font-size:31px;display:grid;place-items:center;line-height:1}
.noto-sticker-picker .noto-thumb-fallback[hidden]{display:none}
.noto-sticker-picker.noto-unavailable{opacity:.65}
.sticker-noto-menu [hidden]{display:none!important}
.emoji-kitchen-dialog{width:min(440px,calc(100vw - 20px));max-height:min(90dvh,760px);padding:0;border:1px solid #7383a3;border-radius:20px;background:#12203a;color:white;box-shadow:0 18px 85px #0009;overflow:auto}
.emoji-kitchen-dialog::backdrop{background:#010615da;backdrop-filter:blur(4px)}
.emoji-kitchen-shell{padding:17px}
.emoji-kitchen-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.emoji-kitchen-header h2{margin:0;font-size:19px;letter-spacing:-.02em}
.emoji-kitchen-header button{width:37px;height:37px;border-radius:12px;border:1px solid #ffffff3d;background:#192b49;color:#fff;font-size:25px}
.emoji-kitchen-help,.emoji-kitchen-status{font-size:12px;line-height:1.55;color:#c5d3e8;margin:13px 0}
.emoji-kitchen-pair{display:flex;align-items:center;justify-content:center;gap:15px;margin:12px 0 16px}
.emoji-kitchen-pair span{display:grid;place-items:center;width:70px;height:68px;border:1px dashed #e4a6cd;border-radius:16px;background:#ffffff0a;font-size:35px}
.emoji-kitchen-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;max-height:280px;overflow-y:auto}
.emoji-kitchen-grid .kitchen-emoji{display:grid;place-items:center;min-height:48px;border-radius:10px;border:1px solid #ffffff27;background:#1b2e4d;font-size:29px;padding:0}
.emoji-kitchen-grid .kitchen-emoji[disabled]{opacity:.48}
@media(max-width:400px){.emoji-entry-row{flex-wrap:wrap}.emoji-kitchen-open{margin-left:auto}}

/* V3.4 — interface emoji plus compacte, miniatures réelles, effets texte visuels, formats plus compacts */
.ratio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;gap:10px;overflow:visible;padding-bottom:0}
.ratio-btn{min-height:86px;padding:10px 10px 11px;border-radius:18px}
.ratio-btn strong{font-size:12px;line-height:1.18}
.ratio-btn small{font-size:10px;line-height:1.35;color:#bfd0e7}
@media(min-width:900px){.ratio-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.ratio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ratio-btn{min-height:78px;padding:9px}.ratio-btn strong{font-size:11px}.ratio-btn small{font-size:9px}}

.emoji-entry-row.compact{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}
.emoji-kitchen-open{min-width:108px;padding:10px 10px;border-radius:12px}
.emoji-compact-input{display:flex;align-items:center;gap:7px;min-width:0}
.emoji-compact-input input{flex:1;min-width:0;padding:10px 12px;min-height:42px}
.emoji-send-btn{width:42px;height:42px;border-radius:12px;border:1px solid #e0a3cb77;background:#183055;color:#fff;font-size:20px;display:grid;place-items:center;flex:0 0 auto}
.emoji-send-btn:disabled{opacity:.5}

.stickers-list.thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sticker-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:14px;border:1px solid #466390;background:#102645;color:#fff;min-height:54px}
.sticker-chip.active{border-color:#88d5ee;background:#18496e;box-shadow:0 0 0 2px #8fdcf633 inset}
.sticker-chip-thumb{width:40px;height:40px;border-radius:10px;background:#1c3558;display:grid;place-items:center;font-size:28px;overflow:hidden;flex:0 0 auto}
.sticker-chip-thumb img{width:100%;height:100%;object-fit:contain}
.sticker-chip-label{font-size:12px;color:#dce7f5;max-width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.effect-row{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:thin}
.effect-chip{flex:0 0 auto;padding:10px 12px;border-radius:12px;border:1px solid #556d91;background:#14243d;color:#e7eef9;font-size:12px;font-weight:700;white-space:nowrap}
.effect-chip.active{background:linear-gradient(180deg,#6f3f78,#5b335b);border-color:#efb5d3;color:#fff;box-shadow:0 0 0 2px #efb5d340 inset}

.emoji-kitchen-help{margin-bottom:10px}
.emoji-kitchen-pair{gap:10px;flex-wrap:nowrap;justify-content:center;align-items:center}
.emoji-kitchen-pair span,.kitchen-result{display:grid;place-items:center;width:62px;height:62px;border:1px dashed #e4a6cd;border-radius:15px;background:#ffffff0a;font-size:34px;overflow:hidden}
.kitchen-result{border-style:solid;background:#1a3458;color:#fff}
.kitchen-result[disabled]{opacity:.55}
.kitchen-result img{width:100%;height:100%;object-fit:contain}
.emoji-kitchen-tip{margin:0 0 12px;font-size:11px;color:#f0c9dc;text-align:center}
.emoji-kitchen-grid{grid-template-columns:repeat(6,minmax(0,1fr));max-height:250px}
.emoji-kitchen-grid .kitchen-emoji{min-height:44px;font-size:27px}
@media(max-width:420px){.emoji-kitchen-pair{gap:7px}.emoji-kitchen-pair span,.kitchen-result{width:54px;height:54px;font-size:30px}.emoji-kitchen-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}


/* V3.5 : rubriques défilantes et lisibilité sur mobile. */
#categories{scroll-behavior:auto;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:#7a8eae transparent}
#categories .chip{flex-shrink:0}
.category-discovery-hint{color:#9eafce;font-size:11px;line-height:1.4;margin:-5px 0 8px;text-align:right}
@media(max-width:700px){
 .collection-actions{display:flex;justify-content:stretch;width:100%}
 .collection-actions #randomBtn{width:100%;min-height:47px}
 .categories{margin:0 -2px;padding:17px 2px 15px}
 .category-discovery-hint{text-align:left;margin-top:-6px;margin-bottom:10px}
}
@media(prefers-reduced-motion:reduce){#categories{scroll-behavior:auto}}

/* V3.6 — grille Noto sans case intermédiaire : sélection immédiate et miniature active */
.sticker-noto-menu{margin-top:10px}
.sticker-chip-thumb .noto-mini-fallback[hidden]{display:none}
.sticker-chip-thumb img{display:block;width:100%;height:100%;object-fit:contain}

/* V3.7 : raccourcir uniquement les espaces de la bannière d’accueil, pas la bibliothèque. */
.hero{min-height:0;padding-top:42px;padding-bottom:35px}
@media(max-width:700px){.hero{min-height:0;padding-top:27px;padding-bottom:19px;gap:12px}}
@media(max-width:400px){.hero{padding-top:24px;padding-bottom:16px}}
/* Résultat Emoji Kitchen vraiment vide avant une fusion. */
.kitchen-result[disabled]{background:#172844;border:1px dashed #b18aa5;opacity:.62;box-shadow:none}
#kitchenResultHint[hidden]{display:none!important}

/* V3.9 — vignettes vidéo MP4, capture légère et pictogramme SVG blanc */
.photo-thumbs .video-photo-button{position:relative;isolation:isolate;background:linear-gradient(145deg,#101e41,#35486a);}
.photo-thumbs .video-photo-button img{width:100%;height:100%;object-fit:cover;}
.photo-thumbs .video-thumbnail-badge{position:absolute;right:5px;bottom:5px;z-index:2;display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:rgba(4,12,30,.78);border:1px solid rgba(255,255,255,.28);pointer-events:none;}
.photo-thumbs .video-thumbnail-badge svg{stroke:#fff;stroke-width:2;filter:drop-shadow(0 1px 2px #0008);}
.hidden-background-video{position:fixed;left:0;top:0;width:2px;height:2px;opacity:.001;pointer-events:none;z-index:-1;}

/* V4.0 — Bibliothèque des vidéos MP4 dans l'administration */
.video-admin-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,275px),1fr));gap:14px;margin-top:16px}
.video-admin-card{padding:13px;border:1px solid #ffffff29;border-radius:16px;background:#0c1933;display:grid;gap:10px}
.video-admin-poster{position:relative;aspect-ratio:16/9;background:#1b2b4a;border-radius:11px;overflow:hidden;display:grid;place-items:center;color:#afbed8;font-size:12px}
.video-admin-poster img{width:100%;height:100%;object-fit:contain}
.video-admin-badge{position:absolute;bottom:8px;right:8px;background:#09142ccc;padding:7px;border-radius:7px}
.video-admin-info{display:grid;gap:4px;min-width:0}
.video-admin-info strong{font-size:12px;overflow-wrap:anywhere}
.video-admin-info small{font-size:11px;color:#c4d1e5}
.video-admin-upload{display:grid;gap:8px}
.video-admin-upload label{font-size:11px;color:#d3dce9;display:grid;gap:6px}
.video-admin-upload input{max-width:100%;font-size:11px}
.video-admin-upload .secondary-btn{width:100%;font-size:11px}

/* V4.1 admin link / preview */
.pi-admin{width:38px;height:38px;z-index:250;pointer-events:auto;opacity:.82}
.video-admin-player{display:block;width:100%;max-height:280px;aspect-ratio:16/9;border-radius:11px;background:#050e20;object-fit:contain}
@media(max-width:700px){.pi-admin{width:38px;height:38px}}
