:root{--ink:#17304d;--muted:#617892;--blue:#246bb0;--line:#d4e3f0;--panel:#f9fcff;--orange:#ee8b59;--violet:#6b69db}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:'DM Sans',sans-serif;background:#133d6e}.contact-desktop{min-height:100vh;position:relative;display:grid;place-items:center;overflow:hidden;padding:36px 26px;background:linear-gradient(145deg,#5e9ece 0%,#2f70a5 43%,#153d6c 100%)}.sky-glow{position:absolute;inset:0;background:radial-gradient(circle at 70% 12%,#e5f7ff80 0 4%,transparent 26%),linear-gradient(#a9ddf533,#23689c00 55%)}.mountain{position:absolute;inset:auto -10% 0;width:120%;height:44%;clip-path:polygon(0 70%,11% 53%,18% 65%,31% 22%,43% 66%,55% 44%,65% 70%,78% 34%,89% 59%,100% 19%,100% 100%,0 100%)}.mountain-back{background:#2a6292aa;bottom:0}.mountain-front{height:30%;background:#123864dd;clip-path:polygon(0 71%,13% 49%,25% 69%,39% 28%,52% 70%,63% 49%,77% 72%,91% 37%,100% 60%,100% 100%,0 100%)}.desktop-back{position:absolute;z-index:1;top:24px;left:28px;display:grid;justify-items:center;gap:7px;color:#fff;text-decoration:none;font-size:12px;text-shadow:0 2px 4px #123}.desktop-back:hover .desktop-icon{background:#ffffff2b}.desktop-icon{display:grid;place-items:center;width:54px;height:45px;border:1px solid transparent;border-radius:9px;font-size:28px;color:#e2f2ff}.window-shell{position:relative;z-index:2;width:min(1080px,100%);max-height:calc(100vh - 58px);overflow:hidden;background:var(--panel);border:1px solid #ffffffb8;border-radius:15px;box-shadow:0 30px 90px #06295080,0 3px 0 #ffffff55;animation:window-in .5s cubic-bezier(.2,.8,.2,1)}.window-shell.min{width:min(360px,100%);max-height:48px}.window-shell.min .window-toolbar,.window-shell.min .window-content,.window-shell.min .window-statusbar{display:none}.contact-window-modal.min{place-items:end center;padding-bottom:76px}.contact-window-modal.min .contact-window-panel{width:min(360px,100%);max-height:48px;overflow:hidden}.contact-window-modal.min .window-shell{max-height:48px}.contact-window-modal.min .window-toolbar,.contact-window-modal.min .window-content,.contact-window-modal.min .window-statusbar{display:none}.window-toolbar{display:flex;align-items:center;gap:18px;height:42px;padding:0 22px;border-bottom:1px solid var(--line);background:#eef6fd;color:#416480;font-size:12px}.window-toolbar a{color:#1f609b;text-decoration:none;font-weight:700}.toolbar-path b{margin:0 8px;color:#9bb3c8}.toolbar-status{margin-left:auto;font-family:'IBM Plex Mono';font-size:10px}.toolbar-status i{display:inline-block;width:7px;height:7px;margin-right:5px;background:#36ae76;border-radius:50%}.window-content{padding:30px 34px 32px;overflow:auto;max-height:calc(100vh - 170px)}.page-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:27px}.eyebrow,.panel-kicker{margin:0 0 7px;color:#3980b9;font:600 10px 'IBM Plex Mono';letter-spacing:.14em;text-transform:uppercase}.page-intro h1{margin:0;color:#173859;font-size:clamp(2rem,4vw,3.35rem);line-height:.98;letter-spacing:-.065em}.page-intro h1 em{font-style:normal;color:#2a7abd}.intro-copy{max-width:520px;margin:15px 0 0;color:var(--muted);line-height:1.6;font-size:14px}.intro-badge{display:flex;align-items:center;gap:10px;min-width:150px;padding:12px 14px;border:1px solid #c5dced;background:#edf7ff;border-radius:11px;color:#346388;font-size:11px;line-height:1.35}.intro-badge b{color:#1f6095}.badge-orbit{display:grid;place-items:center;width:31px;height:31px;color:#ed8353;border:1px solid #f4ae87;border-radius:50%;font-size:16px}.contact-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px}.panel{padding:23px 24px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 8px 28px #326c9b0d}.professional-panel{border-top:3px solid #2877bb}.creative-panel{border-top:3px solid var(--orange);background:linear-gradient(150deg,#fff 0%,#fffdfb 70%,#fff5ed 100%)}.panel-heading{display:flex;align-items:center;gap:12px}.panel-number{font:600 14px 'IBM Plex Mono';color:#2878b8}.panel-number.accent{color:var(--orange)}.panel-heading h2{margin:0;font-size:18px;letter-spacing:-.025em}.panel-lead{margin:12px 0 21px;color:var(--muted);font-size:13px;line-height:1.55}.field{display:block;margin-bottom:14px;color:#315571;font-size:12px;font-weight:700}.field>span{display:block;margin-bottom:6px}.field b,.required-note b{color:#e8784d}.field input,.field textarea{width:100%;padding:11px 12px;border:1px solid #c9dce9;border-radius:7px;outline:none;color:var(--ink);background:#fbfdff;font:13px 'DM Sans';transition:border .18s,box-shadow .18s,background .18s}.field textarea{resize:vertical;min-height:110px}.field input::placeholder,.field textarea::placeholder{color:#9aadbd}.field input:focus,.field textarea:focus{border-color:#3884bf;background:#fff;box-shadow:0 0 0 3px #3884bf1c}.field.invalid input,.field.invalid textarea{border-color:#d96758;box-shadow:0 0 0 3px #d9675812}.field-error{display:block;min-height:0;margin-top:4px;color:#c65349;font-size:11px;font-weight:500}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:3px}.required-note{color:#8295a7;font-size:10px;font-weight:400}.win-button{display:inline-flex;align-items:center;gap:16px;padding:11px 15px;border:1px solid #1e6098;border-radius:7px;color:#fff;font:700 12px 'DM Sans';cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s}.win-button.primary{background:linear-gradient(135deg,#2879ba,#155e9b);box-shadow:0 5px 12px #206aa644}.win-button:hover{transform:translateY(-2px);box-shadow:0 8px 18px #206aa655}.win-button:active{transform:translateY(0)}.win-button b{font-size:17px;font-weight:400}.form-feedback{min-height:18px;margin:12px 0 0;color:#26815c;font-size:12px}.form-feedback.error{color:#bf5548}.social-list{display:grid;gap:10px;margin-top:24px}.social-card{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:12px;border:1px solid #e1e6ee;border-radius:10px;color:var(--ink);text-decoration:none;background:#fff;transition:transform .2s,box-shadow .2s,border-color .2s}.social-card:hover{transform:translateX(5px);box-shadow:0 8px 18px #31577a18}.social-card.linkedin:hover{border-color:#58a9d4}.social-card.github:hover{border-color:#8985e2}.social-card.mail:hover{border-color:#f0a47e}.social-symbol{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;color:#fff;font:700 16px 'IBM Plex Mono'}.linkedin .social-symbol{background:linear-gradient(140deg,#39a7ce,#1b5eaa)}.github .social-symbol{background:linear-gradient(140deg,#8075e4,#4b4aa1)}.mail .social-symbol{background:linear-gradient(140deg,#f6a46e,#e26b4e)}.social-copy{display:grid;gap:3px;min-width:0}.social-copy b{font-size:13px}.social-copy small{overflow:hidden;color:#7a8c9d;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.social-arrow{color:#8096aa;font-size:18px;transition:transform .2s}.social-card:hover .social-arrow{transform:translate(2px,-2px);color:#286fa9}.creative-note{display:flex;align-items:center;gap:9px;margin-top:22px;padding-top:17px;border-top:1px dashed #e1d2c6;color:#9b6c55;font-size:11px;line-height:1.4}.creative-note span{color:var(--orange);font-size:18px}.creative-note p{margin:0}.window-statusbar{display:flex;justify-content:space-between;gap:16px;padding:8px 18px;border-top:1px solid var(--line);background:#edf5fb;color:#6c8296;font:10px 'IBM Plex Mono'}.status-secure{color:#368066}@keyframes window-in{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@media(max-width:760px){.contact-desktop{padding:18px 10px 25px;display:block;overflow:auto}.desktop-back{top:10px;left:12px}.window-shell{margin:48px auto 0;max-height:none}.window-toolbar{padding:0 14px}.toolbar-path{display:none}.window-content{padding:24px 16px}.page-intro{display:block}.intro-badge{margin-top:18px;width:max-content}.contact-grid{grid-template-columns:1fr}.window-statusbar{font-size:9px}.window-statusbar span:nth-child(2){display:none}.panel{padding:20px 17px}.field-row{display:grid;grid-template-columns:1fr;gap:0}.page-intro h1{font-size:2.3rem}}
@media(max-width:390px){.form-footer{align-items:flex-start;flex-direction:column}.win-button{width:100%;justify-content:space-between}.window-statusbar{display:block}.status-secure{display:block;margin-top:4px}}
/* Carte « Site web » des liens de contact */
.social-card.web:hover{border-color:#6fcbb4}.social-card.web .social-symbol{background:linear-gradient(140deg,#58d6b2,#1f8a7d)}
