.idf-wrap{--navy:#132a50;--blue:#1689ca;--cyan:#40c5e4;--cream:#f4f8fb;--pink:#e85599;max-width:1180px;margin:0 auto;padding:18px 22px 70px;color:var(--navy);font-family:Arial,Helvetica,sans-serif}.idf-wrap *{box-sizing:border-box}.idf-top{display:flex;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid #dce8ef}.idf-brand{margin-right:auto;letter-spacing:.08em;font-size:13px;font-weight:700}.idf-brand strong{color:var(--blue)}.idf-top form{margin:0}.idf-link{border:0;background:none;color:var(--navy);cursor:pointer;text-decoration:underline}.idf-eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:800;color:var(--blue)}.idf-login{max-width:510px;margin:75px auto;background:#fff;border:1px solid #d9e7f0;border-radius:20px;padding:44px;box-shadow:0 20px 65px #132a5010}.idf-login h1,.idf-calendar h1{font-size:clamp(34px,5vw,56px);line-height:1.05;margin:14px 0}.idf-login p{line-height:1.65}.idf-login-form{display:grid;gap:16px;margin:30px 0}.idf-login-form label{font-weight:700;font-size:14px}.idf-login-form input{display:block;width:100%;padding:14px;border:1px solid #b9cfdf;border-radius:8px;margin-top:8px;background:#fff;color:#132a50}.idf-wrap button:not(.idf-link){background:var(--navy);color:white;border:0;border-radius:8px;padding:13px 20px;cursor:pointer;font-weight:700}.idf-wrap button:disabled{opacity:.45;cursor:not-allowed}.idf-login small,.idf-muted{color:#61758c}.idf-error{color:#a32735;background:#fff0f0;padding:10px;border-radius:8px}.idf-home{padding:85px 0 45px}.idf-season{display:flex;flex-direction:column;gap:15px;padding:65px 7%;margin-top:20px;background:linear-gradient(120deg,#102c58,#167ec2 70%,#49c5e3);color:#fff!important;border-radius:18px;text-decoration:none!important;box-shadow:0 20px 40px #123b6d28}.idf-season>span:first-child{font-size:17px;letter-spacing:.24em}.idf-season strong{font-size:clamp(36px,6vw,76px);line-height:1.05}.idf-season-arrow{margin-top:18px;font-size:15px;font-weight:700}.idf-panel{padding:25px 30px;background:#f5f9fc;border:1px solid #dceaf4;border-radius:16px;margin:30px 0}.idf-panel h2{margin:0 0 15px}.idf-packs{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.idf-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px;margin-top:20px}.idf-card{padding:18px;border:1px solid #c7dbea;border-radius:12px;background:white;min-height:115px;display:flex;flex-direction:column;justify-content:space-between}.idf-card small{color:#627c95}.idf-calendar{text-align:center;padding:45px 0 5px}.idf-calendar>p{max-width:620px;margin:0 auto 35px;line-height:1.5}.idf-tree{position:relative;max-width:660px;height:690px;margin:0 auto}.idf-tree-shape{position:absolute;inset:52px 25px 36px;background:linear-gradient(145deg,#22b6d7,#0777b6 50%,#123d81);clip-path:polygon(50% 0,85% 38%,73% 38%,96% 80%,82% 80%,100% 100%,0 100%,18% 80%,4% 80%,27% 38%,15% 38%);filter:drop-shadow(0 8px 12px #002b5640)}.idf-star{position:absolute;top:0;left:0;right:0;font-size:68px;line-height:1;color:#e4bb51;z-index:3}.idf-trunk{position:absolute;width:70px;height:34px;bottom:0;left:calc(50% - 35px);background:#174a70}.idf-ornaments{position:absolute;inset:0;z-index:2;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(5,1fr);align-items:center;justify-items:center;padding:110px 32px 30px}.idf-ornament{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none!important;color:white!important;min-width:0}.idf-ornament:nth-child(1){grid-column:3}.idf-ornament:nth-child(2){grid-column:4}.idf-ornament:nth-child(3){grid-column:2}.idf-ornament:nth-child(4){grid-column:3}.idf-ornament:nth-child(5){grid-column:4}.idf-ornament:nth-child(6){grid-column:5}.idf-ball{display:grid;place-items:center;width:59px;height:59px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffe8f3,#ed69aa 50%,#a82069);border:3px solid #ffe3f3;box-shadow:0 5px 12px #001e3e5c;font-size:23px;font-weight:800}.idf-ornament:nth-child(3n) .idf-ball{background:radial-gradient(circle at 30% 25%,#e1f9ff,#53d1ef 50%,#006b9d);border-color:#d6f8ff}.idf-ornament:nth-child(4n) .idf-ball{background:radial-gradient(circle at 30% 25%,#fff5cb,#edc66b 50%,#b17a19);border-color:#fff3cb}.idf-ornament.is-locked{opacity:.55}.idf-ornament.is-open .idf-ball{transition:transform .2s}.idf-ornament.is-open[href]:hover .idf-ball{transform:scale(1.12)}.idf-ornament small{font-size:10px;color:#fff;text-shadow:0 1px 3px #001f3d;font-weight:700;margin-top:4px}.idf-ranking{width:100%;border-collapse:collapse}.idf-ranking th,.idf-ranking td{padding:12px;border-bottom:1px solid #d6e4ef;text-align:left}.idf-ranking th{font-size:12px;text-transform:uppercase}@media(max-width:650px){.idf-wrap{padding:12px}.idf-login{padding:25px;margin:30px auto}.idf-tree{height:530px}.idf-ornaments{padding:90px 10px 25px}.idf-tree-shape{inset:48px 0 25px}.idf-ball{width:43px;height:43px;font-size:17px}.idf-ornament small{font-size:8px}.idf-star{font-size:55px}.idf-panel{padding:18px}.idf-season{padding:45px 25px}}
/* Saison 1: sapin illustré et ornements positionnés librement */
.idf-top .idf-nav-tcg{color:#087fbb;font-weight:800;text-decoration:none;border:1px solid #b6d9e8;border-radius:20px;padding:7px 13px;font-size:13px}
.idf-winter-scene{position:relative;max-width:780px;height:830px;margin:12px auto 0;overflow:hidden;border-radius:30px;background:radial-gradient(ellipse at 50% 32%,#244f85 0%,#102c59 60%,#081c3a 100%);box-shadow:inset 0 0 100px #06162c,0 20px 40px #132a501b}
.idf-winter-scene:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#e5faff 1.4px,transparent 1.7px),radial-gradient(#d5efff 1px,transparent 1.4px);background-size:83px 97px,129px 109px;background-position:13px 22px,60px 48px;opacity:.55}
.idf-winter-scene:after{content:"";position:absolute;bottom:-44px;left:-8%;width:116%;height:135px;background:#d4effb;border-radius:50% 50% 0 0;box-shadow:0 -14px 40px #b9e8fa50}
.idf-tree{position:relative;max-width:680px;width:94%;height:770px;margin:0 auto;filter:drop-shadow(0 15px 22px #03152890)}
.idf-tree-layer{position:absolute;left:50%;transform:translateX(-50%);background:linear-gradient(115deg,#0d7e9b 5%,#10a8c6 35%,#076b98 63%,#064777 90%);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 8px 5px #001d39);border-radius:12px}
.idf-tree .layer-1{top:80px;width:42%;height:215px}.idf-tree .layer-2{top:180px;width:62%;height:250px;background:linear-gradient(110deg,#087b9e,#0b9fc3 40%,#075787 90%)}.idf-tree .layer-3{top:300px;width:82%;height:280px}.idf-tree .layer-4{top:430px;width:100%;height:295px;background:linear-gradient(105deg,#086e95,#0b8ab4 40%,#053d6c 90%)}
.idf-star{position:absolute;top:13px;left:50%;transform:translateX(-50%);z-index:6;font-size:94px;color:#ffe19a;text-shadow:0 0 14px #ffd976,0 0 37px #f8bf54,0 0 65px #fff2ae}
.idf-garland{position:absolute;z-index:3;left:50%;transform:translateX(-50%) rotate(-5deg);height:70px;border-bottom:8px dotted #f8d887;border-radius:0 0 50% 50%;filter:drop-shadow(0 0 7px #fff3ad);pointer-events:none}.garland-1{top:255px;width:42%}.garland-2{top:400px;width:67%;transform:translateX(-50%) rotate(7deg)}.garland-3{top:558px;width:88%}
.idf-trunk{position:absolute;bottom:8px;left:calc(50% - 42px);width:84px;height:85px;background:linear-gradient(90deg,#4d3153,#896049,#4d3153);z-index:0;border-radius:6px}.idf-tree-base{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:78%;height:15px;border-radius:50%;background:#9bd6e9;z-index:2}
.idf-ornaments{position:absolute;inset:0;padding:0;display:block;z-index:5}
.idf-ornament,.idf-ornament:nth-child(n){position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:block;min-width:0;text-decoration:none!important;opacity:1;z-index:5}
.idf-ornament .idf-ball{position:relative;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;font-size:21px;font-weight:900;color:#fff;border:2px solid #e9faff;background:radial-gradient(circle at 30% 22%,#e4f9ff,#35b6e3 34%,#1266a8 75%,#0b3265);box-shadow:inset -6px -8px 9px #06285180,inset 3px 4px 6px #ffffff80,0 5px 10px #061b3d90;text-shadow:0 1px 3px #032348}
.idf-ornament .idf-ball:before{content:"";position:absolute;top:-9px;width:17px;height:9px;border:2px solid #e3d18a;background:linear-gradient(90deg,#ad8b47,#f5e3a1,#b58d46);border-radius:4px 4px 1px 1px}
.idf-ornament:nth-child(3n) .idf-ball{background:radial-gradient(circle at 28% 22%,#ffeaf5,#e95da7 42%,#8f246c 85%);border-color:#ffe2f3}
.idf-ornament:nth-child(4n) .idf-ball{background:radial-gradient(circle at 28% 22%,#fff8ce,#f5cb5e 42%,#ad7925 85%);border-color:#fff1bd}
.idf-ornament:nth-child(7n) .idf-ball{background:radial-gradient(circle at 28% 22%,#f2ffff,#8ee4e6 42%,#1a7898 85%)}
.idf-ornament.is-locked{opacity:.75}.idf-ornament.is-locked .idf-ball{filter:saturate(.55)}.idf-ornament.is-done .idf-ball{outline:3px solid #b5f5a2;outline-offset:2px}.idf-ornament.is-open[href]:hover .idf-ball,.idf-ornament.is-open[href]:focus-visible .idf-ball{transform:scale(1.2);box-shadow:0 0 25px #f6d981,inset -6px -8px 9px #06285180}.idf-ornament .idf-ball{transition:transform .2s,box-shadow .2s}
.idf-secret{max-width:680px;margin:20px auto 35px;padding:25px;border:1px solid #cce3f1;border-radius:17px;background:#f5faff;text-align:left}.idf-secret h2{margin:0 0 15px;font-size:23px}.idf-secret label{display:block;font-weight:700;font-size:13px;margin-bottom:7px}.idf-secret-row{display:flex;gap:10px}.idf-secret input{flex:1;min-width:0;padding:12px;border:1px solid #aacbdc;border-radius:9px;font-size:16px}.idf-code-feedback{padding:12px;background:#e1f2fa;border-radius:8px}
@media(max-width:650px){.idf-winter-scene{height:610px;border-radius:18px}.idf-tree{height:575px;width:98%}.idf-tree .layer-1{top:66px;height:145px}.idf-tree .layer-2{top:145px;height:175px}.idf-tree .layer-3{top:236px;height:210px}.idf-tree .layer-4{top:330px;height:215px}.idf-star{top:10px;font-size:65px}.idf-garland{border-bottom-width:5px;height:45px}.garland-1{top:195px}.garland-2{top:303px}.garland-3{top:430px}.idf-trunk{height:65px;width:58px;left:calc(50% - 29px)}.idf-ornament .idf-ball{width:36px;height:36px;font-size:15px}.idf-ornament .idf-ball:before{width:12px;height:7px;top:-7px}.idf-secret-row{flex-direction:column}.idf-top{flex-wrap:wrap;gap:10px}.idf-top .idf-nav-tcg{order:3}}
@media(prefers-reduced-motion:reduce){.idf-ornament .idf-ball{transition:none}}
