:root{color:#111;font-synthesis:none;--blue:#087bff;--muted:#686868;--line:#e8e8e8;--header-height:52px;background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.55}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit;cursor:pointer}button,a,input{-webkit-tap-highlight-color:transparent}button:disabled,input:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--blue);outline-offset:4px;box-shadow:0 0 18px #087bff26}h1:focus{outline:none}button:not(:disabled):hover,.primary-action:hover{box-shadow:0 0 20px #087bff1f}p,h1,h2,h3,figure{margin:0}.icon-library{width:0;height:0;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:20px;height:20px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:10;height:var(--header-height);border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:27px;padding:0 28px;display:flex;position:sticky;top:0}.brand{place-items:center;width:36px;height:36px;display:grid}.brand img{object-fit:contain;filter:drop-shadow(0 0 5px #087bff40)}.release-link{color:#555;text-underline-offset:3px;white-space:nowrap;flex-shrink:0;font-size:11px;text-decoration:underline}.release-link:hover{color:var(--blue)}nav{align-items:center;gap:7px;display:flex}nav a{border:1px solid #0000;border-radius:6px;padding:8px 14px;font-size:13px;line-height:1}nav a[aria-current=page]{border-color:#111}nav a:hover{color:var(--blue);box-shadow:0 0 15px #087bff12}.header-name{letter-spacing:.2em;color:#888;margin-left:auto;font-size:10px;font-weight:650}.eyebrow{letter-spacing:.18em;color:var(--muted);font-size:10px;font-weight:600}.blue-dot{color:var(--blue)}.home-page{min-height:calc(100dvh - var(--header-height));grid-template-columns:1.2fr 1fr;align-items:center;column-gap:50px;max-width:1160px;margin:auto;padding:80px 48px 30px;display:grid}.hero-copy h1{letter-spacing:-.065em;margin-top:20px;font-size:clamp(56px,6.5vw,88px);font-weight:650;line-height:1.15}.hero-lead{letter-spacing:-.04em;margin:20px 0;font-size:clamp(25px,3vw,36px);line-height:1.25}.hero-description{max-width:450px;color:var(--muted);font-size:14px;line-height:1.8}.hero-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px;display:flex}.primary-action{color:#fff;background:#111;border:1px solid #111;border-radius:6px;justify-content:center;align-items:center;gap:24px;padding:13px 19px;font-size:13px;display:inline-flex}.text-link{text-underline-offset:4px;font-size:12px}.text-link:hover{color:var(--blue);text-decoration:underline}.hero-note{color:#888;margin-top:20px;font-size:11px}.hero-mascot{text-align:center}.hero-mascot img{filter:drop-shadow(0 0 32px #087bff1a);width:100%;max-width:340px;height:auto}.hero-mascot figcaption{color:#999;justify-content:center;align-items:center;gap:12px;margin-top:16px;font-size:11px;display:flex}.mascot-name{color:#111;font-size:14px;font-weight:600}.home-footer{color:#999;letter-spacing:.04em;grid-column:1/-1;align-self:end;padding-top:70px;font-size:10px}body[data-page=jeu]{height:100dvh;overflow:hidden}body[data-page=jeu] main,.game-page{height:calc(100dvh - var(--header-height))}.game-layout{height:100%;display:flex;position:relative;overflow:hidden}.grid-stage{flex:1;min-width:0;height:100%;position:relative}canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}canvas.dragging{cursor:grabbing}.sidebar{flex:0 0 var(--panel-width,28vw);width:var(--panel-width,28vw);background:#fff;grid-template-columns:14px minmax(0,1fr);height:100%;display:grid}.sidebar.is-collapsed{flex-basis:14px;width:14px}.panel-handle{border:0;cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none;background:#fafafa;border-inline:1px solid #e5e5e5;flex-direction:column;justify-content:center;align-items:center;gap:14px;width:14px;min-width:14px;padding:0;display:flex}.panel-handle:hover,.is-resizing .panel-handle{color:var(--blue);background:#f0f6ff;box-shadow:inset 0 0 10px #087bff12}.panel-handle:focus-visible{outline-offset:-2px}.panel-handle .icon{width:12px;height:12px}.handle-grip{color:#999;font-size:16px;line-height:1}.handle-arrows{font-size:13px}.is-collapsed .handle-chevron{transform:rotate(180deg)}aside{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden;container-type:inline-size}.panel-heading{padding:16px 24px 12px}.panel-heading .eyebrow{letter-spacing:.12em;font-size:8px}.panel-heading h2{letter-spacing:-.04em;margin-top:6px;font-size:25px;font-weight:550}.options-scroll{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;padding:12px 24px;overflow-y:auto}.options-scroll h3{margin-bottom:9px;font-size:11px;font-weight:600}.fixed-controls{flex:none;min-width:0}.display-controls,.view-controls{border-top:1px solid var(--line);padding:12px 24px}.grid-mode-row{align-items:center;gap:10px;font-size:11px;display:flex}.grid-mode-row select{color:#111;width:100%;min-width:0;height:30px;font:inherit;background:#fff;border:1px solid #ddd;border-radius:4px;flex:1;padding:0 5px}.display-toggles{flex-wrap:wrap;gap:8px 14px;margin-top:10px;display:flex}.framing-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.framing-buttons button{touch-action:manipulation;flex-direction:column;gap:5px;min-width:0;padding:8px 3px;font-size:10px;line-height:1.3}.framing-buttons button[aria-pressed=true]{color:var(--blue);border-color:var(--blue);background:#edf5ff}.view-controls input{margin:7px 0 12px}.view-error{z-index:4;border:1px solid var(--blue);background:#fff;max-width:min(400px,100% - 24px);padding:10px 14px;font-size:12px;position:absolute;bottom:12px;left:12px}.zoom-label{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}output{color:#777;white-space:nowrap;font-size:10px}input[type=range]{width:100%;accent-color:var(--blue);height:14px;margin:14px 0 8px;display:block}.secondary-action{background:#fff;border:1px solid #ddd;border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:9px 10px;font-size:11px;display:inline-flex}.secondary-action .icon{width:15px;height:15px}.check-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:10px;display:flex}.check-row input{width:14px;height:14px;accent-color:var(--blue);flex-shrink:0;margin:0}.simulation-controls{border-top:1px solid var(--line);background:#fff;flex:none;padding:12px 24px}.simulation-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;display:flex}.simulation-heading h3{font-size:12px;font-weight:600}.speed-label{color:#888;font-size:10px}.simulation-controls input{margin:5px 0 8px}.transport{gap:8px;display:flex}.transport button{color:#999;background:#f3f3f3;border:1px solid #e5e5e5;border-radius:5px;justify-content:center;align-items:center;gap:8px;min-width:32px;padding:7px;font-size:11px;display:flex}.transport-play{flex:1}.transport .icon{width:16px;height:16px}.simulation-controls p{color:#999;margin-top:5px;font-size:9px}.floating-play{color:#888;background:#ffffffed;border:1px solid #ddd;border-radius:7px;place-items:center;width:56px;height:56px;display:grid;position:absolute;bottom:20px;right:20px;box-shadow:0 0 16px #087bff15}.floating-play .icon{width:26px;height:26px}.help-page{max-width:820px;margin:auto;padding:65px 40px 50px}.help-page h1{letter-spacing:-.045em;margin:18px 0 20px;font-size:clamp(32px,4.5vw,48px);font-weight:550;line-height:1.15}.help-intro{color:#777;max-width:500px;font-size:14px}.help-sections{margin-top:44px}.help-sections section{border-top:1px solid var(--line);gap:25px;padding:22px 0;display:flex}.help-number{color:var(--blue);padding-top:4px;font-size:10px}.help-sections h2{margin-bottom:7px;font-size:14px;font-weight:600}.help-sections p{color:#777;font-size:12px;line-height:1.8}.help-ending{margin-top:22px}.help-ending p{color:#999;margin-top:17px;font-size:10px}@container (width<=220px){.panel-heading{padding-inline:12px}.panel-heading .eyebrow{display:none}.options-scroll,.display-controls,.view-controls,.simulation-controls{padding-inline:12px}.check-row{overflow-wrap:anywhere;gap:6px}.simulation-heading{flex-wrap:wrap}.transport-play span{display:none}.grid-mode-row{flex-direction:column;align-items:stretch;gap:4px}}@container (width<=280px){.framing-label{display:none}.framing-buttons button{height:36px}}@media (height<=600px){.panel-heading{padding-block:7px}.panel-heading .eyebrow{display:none}.panel-heading h2{margin:0;font-size:20px}.options-scroll,.display-controls,.view-controls,.simulation-controls{padding-block:7px}.framing-label{display:none}.framing-buttons button{height:32px;padding-block:4px}.display-toggles{gap:5px 10px;margin-top:6px}.view-controls input{margin:4px 0 7px}.simulation-heading{margin-bottom:3px}.simulation-controls input{margin:3px 0 5px}.transport button{padding-block:5px}}@media (width<=767px){.site-header{gap:14px;padding:0 14px}nav{gap:3px}nav a{padding:8px 11px;font-size:12px}.header-name{letter-spacing:.1em;font-size:8px}.home-page{grid-template-columns:1fr;row-gap:30px;padding:44px 28px 24px}.hero-copy h1{margin-top:15px}.hero-lead{font-size:29px}.hero-description{font-size:13px}.hero-actions{gap:18px;margin-top:25px}.hero-note{margin-top:16px}.hero-mascot img{max-width:210px}.hero-mascot figcaption{margin-top:2px}.home-footer{padding-top:5px}.sidebar{z-index:2;width:min(88vw,400px);position:absolute;top:0;right:0}.sidebar:not(.is-collapsed){box-shadow:-12px 0 30px #0000000a}.sidebar.is-collapsed{width:14px}.panel-handle{cursor:pointer}.handle-arrows{display:none}.help-page{padding:40px 28px}.help-page h1{font-size:35px}.help-sections section{gap:20px}}@media (prefers-reduced-motion:no-preference){a,button{transition:box-shadow .12s}}.options-scroll fieldset{border:0;min-width:0;margin:0;padding:0}.options-scroll label{margin-block:8px 4px;font-size:11px;display:block}.options-scroll .check-row{display:flex}.options-scroll select,.options-scroll input[type=number],.simulation-controls select{width:100%;min-width:0;max-width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #ccc;border-radius:4px;padding:5px}.options-scroll p{color:#555;overflow-wrap:anywhere;margin-block:6px 12px;font-size:11px;line-height:1.5}#target-form{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.target-presets{flex-wrap:wrap;gap:4px;margin-block:6px;display:flex}.target-presets button,#reach-target,.cancel-calculation{font:inherit;color:#222;background:#fff;border:1px solid #ccc;border-radius:4px;padding:5px;font-size:11px}#reach-target{width:100%}.simulation-heading{flex-wrap:wrap}#simulation-status{overflow-wrap:anywhere;font-size:10px}.simulation-counts{flex-wrap:wrap;gap:3px 12px;font-size:10px;display:flex}.simulation-counts output{font-weight:650}#displayed-step:empty,#simulation-error:empty,#rules-notice:empty,#target-error:empty,#rules-lock:empty{display:none}#simulation-error,#target-error{color:#a12525;overflow-wrap:anywhere}#rules-lock{color:#333}#target-progress{width:100%;height:8px;margin-block:4px;display:block}.simulation-controls select{margin-block:3px 6px;padding:3px;font-size:11px}.transport button{color:#111;background:#fff}.transport button:disabled,.cancel-calculation:disabled{color:#888}.cancel-calculation{width:100%;margin-top:5px}#simulation-note{line-height:1.3}canvas:focus-visible{outline:2px solid var(--blue);outline-offset:-3px}@media (height<=600px){#simulation-note{margin-top:3px;font-size:8px}.cancel-calculation{margin-top:3px;padding-block:3px}.simulation-controls select{margin-block:2px 4px;padding-block:1px}}@container (width<=220px){.simulation-counts,.simulation-counts span{display:block}.transport{flex-wrap:wrap;gap:3px}.transport button{min-width:24px;padding-inline:3px}#simulation-note{font-size:8px}}@media (height<=600px){.panel-heading,.display-controls,.view-controls,.simulation-controls{padding-block:4px}.display-toggles{margin-top:3px}.view-controls input{margin-block:2px}#simulation-note{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.panel-heading{display:none}}@media (width<=420px){.site-header{gap:8px;padding-inline:10px}.site-header nav{gap:0}.site-header nav a{padding-inline:8px}.header-name{display:none}}
