Downstream
La scheda FroGames Hai una carta in mano. La metti a valle e decidi il corso del fiume, oppure la infili sotto una riva e perdi il controllo dell'acqua. Ogni scelta è una rinuncia. Ogni rinuncia è un punto per l'altro. CompetitivoFirestarter GamesEleganza minimalista 👥 Giocatori 2 ⏱️ Durata 10–20 min 🎂 Età 8+ anni 🏢 Editore Firestarter Games ⚖️ Peso Medio-leggero (2.0) 🎲 Meccanica Pattern building La formulaPattern building × Piazzamento carte bifasico × Obiettivi asimmetrici✋ Solo qui: Posizioni le carte sopra O sotto DI COSA SI TRATTA Un fiume che cresce carta dopo carta, due giocatori che decidono dove scorre la corrente Progettato da Sébastien Bernier-Wong e Daniel Mously (entrambi al debutto), Downstream è un gioco astratto pubblicato da Firestarter Games nel 2022. Il tema è solo un pretesto visivo: un ecosistema fluviale che prende forma pezzo dopo pezzo. Ma sotto c'è un puzzle spaziale dove ogni carta conta due volte. Ogni turno giochi una carta: puoi estenderla a valle (allunghi il fiume e attivi effetti su entrambe le rive) oppure infilarla sotto una riva esistente (arricchisci la tua costa ma rinunci al controllo del flusso). Vince chi completa per primo un set di obiettivi asimmetrici. Le partite durano 10-20 minuti, il sistema è immediato ma ti mette costantemente di fronte a scelte binarie dolorose. Cosa dicono all'estero Downstream è il debutto di due designer che hanno capito come funziona l'eleganza: nessuna carta è sprecata, ogni turno è una scelta secca. — FroGames "A tight, quick abstract with asymmetric goals and real tension in every placement." Un astratto compatto e veloce, con obiettivi asimmetrici e vera tensione in ogni piazzamento. — Gameosity FrogScore · FroGames.it Downstream Strategia L'esperienza GeometricoTesoMinimale Per chi è 🌱Gateway •2 giocatori 🎯Esperti 🎲Family game 🍕Party 🧘Solitario In sintesi Perché ci piace: è un astratto che si gioca in 15 minuti ma lascia spazio a decisioni vere, con una struttura bifasica (estendi / arricchisci) che ti obbliga a scegliere cosa vuoi controllare. Difetti ma non deal-breaker: il pool di carte fisso e gli obiettivi limitati fanno sentire il gioco ripetitivo dopo una decina di partite; se cerchi un astratto con meta evolutiva, guarda altrove. FrogScore · valutazione editoriale FroGames · basata su regolamento, recensioni internazionali e sessioni di gioco (function(){ var PI2=Math.PI*2; var dims=[{"label": "Interazione", "value": 4, "note": "Indiretto ma costante: ogni tua estensione a valle regala punti anche all'avversario se la sua riva è pronta."}, {"label": "Tensione", "value": 4, "note": "Ogni carta è una scelta secca: controllo o punti. Sbagli due volte e l'altro finisce gli obiettivi prima di te."}, {"label": "Strategia", "value": 3, "note": "Devi bilanciare timing (quando estendere) e costruzione (quali pattern completare). Mano piccola, opzioni limitate."}, {"label": "Rigiocabilità", "value": 3, "note": "Obiettivi asimmetrici cambiano a ogni partita, ma il pool di carte è fisso e il sistema si svela in fretta."}, {"label": "Complessità", "value": 2, "note": "Regole in 5 minuti. La profondità viene da quando e dove piazzare, non da cosa fare: le opzioni sono sempre due."}]; var accent='#2E6B0A'; var VB=320,CX=160,CY=160,R=74; var n=dims.length,step=PI2/n,off=-Math.PI/2; var svg=document.getElementById('fg1-fs-svg'); var tip=document.getElementById('fg1-fs-tip'); if(!svg) return; var ns='http://www.w3.org/2000/svg'; function pt(r,i){return[CX+r*Math.cos(off+i*step),CY+r*Math.sin(off+i*step)];} function el(tag,attrs){ var e=document.createElementNS(ns,tag); Object.keys(attrs).forEach(function(k){e.setAttribute(k,attrs[k]);}); return e; } var st=document.createElement('style'); st.textContent='@keyframes fg1-draw{to{stroke-dashoffset:0}}@keyframes fg1-fade{to{opacity:1}}'; document.head.appendChild(st); for(var ring=1;ring0.2) anchor='start'; else if(Math.cos(angle)0.6?7:Math.sin(angle)=4; var t=el('text',{x:lx.toFixed(1),y:(ly+dy).toFixed(1),'text-anchor':anchor,'dominant-baseline':'middle','font-size':isHi?'12':'11','font-weight':'700',fill:'#1a1208','font-family':'-apple-system,sans-serif'}); t.textContent=d.label; svg.appendChild(t); }); })(); Il fiume che costruisci Quattro elementi che decidono la partita 🌊 Carte fiume 57 carte double-face, ognuna con un lato riva sinistra e uno destra. Quando estendi il fiume scegli quale lato attivare. Quando infili sotto una riva esistente, quella carta vale per i tuoi pattern ma non controlla più il flusso. 🎯 Obiettivi asimmetrici Ogni giocatore pesca un set casuale di obiettivi (pattern da completare sulle proprie rive). Chi ne chiude tre per primo vince. Gli obiettivi cambiano ogni partita: a volte vuoi raggruppare colori, altre volte cerchi sequenze. 🛤️ Il flusso condiviso Il fiume cresce in una sola direzione, da monte a valle. Ogni estensione a valle attiva tutte le carte compatibili su entrambe le rive: se l'avversario ha preparato bene la sua sponda, gli regali punti gratis. ⚖️ Scelta binaria Ogni turno: estendi (controlli il fiume ma attivi anche l'altro) oppure arricchisci (costruisci i tuoi pattern ma rinunci al flusso). Non esiste la mossa perfetta: decidi cosa ti serve di più in quel momento. 🛡️ Bustine consigliate 57 carte in 1 dimensione ▼ Se giochi spesso, consigliamo di proteggere le carte con bustine trasparenti per farle durare a lungo. Dimensione Quantità 50 × 88 mm 57 Totale carte 57 .fg1-wrap, .fg1-wrap * { box-sizing: border-box; margin: 0; padding: 0; } .fg1-wrap { font-family: Georgia, 'Times New Roman', serif; border-radius: 24px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.32); max-width: 1200px; margin-left: auto; margin-right: auto; background: #1a1a1a; } .fg1-hero { background: linear-gradient(135deg, #1a1a1a 0%, #222222 50%, #1a1a1a 100%); padding: 32px 26px 36px; position: relative; overflow: hidden; } .fg1-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at top right, rgba(46,107,10,0.08) 0%, transparent 60%); pointer-events: none; } .fg1-hero-content { position: relative; z-index: 2; } .fg1-kicker { display: block; color: #FFB800; font-family: sans-serif; font-size: 0.7rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 10px; } .fg1-sub { color: rgba(255,255,255,0.88); font-family: Georgia, serif; font-size: 1rem; font-style: italic; line-height: 1.55; max-width: 580px; margin-bottom: 18px; } .fg1-chips { display: flex; flex-wrap: wrap; gap: 7px; } .fg1-chip { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2); color: #fff; font-family: sans-serif; padding: 4px 12px; border-radius: 50px; font-size: 0.78rem; font-weight: 600; } .fg1-chip--accent { background: #2E6B0A; border-color: #2E6B0A; } .fg1-specs-bar { background: #160a02; padding: 0 24px; border-top: 1px solid rgba(255,255,255,0.06); } .fg1-specs { display: grid; grid-template-columns: repeat(3, 1fr); } .fg1-spec { padding: 13px 10px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 2px; border-right: 1px solid rgba(255,255,255,0.07); border-bottom: 1px solid rgba(255,255,255,0.07); } .fg1-spec:nth-child(3n) { border-right: none; } .fg1-spec:nth-last-child(-n+3) { border-bottom: none; } .fg1-spec-icon { font-size: 1.2rem; } .fg1-spec-label { color: rgba(255,255,255,0.4); font-family: sans-serif; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 1px; } .fg1-spec-val { color: #fff; font-family: sans-serif; font-size: 0.84rem; font-weight: 800; } .fg1-body { background: #F5EDD8; } .fg1-intro-grid { display: grid; grid-template-columns: 1fr; gap: 26px; padding: 36px 28px 8px; } .fg1-label { display: block; font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #2E6B0A; margin-bottom: 7px; } .fg1-h3 { font-size: clamp(1.4rem, 2.5vw, 2.1rem); font-weight: 900; color: #1a0800; line-height: 1.15; margin-bottom: 16px; } .fg1-p { font-family: sans-serif; font-size: 0.95rem; color: #3d2810; margin-bottom: 13px; line-height: 1.65; max-width: 700px; } .fg1-quote-header { font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #2E6B0A; margin-bottom: 12px; } .fg1-quote { background: #1a0800; border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; border-left: 4px solid #FFB800; } .fg1-quote--dark { background: #3a0a00; } .fg1-quote-text { color: #fff; font-style: italic; font-size: 0.87rem; line-height: 1.6; margin-bottom: 6px; font-family: sans-serif; } .fg1-quote-transl { color: rgba(255,255,255,0.48); font-family: sans-serif; font-size: 0.76rem; line-height: 1.5; margin-bottom: 7px; font-style: italic; } .fg1-quote-source { color: rgba(255,255,255,0.43); font-family: sans-serif; font-size: 0.72rem; font-weight: 700; } .fg1-divider { height: 1px; background: #d4c0a0; margin: 32px 28px 0; } .fg1-fs { background:#fff; border-top:1px solid #e0d8cc; border-bottom:1px solid #e0d8cc; } .fg1-fs-header { padding:14px 20px 13px; background:#fff; border-bottom:1px solid #e8e2da; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; } .fg1-fs-brand { display:flex; align-items:center; gap:9px; } .fg1-fs-frog-img { width:28px; height:28px; object-fit:contain; flex-shrink:0; } .fg1-fs-footer-frog { width:16px; height:16px; object-fit:contain; vertical-align:middle; margin-right:2px; } .fg1-fs-brand-label { display:block; font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; } .fg1-fs-game-name { font-family:sans-serif; font-size:14px; font-weight:700; color:#1a1208; margin-top:2px; } .fg1-fs-cat { font-family:sans-serif; font-size:10px; padding:3px 11px; border-radius:50px; font-weight:700; border:1.5px solid; white-space:nowrap; } .fg1-fs-body { display:grid; grid-template-columns:1fr; background:#f7f4ef; } .fg1-fs-radar-panel { padding:20px 16px; display:flex; justify-content:center; background:#f7f4ef; position:relative; } .fg1-fs-radar-panel svg { width:100%; max-width:270px; height:auto; display:block; } .fg1-fs-tip { display:none; position:absolute; background:#1a1208; color:rgba(255,255,255,0.92); font-family:sans-serif; font-size:11px; line-height:1.55; padding:8px 12px; border-radius:9px; z-index:20; max-width:210px; box-shadow:0 4px 18px rgba(0,0,0,0.22); pointer-events:none; } .fg1-fs-info { padding:16px 18px 18px; background:#f7f4ef; border-top:1px solid #e8e2da; } .fg1-fs-feel-lbl { display:block; font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; margin-bottom:9px; } .fg1-fs-feeling { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; } .fg1-fs-feel-tag { font-family:Georgia,serif; font-size:13px; font-style:italic; color:#3d2810; padding:5px 14px; background:#fff; border-radius:7px; border:1px solid #d8d0c4; } .fg1-fs-section-label { display:block; font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; margin-bottom:10px; } .fg1-fs-targets { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:7px; margin-bottom:16px; } .fg1-fs-target { display:flex; align-items:center; gap:6px; padding:6px 10px; border-radius:10px; border:1px solid; font-family:sans-serif; font-size:11px; font-weight:600; } .fg1-fs-target span { font-size:14px; flex-shrink:0; } .fg1-fs-si { background:#fff; border-color:#c8c0b0; color:#2a1a08; } .fg1-fs-no { background:transparent; border-color:#e0d8d0; color:#b8a898; opacity:.45; text-decoration:line-through; } .fg1-fs-verdict { background:#fff; border-radius:10px; padding:12px 14px; border:1px solid #e0d8cc; } .fg1-fs-verdict-title { font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; margin-bottom:5px; } .fg1-fs-verdict-text { font-family:sans-serif; font-size:12px; color:#3d2810; line-height:1.65; } .fg1-fs-solo { background:#f0ece4; border-top:1px solid #e0d8cc; padding:14px 18px; } .fg1-fs-solo-row { display:flex; align-items:center; gap:12px; margin-bottom:8px; } .fg1-fs-solo-icon { font-size:1.4rem; flex-shrink:0; } .fg1-fs-solo-text { display:flex; flex-direction:column; gap:2px; flex-grow:1; } .fg1-fs-solo-label { font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; } .fg1-fs-solo-stars { font-family:sans-serif; font-size:14px; letter-spacing:2px; color:#2E6B0A; line-height:1; } .fg1-fs-solo-note { font-family:sans-serif; font-size:12px; color:#3d2810; line-height:1.65; } .fg1-fs-footer { padding:9px 20px; background:#eeeae4; border-top:1px solid #e0d8cc; font-family:sans-serif; font-size:11px; color:#6b5e48; line-height:1.5; } .fg1-section-pad { padding: 32px 28px 8px; border-top: 0 !important; border-bottom: 0 !important; box-shadow: none !important; } .fg1-cards { display: grid; grid-template-columns: 1fr; gap: 11px; margin-top: 16px; } .fg1-card { background: #fff; border-radius: 14px; padding: 16px 18px; border: 1px solid #e0ceb0; box-shadow: 0 2px 10px rgba(0,0,0,0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; } .fg1-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.09); } .fg1-card-icon { font-size: 1.6rem; display: block; margin-bottom: 7px; } .fg1-card-name { font-size: 0.95rem; font-weight: 900; color: #2E6B0A; margin-bottom: 5px; } .fg1-card-desc { font-family: sans-serif; font-size: 0.85rem; color: #3d2810; line-height: 1.55; } .fg1-sleeve-toggle { background: #fff; border-radius: 14px; border: 1px solid #e0ceb0; box-shadow: 0 2px 10px rgba(0,0,0,0.05); overflow: hidden; } .fg1-sleeve-summary { list-style: none; cursor: pointer; padding: 16px 20px; display: flex; align-items: center; gap: 14px; font-family: sans-serif; user-select: none; transition: background 0.2s ease; } .fg1-sleeve-summary::-webkit-details-marker { display: none; } .fg1-sleeve-summary:hover { background: #faf2e2; } .fg1-sleeve-summary-icon { font-size: 1.5rem; flex-shrink: 0; } .fg1-sleeve-summary-text { flex-grow: 1; display: flex; flex-direction: column; gap: 2px; } .fg1-sleeve-summary-label { font-size: 0.95rem; font-weight: 800; color: #1a0800; } .fg1-sleeve-summary-count { font-size: 0.78rem; color: #7a6040; font-weight: 500; } .fg1-sleeve-summary-arrow { font-size: 0.75rem; color: #2E6B0A; transition: transform 0.25s ease; flex-shrink: 0; } .fg1-sleeve-toggle[open] .fg1-sleeve-summary-arrow { transform: rotate(180deg); } .fg1-sleeve-toggle[open] .fg1-sleeve-summary { border-bottom: 1px solid #f0e4ce; } .fg1-sleeve-body { padding: 16px 20px 20px; } .fg1-sleeve-intro { font-family: sans-serif; font-size: 0.9rem; color: #3d2810; line-height: 1.6; margin: 0 0 14px 0; max-width: 680px; } .fg1-sleeve-table { width: 100%; max-width: 420px; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; border: 1px solid #e8dcba; font-family: sans-serif; } .fg1-sleeve-table th { background: #2E6B0A; color: #fff; text-transform: uppercase; letter-spacing: 1px; font-size: 0.72rem; font-weight: 700; padding: 10px 14px; text-align: left; } .fg1-sleeve-table td { padding: 10px 14px; border-bottom: 1px solid #f0e4ce; font-size: 0.9rem; color: #3d2810; } .fg1-sleeve-table tbody tr:last-child td { border-bottom: none; } .fg1-sleeve-dim { font-weight: 600; } .fg1-sleeve-qty { font-weight: 800; text-align: right; color: #2E6B0A; } .fg1-sleeve-total td { background: #faf2e2; font-weight: 900; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; } .fg1-sleeve-total .fg1-sleeve-qty { color: #1a0800; } .fg1-rulebook-pad { padding-top: 18px; border-top: 0 !important; border-bottom: 0 !important; box-shadow: none !important; } /* Card cliccabile: border shorthand + accent verde a sinistra (etichetta "risorsa speciale"). Niente 4 border separati: il border-bottom da solo si leggeva come underline. */ a.fg1-rulebook, a.fg1-rulebook:link, a.fg1-rulebook:visited, a.fg1-rulebook:hover, a.fg1-rulebook:focus, a.fg1-rulebook:active { text-decoration: none !important; border: 1px solid #e8dcba !important; border-left: 4px solid #2E6B0A !important; box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important; outline: none !important; background-image: none !important; } .fg1-rulebook { display: flex; align-items: center; gap: 14px; background: #fffaf0; border-radius: 12px; padding: 14px 18px; color: #1a0800; transition: background 0.2s ease, transform 0.2s ease; } .fg1-rulebook:hover { background: #faf0d8 !important; transform: translateX(2px); } /* Reset preventivo su figli e pseudo-elementi: alcuni temi Shopify (Concept, Dawn-derived, Impulse, Prestige) iniettano underline animate via ::before/::after con background-image linear-gradient. Vanno nuke esplicitamente. */ .fg1-rulebook *, .fg1-rulebook *::before, .fg1-rulebook *::after { text-decoration: none !important; border: 0 !important; box-shadow: none !important; background: transparent !important; background-image: none !important; } .fg1-rulebook::before, .fg1-rulebook::after { display: none !important; content: none !important; } .fg1-rulebook-icon { font-size: 1.6rem; flex-shrink: 0; } .fg1-rulebook-text { display: flex; flex-direction: column; flex-grow: 1; gap: 2px; } .fg1-rulebook-label { font-weight: 800; font-size: 0.95rem; color: #1a0800; } .fg1-rulebook-meta { font-size: 0.78rem; color: #6b5a3a; } .fg1-rulebook-arrow { font-size: 1.1rem; color: #2E6B0A; font-weight: 700; flex-shrink: 0; } .fg1-closing { background: #1a0800; padding: 26px 28px; border-top: 3px solid #FFB800; } .fg1-closing-text { font-family: Georgia, serif; font-size: 1.05rem; font-style: italic; color: rgba(255,255,255,0.88); text-align: center; line-height: 1.6; } @media screen and (min-width: 600px) { .fg1-specs { grid-template-columns: repeat(6, 1fr); } .fg1-spec { border-bottom: none; } .fg1-spec:nth-child(3n) { border-right: 1px solid rgba(255,255,255,0.07); } .fg1-spec:last-child { border-right: none; } .fg1-cards { grid-template-columns: repeat(2, 1fr); } .fg1-fs-body { grid-template-columns: 220px 1fr; } .fg1-fs-radar-panel { border-top: none; border-right: 1px solid #e8e2da; } .fg1-fs-info { border-top: none; } } @media screen and (min-width: 900px) { .fg1-hero { padding: 40px 36px 44px; } .fg1-intro-grid { grid-template-columns: 3fr 2fr; align-items: start; padding: 40px 36px 8px; } .fg1-cards { grid-template-columns: repeat(4, 1fr); } .fg1-divider { margin-left: 36px; margin-right: 36px; } .fg1-section-pad { padding: 36px 36px 8px; } .fg1-closing { padding: 28px 36px; } .fg1-fs-body { grid-template-columns: 260px 1fr; } .fg1-fs-radar-panel svg { max-width: 260px; } }