:root{--felt:#183e58;--felt-dark:#102d42;--paper:#f1f5f8;--ink:#132d40;--muted:#516b7d;--line:#cbdce6;--honey:#efb951;--mist:#dce8ef;--white:#fff;--red:#a43c45;font-family:'Segoe UI',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.55}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b5700a;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.13;letter-spacing:-.035em}h1{font-size:clamp(2.5rem,6.6vw,5.6rem);font-weight:650;margin-bottom:1.5rem}h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:650}h3{font-size:1.4rem}p{margin-bottom:1rem}em{font-family:Georgia,serif;font-weight:400}small{font-size:.82rem}main{min-height:75vh}.site-header{max-width:1220px;margin:auto;padding:27px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;font-size:1.25rem;font-weight:750;letter-spacing:-.04em}.brand:first-letter{color:var(--honey)}.header-note{color:var(--muted);font-size:.85rem}.skip{position:absolute;left:16px;top:-100px;background:#fff;padding:10px;z-index:10}.skip:focus{top:0}.hero{max-width:1220px;margin:auto;display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center;padding:80px 40px 70px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:750;color:var(--muted);margin-bottom:20px}.lead{font-size:1.15rem;line-height:1.75;max-width:540px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:var(--felt);color:#fff;border:1px solid var(--felt);border-radius:8px;padding:13px 21px;text-decoration:none;font-weight:650;min-height:48px;transition:background .15s,transform .15s}.button:hover:not(:disabled){background:var(--felt-dark);transform:translateY(-1px)}.button:disabled{opacity:.5}.button.secondary{background:transparent;color:var(--felt)}.text-link{display:inline-block;margin:16px 14px 16px 0;text-decoration:underline;text-underline-offset:5px;font-size:.9rem;color:var(--muted)}.hero .text-link{display:block}.card-fan{position:relative;height:365px;margin:20px 0}.fan-card{position:absolute;border:1px solid #c3d5df;width:180px;height:260px;border-radius:14px;box-shadow:0 16px 25px #14364d1c;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;left:30%;top:20px}.fan-card small{position:absolute;left:16px;top:10px;font:30px Georgia,serif}.fan-card span{font:90px Georgia,serif}.fan-card b{font:italic 22px Georgia,serif}.fan-card.back{transform:translateX(-80px) rotate(-22deg);background:repeating-linear-gradient(45deg,#183e58,#183e58 8px,#254d67 8px,#254d67 9px);color:var(--honey);font-size:70px;border:7px solid #fff}.fan-card.queen{transform:rotate(-5deg);background:#e7edf5;color:#314168}.fan-card.guard{transform:translate(90px,22px) rotate(17deg);background:#fff6df;color:#70501b}.card-fan>p{position:absolute;bottom:0;width:100%;text-align:center;font:italic 1rem Georgia,serif;color:var(--muted)}.section{max-width:1220px;padding:40px;margin:0 auto}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.section-title h2{margin:0}.section-title>span{font-size:.8rem;color:var(--muted)}.game-feature{display:grid;grid-template-columns:240px 1fr;text-decoration:none;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.game-feature>div:last-child{padding:34px 38px}.game-feature h3{font-size:2.4rem;margin:0 0 12px}.game-feature strong{display:inline-block;margin-top:25px}.game-feature:hover{border-color:#6d8d9f}.game-art{background:var(--felt);color:var(--honey);font:4rem Georgia,serif;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;line-height:1.1}.game-art span{font:italic 2.5rem Georgia,serif;text-align:center;margin-top:15px;color:#fff}.meta{display:flex;flex-wrap:wrap;gap:8px}.meta span,.badge{font-size:.76rem;display:inline-block;background:var(--mist);color:var(--felt);padding:4px 9px;border-radius:5px;font-weight:600}.future-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.future-grid>div{border-top:1px solid var(--line);padding:24px 0}.future-grid h3{margin-bottom:10px;font-size:1.5rem}.future-grid p{font-size:.85rem;color:var(--muted)}.future-grid .badge{background:transparent;border:1px solid var(--line);color:var(--muted)}footer{max-width:1140px;margin:60px auto 0;border-top:1px solid var(--line);padding:25px 20px 35px;font-size:.8rem;color:var(--muted)}.narrow{max-width:860px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px;margin-bottom:22px}.panel h2{font-size:1.4rem}.panel p:last-child{margin-bottom:0}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.form-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-top:65px;align-items:start}.form-layout h1{font-size:clamp(2.8rem,5vw,4.4rem)}.form-panel{padding:32px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:20px}.field label,.field>span{font-size:.9rem;font-weight:650}.field input,.field select{width:100%;min-width:0;background:#f8fafb;border:1px solid #adc4d2;border-radius:6px;padding:11px 12px;min-height:46px;color:var(--ink)}.field small{color:var(--muted);line-height:1.5}.errorlist{list-style:none;margin:0 0 14px;padding:10px 12px;background:#fcebed;color:var(--red);border-radius:5px;font-size:.85rem}.field .errorlist{margin:0}.muted{color:var(--muted);font-size:.9rem}.text-button{border:0;background:transparent;color:var(--felt);text-decoration:underline;text-underline-offset:4px;padding:6px 0;font-size:.85rem}.table-page{max-width:1220px;margin:auto;padding:35px 40px}.table-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.table-heading h1{font-size:2.3rem;margin-bottom:4px;overflow-wrap:anywhere}.table-heading .eyebrow{margin-bottom:8px}.invite{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.invite>span{font-size:.7rem;color:var(--muted)}.invite strong{font:700 1.25rem Consolas,monospace;letter-spacing:.12em}.connection{font-size:.8rem;color:var(--muted);min-height:24px;margin:18px 0}.connection:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#3c8a70;margin-right:8px}.connection.is-error{color:var(--red)}.connection.is-error:before{background:var(--red)}.lobby{max-width:720px;margin:30px auto;padding:35px}.lobby h2{font-size:2rem}.lobby-players{display:grid;gap:10px;margin:25px 0}.lobby-person{display:flex;align-items:center;gap:12px;background:var(--paper);border-radius:8px;padding:12px}.lobby-person strong{flex:1;overflow-wrap:anywhere}.player-avatar{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--mist);color:var(--felt);border-radius:50%;font-weight:700}.hint{font-size:.85rem;color:var(--muted);margin:16px 0 0}.room-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:30px;gap:14px}.table-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 22px;font-size:.8rem;color:var(--muted);margin:20px 0}.felt{background:var(--felt);color:#fff;border-radius:18px;padding:28px}.turn-heading h2{font-size:1.65rem;margin-bottom:10px}.turn-heading p{font-size:.9rem;color:#c8dce9}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:25px}.player{padding:16px 12px;background:#ffffff0b;border:1px solid #ffffff25;border-radius:10px;min-width:0}.player.active{border-color:var(--honey);background:#ffffff12}.player.eliminated{opacity:.6}.player .player-avatar{background:#dce8ef20;color:#fff}.player h3{font-size:1rem;letter-spacing:0;line-height:1.4;overflow-wrap:anywhere;margin:10px 0 4px}.player p{margin:0 0 8px;font-size:.8rem}.player .score{color:var(--honey);font-weight:700}.player-state{color:#ccdde7}.discard{display:flex;gap:5px;flex-wrap:wrap;min-height:28px}.discard span{display:flex;align-items:center;justify-content:center;width:23px;height:30px;background:#edf3f8;color:var(--felt);border-radius:3px;font-weight:700;font-size:.85rem}.discard small{color:#b9d0df;font-size:.68rem}.revealed{margin-top:12px!important;color:#ffe5ac}.aside-cards{font-size:.75rem;color:var(--muted);margin:14px 0}.hand-panel{padding:28px 0}.hand-panel h2{font-size:1.5rem;margin-bottom:6px}.hand{display:flex;gap:16px;align-items:stretch;margin-top:20px;flex-wrap:wrap}.playing-card{position:relative;width:185px;min-height:260px;border:1px solid #b3c8d6;border-radius:12px;display:flex;align-items:center;flex-direction:column;padding:20px 14px 18px;color:var(--ink);background:#fff;box-shadow:0 5px 12px #102d4208;text-align:center;transition:transform .15s,border-color .15s}.playing-card:not(:disabled):hover{transform:translateY(-5px)}.playing-card.selected{border:3px solid #ba7d1e;padding:18px 12px 16px;background:#fff9e9;transform:translateY(-5px)}.playing-card:disabled{cursor:default;opacity:1}.card-rank{position:absolute;left:13px;top:7px;font:1.6rem Georgia,serif}.card-symbol{font:3.6rem Georgia,serif;color:var(--felt);margin:10px 0}.playing-card strong{font:1.3rem Georgia,serif}.card-description{font-size:.72rem;line-height:1.5;color:var(--muted);margin-top:12px}.action-panel{margin-top:24px;padding:22px;background:#e2ebf2;border-radius:10px;max-width:650px}.action-panel h3{font-size:1.15rem}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.details-grid .panel{min-width:0}.journal{padding-left:20px;margin:0;max-height:320px;overflow:auto}.journal li{font-size:.8rem;padding:7px 0;border-bottom:1px solid #e4edf2}.secret-entry{padding:9px;background:var(--paper);border-radius:5px;font-size:.85rem;overflow-wrap:anywhere}.card-help summary{cursor:pointer;font-weight:650}.help-row{padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.help-row strong{font-size:.95rem}.help-row p{font-size:.85rem;color:var(--muted);margin-top:7px}.result{background:#fff6df;border-color:#e5c57d;margin-top:22px}.result h2{font:italic 2rem Georgia,serif;overflow-wrap:anywhere}.error{color:var(--red)}[hidden]{display:none!important}@media(min-width:1000px){.players:has(.player:nth-child(5)){grid-template-columns:repeat(3,1fr)}}@media(max-width:750px){.site-header{padding:20px 22px}.header-note{display:none}.hero{grid-template-columns:1fr;padding:44px 22px 20px;gap:0}.hero h1{font-size:3.8rem}.lead{font-size:1rem}.card-fan{height:290px;margin:15px 0 0}.fan-card{width:140px;height:205px;left:33%}.fan-card span{font-size:65px}.fan-card b{font-size:18px}.fan-card.back{transform:translateX(-65px) rotate(-22deg)}.fan-card.guard{transform:translate(70px,18px) rotate(17deg)}.section{padding:28px 22px}.section-title{align-items:flex-start}.section-title>span{font-size:.7rem;white-space:nowrap}.section-title h2{font-size:1.5rem}.game-feature{grid-template-columns:100px 1fr}.game-feature>div:last-child{padding:20px}.game-feature h3{font-size:1.7rem}.game-feature .eyebrow{font-size:.6rem;margin-bottom:10px}.game-feature p{font-size:.85rem}.game-feature strong{font-size:.85rem;margin-top:18px}.game-art{padding:15px;font-size:3rem}.game-art span{font-size:1.5rem}.meta span{font-size:.65rem;padding:3px 6px}.future-grid{grid-template-columns:repeat(2,1fr);gap:15px}.future-grid h3{font-size:1.3rem}.form-layout{grid-template-columns:1fr;gap:15px}.form-layout h1{font-size:3rem;margin-bottom:15px}.form-panel{padding:24px}.table-page{padding:24px 16px}.table-heading{align-items:flex-start;gap:10px}.table-heading h1{font-size:1.65rem}.table-heading .eyebrow{font-size:.65rem}.invite strong{font-size:.95rem;letter-spacing:.08em}.invite .text-button{font-size:.7rem}.lobby{padding:24px}.lobby h2{font-size:1.65rem}.felt{padding:20px 14px}.players{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.player{padding:12px}.details-grid{grid-template-columns:1fr;gap:0}.panel{padding:22px}.hand{gap:10px}.playing-card{width:calc(50% - 5px);max-width:185px;min-height:255px;padding:20px 11px 14px}.playing-card.selected{padding:18px 9px 12px}.card-description{font-size:.7rem}.card-symbol{font-size:3rem}.hand-panel h2{font-size:1.35rem}.table-summary{font-size:.7rem;gap:10px}.room-bottom{align-items:flex-start}.room-bottom .text-button{font-size:.72rem}.action-panel{padding:18px}.action-panel .button{width:100%;font-size:.85rem}.turn-heading h2{font-size:1.4rem}footer{margin-top:30px;font-size:.7rem}.card-fan>p{font-size:.9rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:450px){.card-fan{overflow:clip}.fan-card{left:25%}}
.room-directory{display:grid;gap:14px}.room-list-item{display:flex;justify-content:space-between;align-items:center;gap:22px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 26px}.room-list-name{min-width:0}.room-list-name h3{margin:0 0 10px;overflow-wrap:anywhere}.room-list-name .eyebrow{margin-bottom:10px;font-size:.65rem}.room-list-name p:last-child{margin:0}.room-list-access{display:flex;flex-direction:column;gap:12px;align-items:flex-end;flex-shrink:0}.room-unavailable{font-size:.85rem;color:var(--muted)}.directory-filters{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:26px 0}.directory-filters label{font-weight:650;font-size:.85rem}.directory-filters select{padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);min-height:48px}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:24px;font-size:.85rem}@media(max-width:600px){.room-list-item{align-items:flex-start;flex-direction:column;padding:20px}.room-list-access{flex-direction:row;align-items:center;justify-content:space-between;width:100%;flex-wrap:wrap}.room-list-access .button{font-size:.8rem;padding:10px 14px}.directory-filters{gap:10px}.directory-filters select{flex:1;min-width:120px}.directory-filters .button{width:100%}.pagination{gap:12px}}
.button.danger{background:#923d48;border-color:#923d48;color:#fff}.button.danger:hover:not(:disabled){background:#782f3a}.danger-text{color:#923d48}.management-title{font-size:clamp(2rem,5vw,3.2rem)}.room-bottom{flex-wrap:wrap}.flash-message{max-width:1140px;margin:20px auto;padding:16px 22px;background:#e0efe8;color:#234e40;border:1px solid #b2d7c6;border-radius:8px;font-size:.9rem}
/* Cabinet de jeux : papier, sceaux et reliures. Les tables ont leur propre thème. */
:root{--felt:#581f32;--felt-dark:#3e1929;--paper:#f7f1e7;--ink:#332731;--muted:#76676b;--line:#dfd1bf;--honey:#d6ae63;--mist:#eee2ce;--red:#9c3548;background:var(--paper)}h1{font-family:Georgia,serif;font-weight:400;letter-spacing:-.055em}h2{letter-spacing:-.025em}.site-header{padding-top:17px;padding-bottom:17px}.brand{font-family:Georgia,serif;font-size:1.3rem;font-weight:700;color:#581f32}.hero{padding-top:65px;padding-bottom:40px}.hero h1{font-size:clamp(3.6rem,7vw,6.2rem);line-height:.98}.hero h1 em{color:#723348}.hero .eyebrow{color:#956c3f}.button{border-radius:5px}.button.secondary{border-color:#c7aa80}.panel{border-color:#d8c8b1;background:#fffdf7}.game-feature{border-radius:10px;background:#fffdf7}.game-art{position:relative;min-height:260px;background:#244e43;color:#e8d19a;overflow:hidden;isolation:isolate}.game-art:before{content:'';position:absolute;inset:20px 40px;background:url('/static/games/love-letter/art/9.svg') center/cover;border:4px solid #d3b574;border-radius:8px;transform:rotate(-9deg);z-index:-1;opacity:.85}.game-art span{position:relative;background:#581f32eb;padding:8px 20px;border:1px solid #d9b979;font-size:2rem;text-shadow:0 2px 5px #0005}.game-art{font-size:0}.fan-card.queen{background:#f2e4bd url('/static/games/love-letter/art/9.svg') center/cover}.fan-card.guard{background:#f2e4bd url('/static/games/love-letter/art/1.svg') center/cover}.fan-card.queen span,.fan-card.guard span{opacity:0}.fan-card.queen b,.fan-card.guard b{position:absolute;bottom:0;width:100%;padding:10px;background:#f2e4bde8;text-align:center;border-top:1px solid #aa8958}.fan-card.back{background:repeating-linear-gradient(45deg,#581f32 0 7px,#743348 7px 8px);border-color:#eadab9}.fan-card{border:3px solid #c6a66c;box-shadow:0 16px 25px #4f263323}.fan-card small{background:#f2e4bd;padding:3px 8px;left:8px;top:5px;color:#4c2d35;font-weight:700}.future-grid>div{border-top-color:#cdbb9e}.badge{background:#eee1c9;color:#65412f}.room-list-item{background:#fffdf7;border-color:#dfd1bf}.playing-card{background:#fffdf7}.flash-message{background:#e8eddf;color:#3d513d}.lobby-person{background:#f2eadc}.lobby .player-avatar{background:#e8d8bb;color:#581f32}.lobby{box-shadow:0 15px 60px #5d3a2110}.lobby h2{font-family:Georgia,serif;font-weight:400;font-size:2.2rem}@media(max-width:750px){.hero{padding-top:40px}.hero h1{font-size:3.8rem}.game-art:before{inset:20px 6px}.game-art span{font-size:1.3rem;padding:6px 10px}.game-art{min-height:220px}.fan-card.queen b,.fan-card.guard b{padding:8px}}
