.dm-skip{position:absolute;left:8px;top:-60px;z-index:1000;background:#fff;padding:12px}.dm-skip:focus{top:8px}.dm-hero,.dm-shell,.dm-back{width:calc(100% - 36px);max-width:1440px;margin:24px auto}.dm-hero{display:grid;grid-template-columns:1.2fr 1fr;background:#071f4f;color:#fff;border-radius:24px;overflow:hidden}.dm-hero .hero-text{padding:32px}.dm-hero h1{color:#fff;font-size:clamp(2rem,4vw,3.4rem);line-height:1.1;margin:12px 0}.dm-hero p{color:#fff}.dm-hero>img{width:100%;height:100%;max-height:360px;object-fit:contain;background:#e8f0f5}.dm-hero .intermediate2-kicker{color:#d9e8f4}.dm-chips{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.dm-chips span{background:#173665;border-radius:20px;padding:6px 10px;font-size:.8rem}.dm-shell{position:relative;background:white;border:1px solid #d7e0e8;border-radius:22px;padding:24px;box-sizing:border-box;color:#142033}

    .memory-page{--team-one:#2563eb;--team-two:#0f9f6e;--board:#153b55}
    .memory-hero{min-height:520px}
    .game-shell{width:min(1420px,calc(100% - 32px));margin:34px auto 70px}
    .teacher-panel{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px;margin:0 0 22px;align-items:stretch}
    .teacher-card{background:#fff;border-radius:22px;box-shadow:0 16px 34px rgba(15,23,42,.08);padding:18px}
    .teacher-card h2,.teacher-card h3{color:#153b55;margin-top:0}
    .quick-rules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
    .quick-rule{border-radius:16px;background:linear-gradient(145deg,#eef7ff,#f8fafc);border:1px solid rgba(37,99,235,.14);padding:10px;text-align:center;color:#153b55}
    .quick-rule i{display:block;font-size:1.25rem;color:#2563eb;margin-bottom:4px}.quick-rule strong{display:block;font-size:.88rem}.quick-rule span{display:block;color:#64748b;font-size:.72rem;font-weight:800;line-height:1.25;margin-top:2px}
    .vocab-card{background:linear-gradient(145deg,#fff,#f7fbff)}
    .vocab-groups{display:grid;gap:9px;margin-top:12px}
    .vocab-line{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:start;border-radius:16px;background:#eef7ff;padding:10px 12px;color:#153b55}
    .vocab-line strong{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:#2563eb}
    .vocab-line span{font-weight:900;line-height:1.45}
    .game-toolbar{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:stretch;margin-bottom:18px}
    .team-panel{border:3px solid transparent;border-radius:20px;padding:16px 18px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.1);display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;transition:.2s ease}
    .team-panel.active{transform:translateY(-3px);box-shadow:0 18px 34px rgba(15,23,42,.18)}
    .team-panel[data-team="0"].active{border-color:var(--team-one)}.team-panel[data-team="1"].active{border-color:var(--team-two)}
    .team-panel input{min-width:0;width:100%;border:0;background:transparent;color:#153b55;font:inherit;font-weight:900;font-size:1.15rem;outline:none}
    .team-score{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;color:#fff;font-size:1.7rem;font-weight:950}
    .team-panel[data-team="0"] .team-score{background:var(--team-one)}.team-panel[data-team="1"] .team-score{background:var(--team-two)}
    .turn-center{min-width:230px;border-radius:20px;padding:13px 18px;background:var(--board);color:#fff;text-align:center;display:grid;place-items:center;box-shadow:0 12px 28px rgba(21,59,85,.22)}
    .turn-center span{display:block;color:#dbeafe;text-transform:uppercase;font-size:.75rem;font-weight:900}.turn-center strong{font-size:1.15rem}
    .game-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:18px}
    .game-icon-btn{width:48px;height:48px;border:0;border-radius:14px;background:#fff;color:#153b55;box-shadow:0 8px 20px rgba(15,23,42,.1);cursor:pointer;font-size:1.15rem}
    .game-command{min-height:48px;border:0;border-radius:999px;padding:0 20px;background:#153b55;color:#fff;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
    .game-command.primary{background:#2563eb}.game-command.success{background:#0f9f6e}.game-command:hover,.game-icon-btn:hover{transform:translateY(-2px)}
    .memory-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;padding:18px;border-radius:26px;background:linear-gradient(145deg,#153b55,#2563eb);box-shadow:0 24px 55px rgba(21,59,85,.25);perspective:1200px}
    .memory-card{position:relative;aspect-ratio:4/3;border:0;padding:0;background:transparent;cursor:pointer;transform-style:preserve-3d;transition:transform .48s cubic-bezier(.2,.75,.2,1);min-width:0}
    .memory-card.is-flipped,.memory-card.is-matched{transform:rotateY(180deg)}.memory-card.is-matched{cursor:default}
    .card-face{position:absolute;inset:0;border-radius:13px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
    .card-back{display:grid;place-items:center;background:linear-gradient(145deg,#fff,#dcfce7);border:3px solid rgba(255,255,255,.8);color:#153b55;box-shadow:0 7px 16px rgba(0,0,0,.18)}
    .card-back strong{font-size:clamp(1.5rem,3.4vw,2.6rem);font-weight:950;line-height:1}
    .card-back i{position:absolute;left:8px;top:6px;font-size:clamp(.7rem,1.2vw,1rem);opacity:.45}
    .card-front{transform:rotateY(180deg);background:#fff;border:3px solid #fff;box-shadow:0 7px 16px rgba(0,0,0,.2)}
    .card-front img{width:100%;height:100%;display:block;object-fit:cover}.card-front strong{position:absolute;left:4px;right:4px;bottom:4px;border-radius:8px;padding:5px;background:rgba(21,59,85,.9);color:#fff;font-size:clamp(.58rem,1vw,.78rem);line-height:1.1;text-align:center}
    .memory-card.is-matched .card-front{border-color:#f4c95d;box-shadow:0 0 0 3px rgba(244,201,93,.45),0 0 24px rgba(244,201,93,.7)}
    .game-status{min-height:48px;margin:14px 0 0;text-align:center;color:#334155;font-weight:850}
    .gate-card,.winner-card{width:min(560px,100%);border-radius:24px;background:#fff;padding:24px;text-align:center;box-shadow:0 28px 80px rgba(0,0,0,.38)}
    .gate-image{width:min(330px,100%);aspect-ratio:4/3;object-fit:cover;border-radius:18px}
    .gate-card h2,.winner-card h2{color:#153b55;margin:16px 0 8px}.gate-card p,.winner-card p{color:#475569;line-height:1.55}
    .gate-sentence{font-size:1.35rem;color:#153b55;font-weight:950}
    .gate-category{display:inline-flex;border-radius:999px;background:#eef7ff;color:#153b55;font-weight:950;padding:.4rem .75rem}
    .gate-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}
    .winner-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff,#ecfeff)}.winner-trophy{font-size:4rem;color:#d97706}.winner-card h2{font-size:clamp(2rem,6vw,3.5rem)}
    .confetti-piece{position:fixed;top:-30px;width:12px;height:20px;z-index:2100;pointer-events:none;animation:confetti-fall var(--duration) linear forwards;transform:rotate(var(--rotation));background:var(--color)}
    @keyframes confetti-fall{to{transform:translate3d(var(--drift),110vh,0) rotate(900deg)}}
    @media(max-width:1100px){.teacher-panel{grid-template-columns:1fr}.quick-rules{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:900px){.memory-board{grid-template-columns:repeat(4,minmax(0,1fr))}}
    @media(max-width:760px){.game-toolbar{grid-template-columns:1fr 1fr}.turn-center{grid-column:1/-1;grid-row:1;min-width:0}.memory-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:10px}.game-shell{width:min(100% - 16px,1420px)}.team-panel{padding:10px}.team-score{width:44px;height:44px}.card-front strong{font-size:.62rem}.quick-rules{grid-template-columns:1fr 1fr}.vocab-line{grid-template-columns:1fr;gap:3px}}
    @media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Course 2 shell; game structure and visual language follow Basic 2 Shopping/Around the World. */
.memory-page .game-shell{box-sizing:border-box}.dm-shell{display:none}.memory-page .teacher-card h2,.memory-page .teacher-card h3{margin-bottom:10px}.quick-rule b{display:block;font-size:1.3rem;color:#2563eb}.vocab-card p{font-size:.88rem;margin:6px 0}.vocab-line{margin:0}.vocab-line .vocab-words{display:flex;flex-wrap:wrap;gap:4px 8px}.vocab-word-wrap{position:relative;display:inline-block}.vocab-word{font:inherit;font-weight:700;text-decoration:underline dotted;text-underline-offset:4px;border:0;background:transparent;color:#153b55;padding:3px;cursor:pointer;min-height:32px}.word-tip{display:none;position:absolute;bottom:100%;left:0;min-width:130px;max-width:210px;background:#153b55;color:white;border-radius:8px;padding:8px;font-size:.88rem;z-index:15;pointer-events:none}.vocab-word-wrap:hover .word-tip,.vocab-word-wrap:focus-within .word-tip{display:block}.round-settings{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.round-settings label{font-weight:700}.round-settings select{font:inherit;padding:10px;border:1px solid #a5b8ca;border-radius:10px;background:white;color:#153b55;min-height:44px}.round-settings #pairCount{margin-left:auto;font-weight:800}.memory-card .card-art,.gate-art{display:block;aspect-ratio:1;background-image:url('/assets/img/english-intermediate-2/unit-6/memory/cards.webp');background-size:500% 400%;background-repeat:no-repeat}.card-art{height:100%;width:auto;margin:auto}.card-front{background:#f0f4f8}.card-front strong{z-index:1}.memory-card:focus-visible,.game-command:focus-visible,.vocab-word:focus-visible,.team-panel input:focus-visible{outline:3px solid #c8463f;outline-offset:3px}.game-command:disabled{opacity:.55;cursor:default;transform:none}.game-command.secondary{background:#eef7ff;color:#153b55}.audio-status{text-align:center;color:#8a3323}.reading-gate,.winner-overlay{border:0;padding:0;background:transparent;color:#153b55;width:min(600px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);overflow:auto}.reading-gate[open],.winner-overlay[open]{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0}.reading-gate::backdrop,.winner-overlay::backdrop{background:rgba(3,12,32,.82);backdrop-filter:blur(8px)}.gate-card,.winner-card{box-sizing:border-box;width:100%}.gate-image{width:min(230px,60vw);aspect-ratio:1;margin:auto}.gate-art{width:100%;height:100%;border-radius:16px}.gate-sentence{margin:8px 0}.gate-card details{border:1px solid #cad8e3;border-radius:12px;padding:12px;margin:12px 0}.gate-card summary{cursor:pointer;font-weight:800}.winner-trophy{display:block}.game-shell:fullscreen{width:100%;height:100dvh;max-width:none;margin:0;padding:24px;overflow:auto;background:#f4f7fb}.game-shell:fullscreen .teacher-panel{display:none}.game-shell:fullscreen .memory-board{max-width:1500px;margin:auto;grid-template-columns:repeat(8,minmax(0,1fr))}.game-shell:fullscreen .memory-card{aspect-ratio:1.55}.game-shell:fullscreen .game-toolbar{margin-bottom:12px}.confetti-piece{z-index:2147483647}.reading-gate[hidden],.winner-overlay[hidden],[hidden]{display:none!important}
@media(min-width:1200px){.memory-board{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:760px){.dm-hero{grid-template-columns:1fr}.dm-hero>img{max-height:230px}.dm-hero .hero-text{padding:20px}.dm-hero,.dm-back{width:calc(100% - 16px)}.round-settings select{max-width:100%}.round-settings #pairCount{margin-left:0}.game-toolbar{gap:10px}.team-panel input{font-size:1rem}.gate-card,.winner-card{padding:18px}.game-shell:fullscreen{padding:10px}.game-shell:fullscreen .memory-board{grid-template-columns:repeat(4,minmax(0,1fr))}.game-shell:fullscreen .memory-card{aspect-ratio:1}.game-command{font-size:.88rem;min-height:44px;padding:8px 14px}}

/* One visible model before play; image and the student's headline task can be projected. */
.headline-example{display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:center;padding:24px;margin:0 0 24px;background:#fff;border:2px solid #bcd4ef;border-radius:22px;color:#153b55}
.headline-example-image{width:160px;aspect-ratio:1}.headline-example h2{margin:4px 0 12px;color:#153b55}.headline-example p{margin:8px 0}.headline-example blockquote{margin:12px 0;padding:12px 18px;background:#eef7ff;border-left:4px solid #2563eb;font-size:clamp(1.15rem,2vw,1.5rem);font-weight:800;color:#153b55}.headline-example .intermediate2-kicker{color:#2563eb}
.reading-gate{width:min(1120px,calc(100vw - 28px))}.reading-gate .gate-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:center}.reading-gate .gate-image{width:100%;max-width:480px}.headline-task{min-width:0}.headline-task h2{font-size:clamp(1.4rem,2.3vw,2rem)}.headline-task .teacher-confirmation{font-size:.85rem;color:#536477}.headline-task .gate-sentence{font-size:1.5rem;color:#153b55}.headline-task>p{margin:8px 0}.headline-task details{font-size:.95rem}.headline-task .headline-instruction{font-size:1.05rem}.gate-image .gate-art{background-color:#f0f4f8}
@media(max-width:760px){.headline-example{grid-template-columns:1fr;padding:18px;gap:10px}.headline-example-image{width:150px;margin:auto}.reading-gate .gate-card{grid-template-columns:1fr;gap:10px}.reading-gate .gate-image{width:min(230px,60vw)}.headline-task .gate-category{font-size:.8rem}.headline-task h2{margin:10px 0}.headline-task .headline-instruction{font-size:1rem}}
