/* =========================================================
   STYLESHEET GUIDE
   1) Base / Desktop-first styles
   2) Large desktop only tweaks
   3) Tablet tweaks
   4) Mobile tweaks

   Edit guide:
   - PCで直したいとき: Base / Desktop-first または Large desktop only
   - タブレットで直したいとき: Tablet tweaks
   - スマホで直したいとき: Mobile tweaks
   ========================================================= */

/* =========================================================
   1) Base / Desktop-first styles
   ========================================================= */

/* =========================================================
   0) Design tokens
   ========================================================= */
 
    
/* =========================================================
   1) Base / reset
   ========================================================= */

    
    
    
    
    
    
/* =========================================================
   2) Background artwork overlay
   ========================================================= */

    
/* =========================================================
   3) Header / navigation
   ========================================================= */

    
    
    
    
    
    
    
    

    
    
    
    
    
    
    
    
    
    
    

    
    
    
    
    
    
    
    
    
    
    

    
    
    
    
    
/* =========================================================
   4) Core components (card / button)
   ========================================================= */

    
    
    
    
    
    
/* =========================================================
   5) Cover / hero
   ========================================================= */
/* ===== Cover: first view shows only title / artwork ===== */
    
    
    
    
    
    
    
    
    

    
    
    /* anchor offset for fixed header */
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
/* =========================================================
   6) Section scaffolding (grid / mini cards / schedule)
   ========================================================= */

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    /* ABOUT: icon + title inline */




/* スマホは1枚表示 + ボタン少し小さめ */

    /* ===== Tablet layout ===== */
    

    
    
    
    
/* =========================================================
   7) Staff carousel
   ========================================================= */
/* ===== Staff Carousel (manual, bidirectional, mobile swipe) ===== */

    /* ===== Staff card aligns with mini style ===== */
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    /* dots（…っぽい） */
    
    
    
    /* 追従ドラッグ中：transitionを切って“フリック感” */
    
    /* Mobile: 1枚表示 + 矢印は出さない + paddingも矢印分要らない */
    

  

    
/* =========================================================
   8) Speaker / staff cards
   ========================================================= */
/* ===== Speaker/Staff layout refinement ===== */
    
    
    
    
    
    
    

  

    
/* =========================================================
   9) Mini seminars
   ========================================================= */
/* ===== Mini Seminars (10–20) ===== */
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

  

    /* ===== Force abstract toggle to be plain text (no box) ===== */
    
    
    
    
    
    
    

  
    
    
/* =========================================================
   10) Cross-section unification / tweaks
   ========================================================= */
/* ===== Unify look: schedule slots & FAQ details (match cards) ===== */
    
    

  

    /* ===== Hero vertical centering fix (align left block) ===== */
    
    

    /* ===== FAQ: summary not bold + multi Q/A inside ===== */
    
    
    
    
    
    
    
    
    

        
    /* ===== Emphasize speaker contents ===== */
    
    
    
    
    
/* ===== CONTACT spacing: root-cause fix ===== */
/* 1) Card padding defines vertical rhythm (not h3 margins) */

/* 2) Normalize headings to avoid margin-collapsing side effects */

/* 3) First h3 in a card should not create extra top space */

/* 4) Body text spacing */



/* ===== Mini Seminars typography refinement ===== */

/* Title: keep emphasis but avoid crushing */

/* Everything except title should NOT be bold */

/* Speaker name inside mini seminars should not stand out too much */

/* Abstract toggle text */


/* ===== h2 refinement: prominent but breathable ===== */


/* ===== CONTACT: vertically centered items ===== */

/* reset heading spacing influence */

/* description blocks align naturally */


/* ===== ABOUT: 2-column grid (responsive 1→2) ===== */



/* ===== ABOUT: icon + h3 inline, p below ===== */





/* ===== ABOUT: force icon + h3 always inline ===== */





/* ===== ABOUT: center icon & h3 vertically ===== */







/* =========================================================
   HOW section layout refinement
   - desktop: 01 on left, 02/03 stacked on right
   - mobile: single column
   ========================================================= */















/* =========================================================
   11) Final overrides (keep at the end)
   ========================================================= */
/* =========================================================
   FINAL OVERRIDE: ABOUT/HOW card layout
   icon + h3 on the same row, and p always below (full width)
   ========================================================= */





/* ========================================================= */


/* =========================================================
   HOW FIX: keep icon + h3 in first row, and ALL body content
   (p, small notes, buttons) flows naturally under it.
   We wrap body content in .mini-body.
   ========================================================= */




/* Body wrapper occupies full width under the heading row */

/* Cancel the earlier rule that forces ALL p under #how into grid row/col */

/* restore spacing inside body */

/* Buttons row spacing (inline style exists; this keeps it stable) */

/* ========================================================= */


/* =========================================================
   BUTTON TYPOGRAPHY FIX
   - Reduce font-weight to avoid Japanese glyph clogging
   ========================================================= */



/* ========================================================= */


/* =========================================================
   GLOBAL PARAGRAPH SCALE ADJUSTMENT
   - Increase base paragraph size
   - Adjust related spacing & small text to keep balance
   ========================================================= */

/* Base paragraphs */

/* Mini cards */

/* Secondary / muted text */

/* Hero lead stays slightly larger */

/* Buttons: adjust padding to match larger text */

/* Cards: slightly increase internal rhythm */

/* ========================================================= */


/* =========================================================
   MAINTENANCE PATCH (minimal / section-friendly)
   方針:
   - 基本文字サイズは少しだけ底上げ（読みやすさ）
   - ただし “各セクションで個別調整できる余地” を残す
   - 既存CSSを大きく再構成せず、最後に上書きで安定化する
   ========================================================= */

/* Base paragraphs (global) */

/* Card body text */

/* Supporting / small text */

/* Section headings */

/* Default h3 (general) */

/* Card titles: readable but not too heavy */

/* Hero-side kv labels stay small */

/* ABOUT: key card titles slightly stronger (only here) */

/* Night-seminar titles: DO NOT grow with viewport */


/* Button text: avoid “潰れ” */



/* ===== Speaker / Staff photo ===== */


/* ===============================
   Speaker / Staff photo sizing
   =============================== */

/* 講師：少し大きめ・存在感あり */

/* スタッフ：控えめ */

/* 共通：画像の扱い */


/* ========================================================= */



/* =========================================================
   SCHEDULE (2-day)
   - Desktop/Tablet: 2 columns side-by-side for comparison
   - Mobile: swipe (scroll-snap) between Day1 and Day2
   - Route-map connector: dot + line perfectly aligned
   ========================================================= */


/* Card column */

/* Header row (DAY + date/time) */


/* Make DAY label prominent */


/* Date/time on the right */



/* Route list */

/* One stop (station) */


/* time column: dot + vertical line behind
   IMPORTANT: line center == dot center */

/* the vertical line that connects stations */

/* first/last station: cut the line */
   /* tbadge top padding + dot radius */

/* time badge */





/* content */


/* ===== Tablet: keep 2 columns (comparison priority) ===== */

/* ===== Mobile: swipe between Day1 and Day2 ===== */

/* Hint: hidden by default, shown on mobile */

/* =========================================================
   SCHEDULE PATCH (timeline rail + responsive stability)
   - time is visually "on the timeline" (rail + dot + pill)
   - keeps same look across viewport changes (mobile/desktop)
   ========================================================= */

/* Stop layout: [rail][time][content] */

/* Disable old line that was attached to .tcol (we now use .rail) */


/* Vertical line (centered in rail) */

/* Cut line for first/last stop */





/* Ensure the rail can "bleed" into the gap so the line is visually continuous */

/* Layering: rail is the lowest layer, time/content float above it */




/* Time column: keep it tight & aligned with the rail dot */



/* ===== Tablet: slightly narrower time column ===== */

/* ===== Mobile: keep the same "rail + time + content" look ===== */

/* ===== Small phones: stack content under time (rail stays) ===== */


/* =========================================================
   Schedule: simple time cards (replaces timeline rail)
   ========================================================= */






/* ===== Schedule refinement: keep DAY labels on one line + stylize time ===== */




















/* =========================================================
   MOBILE WIDTH EXPANSION PATCH
   - スマホで横幅を広く使う
   ========================================================= */





/* =========================================================
   DESKTOP WIDTH EXPANSION PATCH
   - PC版でコンテンツ幅を少し広げる
   ========================================================= */


/* =========================================================
   BLUE THEME FINAL OVERRIDES
   ========================================================= */




































/* accessibility type scale patch removed: replaced by unified typography system */

/* =========================================================
   HERO NEWS PANEL
   ========================================================= */













/* Mini seminar title size fix */


/* スタッフ名前サイズ修正 */






/* =========================================================
   TYPOGRAPHY NORMALIZATION PATCH
   - unify type scale
   - avoid section-by-section font jumps
   ========================================================= */






































/* =========================================================
   STAFF underline alignment patch
   - same card height
   - separator directly under photo/name/affiliation
   - separator width follows person-head content, not full card
   ========================================================= */












/* =========================================================
   Speaker popup button / modal
   ========================================================= */

























:root{
      --header-h: 68px;
      --bg0: #f4f9fc;
      --bg1: #ffffff;
      --surface: rgba(255,255,255,.82);
      --surface2: rgba(255,255,255,.72);
      --border: rgba(10,85,115,.18);
      --text: rgba(10,25,40,.92);
      --muted: rgba(10,25,40,.60);
      --orange: #0A5573;
      --amber:  #2A7FA3;
      --cyan:   #3DA7D1;
      --teal:   #2A7FA3;
      --pink:   #8FC3DA;
      --radius: 18px;
      --shadow: 0 18px 60px rgba(10,40,60,.14);
      --maxw: 1240px;
    }*{ box-sizing:border-box; }html,body{ height:100%; }body{
      margin:0;
      color: var(--text);
      font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", sans-serif;
      line-height: 1.65;
      background:
        radial-gradient(900px 420px at 18% 12%, rgba(10,85,115,.18), transparent 60%),
        radial-gradient(900px 460px at 84% 18%, rgba(61,167,209,.14), transparent 62%),
        radial-gradient(820px 520px at 50% 92%, rgba(42,127,163,.10), transparent 64%),
        linear-gradient(180deg, var(--bg0), var(--bg1));
      overflow-x:hidden;
    }a{ color: inherit; text-decoration:none; }a:focus-visible, button:focus-visible, summary:focus-visible{
      outline: 3px solid rgba(10,85,115,.35);
      outline-offset: 2px;
      border-radius: 12px;
    }.container{ width: min(var(--maxw), calc(100% - 40px)); margin: 0 auto; }.grid-overlay{
      position: fixed;
      inset: 0;
      pointer-events:none;
      opacity:.48;
      background:
        radial-gradient(800px 500px at 18% 18%, rgba(10,85,115,.18), transparent 60%),
        radial-gradient(820px 520px at 84% 22%, rgba(61,167,209,.12), transparent 62%),
        radial-gradient(760px 520px at 55% 80%, rgba(0,0,0,.12), transparent 62%),
        url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221400%22%20height%3D%22900%22%20viewBox%3D%220%200%201400%20900%22%3E%0A%20%20%3Crect%20width%3D%221400%22%20height%3D%22900%22%20fill%3D%22transparent%22%2F%3E%0A%20%20%3C%21--%20black%20planes%20%28very%20subtle%29%20--%3E%0A%20%20%3Crect%20x%3D%2280%22%20y%3D%22520%22%20width%3D%22520%22%20height%3D%22260%22%20fill%3D%22%23000000%22%20fill-opacity%3D%220.08%22%2F%3E%0A%20%20%3Crect%20x%3D%22760%22%20y%3D%2290%22%20width%3D%22560%22%20height%3D%22240%22%20fill%3D%22%23000000%22%20fill-opacity%3D%220.06%22%2F%3E%0A%20%20%3C%21--%20hard-edge%20colored%20planes%20--%3E%0A%20%20%3Crect%20x%3D%2290%22%20y%3D%22110%22%20width%3D%22320%22%20height%3D%22240%22%20fill%3D%22%230A5573%22%20fill-opacity%3D%220.16%22%2F%3E%0A%20%20%3Crect%20x%3D%22420%22%20y%3D%22160%22%20width%3D%22260%22%20height%3D%22320%22%20fill%3D%22%232A7FA3%22%20fill-opacity%3D%220.12%22%2F%3E%0A%20%20%3Crect%20x%3D%22710%22%20y%3D%22120%22%20width%3D%22310%22%20height%3D%22220%22%20fill%3D%22%238FC3DA%22%20fill-opacity%3D%220.10%22%2F%3E%0A%20%20%3Crect%20x%3D%221040%22%20y%3D%22180%22%20width%3D%22300%22%20height%3D%22280%22%20fill%3D%22%233DA7D1%22%20fill-opacity%3D%220.10%22%2F%3E%0A%20%20%3Crect%20x%3D%22560%22%20y%3D%22520%22%20width%3D%22380%22%20height%3D%22260%22%20fill%3D%22%238FC3DA%22%20fill-opacity%3D%220.08%22%2F%3E%0A%20%20%3C%21--%20%E2%80%9Cwindow%E2%80%9D%20motif%20without%20grid%3A%20a%20few%20columns%20--%3E%0A%20%20%3Cg%20opacity%3D%220.14%22%20stroke%3D%22%23000%22%20stroke-opacity%3D%220.22%22%20stroke-width%3D%226%22%20fill%3D%22none%22%3E%0A%20%20%20%20%3Crect%20x%3D%22430%22%20y%3D%22180%22%20width%3D%22240%22%20height%3D%22280%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%20%20%3Cg%20opacity%3D%220.18%22%3E%0A%20%20%20%20%3Crect%20x%3D%22450%22%20y%3D%22205%22%20width%3D%2240%22%20height%3D%22210%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.08%22%2F%3E%0A%20%20%20%20%3Crect%20x%3D%22505%22%20y%3D%22205%22%20width%3D%2222%22%20height%3D%22210%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.06%22%2F%3E%0A%20%20%20%20%3Crect%20x%3D%22545%22%20y%3D%22205%22%20width%3D%2234%22%20height%3D%22210%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.07%22%2F%3E%0A%20%20%20%20%3Crect%20x%3D%22590%22%20y%3D%22205%22%20width%3D%2220%22%20height%3D%22210%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.05%22%2F%3E%0A%20%20%20%20%3Crect%20x%3D%22625%22%20y%3D%22205%22%20width%3D%2228%22%20height%3D%22210%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.06%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%20%20%3C%21--%20bold%20diagonals%20%28Morris-ish%29%20--%3E%0A%20%20%3Cg%20fill%3D%22none%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M-80%20210%20L610%2020%20L1520%20250%22%20stroke%3D%22%23000000%22%20stroke-opacity%3D%220.16%22%20stroke-width%3D%2222%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M-90%20200%20L600%2010%20L1510%20240%22%20stroke%3D%22%23ffffff%22%20stroke-opacity%3D%220.20%22%20stroke-width%3D%228%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M-140%20520%20L540%20310%20L1540%20600%22%20stroke%3D%22%23000000%22%20stroke-opacity%3D%220.14%22%20stroke-width%3D%2218%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M-150%20510%20L530%20300%20L1530%20590%22%20stroke%3D%22%230A5573%22%20stroke-opacity%3D%220.16%22%20stroke-width%3D%226%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%20%20%3C%21--%20crisp%20outlines%20%28thin%29%20--%3E%0A%20%20%3Cg%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-opacity%3D%220.16%22%20stroke-width%3D%226%22%3E%0A%20%20%20%20%3Crect%20x%3D%2290%22%20y%3D%22110%22%20width%3D%22320%22%20height%3D%22240%22%2F%3E%0A%20%20%20%20%3Crect%20x%3D%22710%22%20y%3D%22120%22%20width%3D%22310%22%20height%3D%22220%22%2F%3E%0A%20%20%20%20%3Crect%20x%3D%221040%22%20y%3D%22180%22%20width%3D%22300%22%20height%3D%22280%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E"),
        url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221400%22%20height%3D%22900%22%20viewBox%3D%220%200%201400%20900%22%3E%0A%20%20%3Crect%20width%3D%221400%22%20height%3D%22900%22%20fill%3D%22transparent%22%2F%3E%0A%20%20%3C%21--%20big%20hard-edge%20composition%20layer%20%28subtle%29%20--%3E%0A%20%20%3Cg%3E%0A%20%20%20%20%3Crect%20x%3D%2260%22%20y%3D%2270%22%20width%3D%22420%22%20height%3D%22260%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.06%22%2F%3E%0A%20%20%20%20%3Crect%20x%3D%22520%22%20y%3D%2280%22%20width%3D%22360%22%20height%3D%22220%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.05%22%2F%3E%0A%20%20%20%20%3Crect%20x%3D%22920%22%20y%3D%22110%22%20width%3D%22420%22%20height%3D%22260%22%20fill%3D%22%23ffffff%22%20fill-opacity%3D%220.04%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%20%20%3C%21--%20black%20outline%20system%20--%3E%0A%20%20%3Cg%20fill%3D%22none%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M-80%20220%20L640%2030%20L1520%20260%22%20stroke%3D%22%23000%22%20stroke-opacity%3D%220.10%22%20stroke-width%3D%2214%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M-120%20540%20L560%20330%20L1540%20640%22%20stroke%3D%22%23000%22%20stroke-opacity%3D%220.09%22%20stroke-width%3D%2212%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%20780%20L820%20480%20L1500%20650%22%20stroke%3D%22%23000%22%20stroke-opacity%3D%220.08%22%20stroke-width%3D%2210%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%20%20%3C%21--%20colored%20accents%20as%20thin%20bands%20--%3E%0A%20%20%3Cg%20fill%3D%22none%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M-80%20218%20L640%2028%20L1520%20258%22%20stroke%3D%22%230A5573%22%20stroke-opacity%3D%220.14%22%20stroke-width%3D%226%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M-120%20538%20L560%20328%20L1540%20638%22%20stroke%3D%22%233DA7D1%22%20stroke-opacity%3D%220.10%22%20stroke-width%3D%226%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%20778%20L820%20478%20L1500%20648%22%20stroke%3D%22%232A7FA3%22%20stroke-opacity%3D%220.10%22%20stroke-width%3D%226%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E");
      background-size: cover;
      background-position: center;
      filter: saturate(1.02) contrast(1.02);
      -webkit-mask-image: radial-gradient(900px 520px at 50% 18%, #000 42%, transparent 78%);
      mask-image: radial-gradient(900px 520px at 50% 18%, #000 42%, transparent 78%);
    }header{
      position: fixed; left:0; right:0; top:0; z-index: 80;
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      background: rgba(255,255,255,.84);
      border-bottom: 1px solid var(--border);
    }.nav{ display:flex; align-items:center; justify-content:space-between; gap: 16px; padding: 14px 0; position: relative; }.brand{ display:flex; align-items:center; gap:10px; font-weight: 700; letter-spacing: .2px; min-width: 0; flex: 1 1 auto; }.logo{ width: 34px; height:34px; border-radius: 14px; background: linear-gradient(135deg, var(--orange), var(--amber));
      box-shadow:none; flex: 0 0 auto; }.brand-text{
      display:block;
      min-width: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      line-height: 1.1;
      font-size: clamp(15px, 1.8vw, 19px);
    }nav{ flex: 0 1 auto; min-width: 0; }nav ul{ display:flex; list-style:none; margin:0; padding:0; gap: 10px; align-items:center; flex-wrap: nowrap; }nav a{ padding: 8px 10px; border-radius: 12px; font-size: 13px; color: var(--muted); border: 1px solid transparent; white-space: nowrap; }nav a:hover{ color: var(--text); border-color: rgba(10,85,115,.20); background: rgba(10,85,115,.10); }.header-actions{
      display:flex;
      align-items:center;
      gap: 10px;
      flex: 0 0 auto;
      min-width: 0;
    }header .btn.primary{ flex: 0 0 auto; white-space: nowrap; }.menu-toggle{
      display:none;
      width: 44px;
      height: 44px;
      padding: 0;
      border-radius: 14px;
      border: 1px solid var(--border);
      background: rgba(255,255,255,.78);
      color: var(--text);
      align-items:center;
      justify-content:center;
      cursor:pointer;
      box-shadow:none;
    }.menu-toggle:hover{ border-color: rgba(10,85,115,.34); }.menu-toggle-bars,
    .menu-toggle-bars::before,
    .menu-toggle-bars::after{
      display:block;
      width: 18px;
      height: 2px;
      border-radius: 999px;
      background: currentColor;
      transition: transform .22s ease, opacity .22s ease;
      content: "";
    }.menu-toggle-bars{ position: relative; }.menu-toggle-bars::before{ position:absolute; top:-6px; left:0; }.menu-toggle-bars::after{ position:absolute; top:6px; left:0; }header.menu-open .menu-toggle-bars{ background: transparent; }header.menu-open .menu-toggle-bars::before{ transform: translateY(6px) rotate(45deg); }header.menu-open .menu-toggle-bars::after{ transform: translateY(-6px) rotate(-45deg); }.mobile-menu{
      display:none;
      position: absolute;
      top: calc(100% + 10px);
      left: 0;
      right: 0;
      padding: 14px;
      border: 1px solid rgba(10,85,115,.22);
      border-radius: 18px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.985), rgba(245,250,253,.985));
      box-shadow:none;
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      z-index: 120;
    }header::after{
      content: "";
      position: fixed;
      inset: var(--header-h) 0 0 0;
      background: rgba(10,25,40,.18);
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s ease;
      z-index: 79;
    }header.menu-open::after{
      opacity: 1;
      pointer-events: auto;
    }.mobile-menu ul{
      list-style:none;
      margin:0;
      padding:0;
      display:grid;
      gap: 8px;
    }.mobile-menu a{
      display:block;
      padding: 12px 13px;
      border-radius: 12px;
      border: 1px solid rgba(10,85,115,.10);
      color: rgba(10,25,40,.96);
      font-weight: 700;
      background: rgba(255,255,255,.96);
      box-shadow:none;
    }.mobile-menu a:hover{
      border-color: rgba(10,85,115,.24);
      background: rgba(232,242,247,.98);
    }.mobile-menu .mobile-cta{
      margin-top: 12px;
      width: 100%;
      justify-content: flex-start;
    }header.is-compact .nav{ gap: 10px; }header.is-compact .brand-text{ font-size: clamp(14px, 1.55vw, 17px); }header.is-compact nav a{ padding: 7px 8px; font-size: 12px; }header.is-compact .header-actions .btn.primary{ padding: 9px 12px; font-size: 12.5px; }header.force-mobile-nav nav{ display:none; }header.force-mobile-nav .header-actions .btn.primary{ display:none; }header.force-mobile-nav .menu-toggle{ display:inline-flex; }header.force-mobile-nav .brand{ flex: 1 1 auto; max-width: calc(100% - 56px); }.card{ background: linear-gradient(180deg, var(--surface), var(--surface2));
      border: 1px solid var(--border); border-radius: var(--radius); box-shadow:none;
      backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }.btn{ appearance:none; border: 1px solid var(--border); background: rgba(255,255,255,.70); color: var(--text);
      padding: 10px 14px; border-radius: 14px; font-weight: 850; cursor:pointer;
      display:inline-flex; align-items:center; justify-content:center; gap: 8px;
      transition: transform .08s ease, box-shadow .22s ease, background .2s ease, border-color .2s ease;
      box-shadow:none; }.btn:hover{ transform: translateY(-1px); border-color: rgba(10,85,115,.34); }.btn.primary{ border-color: transparent; color: white; background: linear-gradient(135deg, var(--orange), var(--amber));
      box-shadow:none; }.btn.primary:hover{ box-shadow:none; }.btn.ghost{ background: transparent; box-shadow:none; }.cover{
      min-height: 100svh;
      display: grid;
      place-items: center;
      padding: calc(var(--header-h) + 28px) 0 42px;
      overflow: hidden;
      position: relative;
      isolation: isolate;
    }.cover-inner{
      width: min(980px, 100%);
      text-align: center;
      padding: 28px 18px;
      position: relative;
    }.cover-kicker{
      display:inline-flex;
      align-items:center;
      gap: 10px;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid var(--border);
      background: rgba(255,255,255,.74);
      color: var(--muted);
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      font-size: 12px;
    }.cover-title{
      margin: 16px 0 10px;
      font-size: clamp(44px, 7vw, 82px);
      line-height: 1.02;
      letter-spacing: -.04em;
    }.cover-sub{
      margin: 0 auto;
      max-width: 56ch;
      color: var(--muted);
      font-size: 15.5px;
    }.scrollcue{
      margin-top: 18px;
      display:flex;
      justify-content:center;
    }.scrollcue a{
      display:inline-flex;
      align-items:center;
      gap: 10px;
      padding: 10px 14px;
      border-radius: 999px;
      border: 1px solid var(--border);
      background: rgba(255,255,255,.62);
      color: rgba(10,25,40,.78);
      font-weight: 600;
      box-shadow:none;
    }.scrollcue .arrow{
      width: 10px; height: 10px;
      border-right: 2px solid rgba(10,25,40,.55);
      border-bottom: 2px solid rgba(10,25,40,.55);
      transform: rotate(45deg);
      margin-top: -2px;
    }.hero{ padding: 52px 0 22px; }.hero-grid{ display:grid; grid-template-columns: 1.25fr .75fr; gap: 18px; align-items: stretch; }.hero-main{ padding: 0 28px 40px; position:relative; overflow:hidden; }[id]{ scroll-margin-top: calc(var(--header-h) + 18px); }.hero-main::before{ content:""; position:absolute; left:-40px; top:-40px; width: 220px; height: 220px; transform: rotate(10deg);
      background: linear-gradient(135deg, rgba(10,85,115,.22), rgba(61,167,209,.12));
      border: 1px solid rgba(0,0,0,.08); border-radius: 22px; pointer-events:none; }.hero-main::after{ content:""; position:absolute; right:-60px; bottom:-70px; width: 320px; height: 220px; transform: rotate(-12deg);
      background: linear-gradient(135deg, rgba(42,127,163,.12), rgba(143,195,218,.10));
      border: 1px solid rgba(0,0,0,.06); border-radius: 24px; pointer-events:none; }.tag{ display:inline-flex; align-items:center; gap: 8px; padding: 7px 10px; border-radius: 999px; font-weight: 900; font-size: 12px;
      color: rgba(10,25,40,.80); background: rgba(255,255,255,.72); border: 1px solid var(--border); position: relative; z-index: 1; }h1{ margin: 12px 0 10px; font-size: clamp(30px, 4.3vw, 44px); line-height: 1.12; letter-spacing: -.02em; position: relative; z-index: 1; }.glow{ background: linear-gradient(90deg, var(--orange), var(--cyan)); -webkit-background-clip: text; background-clip: text; color: transparent; }.lead{ margin: 0 0 18px; color: var(--muted); font-size: 16px; max-width: 64ch; position: relative; z-index: 1; }.meta{ display:flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; color: var(--muted); font-size: 13px; position: relative; z-index: 1; }.pill{ display:inline-flex; gap: 8px; align-items:center; padding: 9px 10px; border-radius: 999px; border: 1px solid var(--border); background: rgba(255,255,255,.68); }.hero-side{ padding: 18px; display:flex; flex-direction:column; gap: 12px; }.kv{ padding: 14px; border-radius: 16px; border: 1px solid var(--border); background: rgba(255,255,255,.70); }.kv h3{ margin:0 0 6px; font-size: 13px; letter-spacing:.02em; color: rgba(10,25,40,.78); }.kv p{ margin:0; font-size: 13px; color: var(--muted); }.status{ display:flex; gap:10px; flex-wrap:wrap; }.chip{ display:inline-flex; align-items:center; gap: 8px; padding: 8px 10px; border-radius: 14px; border: 1px solid var(--border);
      background: rgba(255,255,255,.68); font-size: 13px; font-weight: 700; color: rgba(10,25,40,.82); }.dot{ width: 8px; height: 8px; border-radius: 999px; background: var(--teal); box-shadow:none; }section{ padding: 22px 0; }.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap: 16px; margin-bottom: 12px; }.section-head h2{ margin:0; font-size: 18px; letter-spacing: .02em; }.section-head p{ margin:0; color: var(--muted); font-size: 13px; }.grid-3{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }.grid-2{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }.mini{ padding: 16px; position:relative; overflow:hidden; }.mini h3{ margin:0 0 6px; font-size: 15px; font-weight: 500;}.mini p{ margin:0; color: var(--muted); font-size: 15px; }.mini::after{ content:""; position:absolute; left: 0; bottom: 0; height: 6px; width: 100%;
      background: linear-gradient(90deg, rgba(10,85,115,.92), rgba(42,127,163,.82), rgba(143,195,218,.72)); opacity: .9; }.icon{ width: 34px; height:34px; border-radius: 14px; display:inline-flex; align-items:center; justify-content:center;
      background: rgba(255,255,255,.72); border: 1px solid var(--border); margin-bottom: 10px; font-weight: 900;
      color: rgba(10,25,40,.86); box-shadow:none; }.timeline{ display:flex; flex-direction:column; gap: 10px; }.slot{ display:grid; grid-template-columns: 120px 1fr; gap: 12px; align-items:flex-start; padding: 14px; border-radius: 16px;
      border: 1px solid var(--border); background: rgba(255,255,255,.70); }.time{ font-weight: 950; text-align:center; padding: 10px; border-radius: 14px; border: 1px solid rgba(10,85,115,.22);
      background: rgba(10,85,115,.10); color: rgba(10,25,40,.86); }.slot h4{ margin: 0 0 4px; font-size: 14px; }.slot p{ margin: 0; color: var(--muted); font-size: 13px; }.person{ display:flex; gap: 12px; align-items:flex-start; }.avatar{ width: 44px; height:44px; border-radius: 16px;
      background: linear-gradient(135deg, rgba(10,85,115,.18), rgba(61,167,209,.12));
      border: 1px solid var(--border); box-shadow:none; flex: 0 0 auto; }details{ border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,.70); padding: 12px 14px; }details + details{ margin-top: 10px; }summary{ cursor:pointer; font-weight: 900; color: rgba(10,25,40,.86); }details p{ margin: 8px 0 0; color: var(--muted); font-size: 13px; }footer{ padding: 26px 0 40px; color: var(--muted); }.footer-grid{ display:flex; justify-content:space-between; gap: 16px; flex-wrap:wrap; border-top: 1px solid var(--border); padding-top: 16px; margin-top: 12px; }.small{ font-size: 12.5px; }#about .card.mini{
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
  row-gap: 6px;
}#about .card.mini .icon{
  grid-row: 1 / span 2; /* h3 + p をまたぐ */
  align-self: start;
}#about .card.mini h3{
  margin: 0;
  align-self: center;
  
}#about .card.mini p{
  grid-column: 2;
  margin-top: 2px;
}.staff-card.mini{
      padding: 16px;
    }.staff-card.mini::after{
      /* keep the mini bottom accent bar */
      content:"";
      position:absolute;
      left: 0; bottom: 0;
      height: 6px; width: 100%;
      background: linear-gradient(90deg, rgba(10,85,115,.92), rgba(42,127,163,.82), rgba(143,195,218,.72));
      opacity: .9;
      border-bottom-left-radius: calc(var(--radius) - 1px);
      border-bottom-right-radius: calc(var(--radius) - 1px);
    }.staff-card.mini{
      position: relative;
      overflow: hidden;
    }.staff-meta{
      border-top: 1px solid rgba(20,20,30,.10);
      padding-top: 10px;
      margin-top: 10px;
    }.staff-affil{ margin: 0 0 6px; }.staff-intro{ margin: 0; }.staff-carousel{
      position: relative;
      padding: 14px 54px; /* PCで矢印分の左右余白 */
      overflow: hidden;
    }.staff-viewport{
      overflow: hidden;
      border-radius: calc(var(--radius) - 6px);
    }.staff-track{
      display:flex;
      gap: 14px;
      will-change: transform;
      transition: transform .45s ease;
      touch-action: pan-y; /* 縦スクロールは維持しつつ、横操作も取りやすく */
    }.staff-item{
      flex: 0 0 calc((100% - 28px)/3); /* PC: 3枚表示（gap14×2） */
    }.staff-nav{
      position:absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 40px;
      height: 40px;
      border-radius: 14px;
      border: 1px solid var(--border);
      background: rgba(255,255,255,.72);
      color: rgba(10,25,40,.86);
      font-weight: 950;
      cursor: pointer;
      box-shadow:none;
      display:grid;
      place-items:center;
      z-index: 2;
    }.staff-nav:hover{
      border-color: rgba(10,85,115,.34);
      transform: translateY(-50%) translateY(-1px);
    }.staff-nav.prev{ left: 12px; }.staff-nav.next{ right: 12px; }.staff-dots{
      display:flex;
      justify-content:center;
      gap: 9px;
      padding-top: 12px;
      user-select:none;
    }.staff-dots button{
      width: 8px;
      height: 8px;
      border-radius: 999px;
      border: 1px solid var(--border);
      background: rgba(14,14,18,.16);
      padding: 0;
      cursor: pointer;
    }.staff-dots button[aria-current="true"]{
      background: rgba(10,25,40,.72);
    }.staff-track.is-dragging{
      transition: none !important;
      cursor: grabbing;
    }.person-head{
      display:flex;
      gap: 12px;
      align-items:center;
      margin-bottom: 10px;
    }.person-name{
      margin: 0;
      font-size: 15px;
      line-height: 1.2;
    }.speaker-card .avatar{ box-shadow:none; }.talk-block{
      border-top: 1px solid rgba(20,20,30,.10);
      padding-top: 10px;
    }.talk-title{
      display:flex;
      gap: 10px;
      align-items:baseline;
      flex-wrap:wrap;
      font-size: 13px;
      color: rgba(10,25,40,.86);
    }.talk-label{
      display:inline-flex;
      align-items:center;
      padding: 4px 8px;
      border-radius: 999px;
      border: 1px solid rgba(20,20,30,.12);
      background: rgba(255,255,255,.62);
      color: rgba(10,25,40,.72);
      font-weight: 700;
      font-size: 11px;
      letter-spacing: .02em;
    }.talk-abs{
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 13px;
    }.mini-semi-grid{
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
    }.mini-semi-card{
      padding: 16px;
    }.mini-semi-head{
      display: grid;
      gap: 8px;
    }.mini-semi-title{
      margin: 0;
      font-size: 15px;
      line-height: 1.35;
    }.mini-semi-speaker{
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      align-items: baseline;
      color: var(--muted);
      font-size: 13px;
    }.mini-semi-name{
      color: rgba(10,25,40,.86);
      font-weight: 900;
    }.mini-semi-affil{
      color: var(--muted);
      font-weight: 600;
    }.mini-semi-abs{
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.65;
    }.mini-semi-details{
      margin: 8px 0 0 !important;
      padding: 0 !important;
      border: 0 !important;
      background: none !important;
      box-shadow:none!important;
    }.mini-semi-details summary{
      all: unset; /* reset any inherited button/pill styles */
      cursor: pointer;
      display: inline;
      color: rgba(10,25,40,.78);
      font-weight: 900;
      font-size: 12px;
      letter-spacing: .02em;
      text-decoration: underline;
      text-underline-offset: 3px;
    }.mini-semi-details summary:hover{
      opacity: 1;
    }.mini-semi-details summary:focus-visible{
      outline: none;
    }.mini-semi-details summary::-webkit-details-marker{
      display: none;
    }.mini-semi-details summary::after{
      content: " ›";
      display: inline-block;
      transform: rotate(90deg);
      opacity: .6;
      transition: transform .25s ease;
    }.mini-semi-details[open] summary::after{
      transform: rotate(-90deg);
    }#schedule,
    #faq{
      background: transparent !important;
    }#schedule .slot,
    #faq details{
      background: linear-gradient(180deg, var(--surface), var(--surface2)) !important;
      border: 1px solid var(--border) !important;
      box-shadow:none;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
    }.hero-main{
      padding-top: 32px !important;
      display: flex !important;
      flex-direction: column !important;
      justify-content: center !important;
    }.hero-side{
      display: flex !important;
      flex-direction: column !important;
      justify-content: flex-start !important;
      align-items: stretch;
    }#faq details{
      padding: 14px 16px;
    }#faq summary{
      font-weight: 600; /* 太字にしない */
    }.faq-qa{
      margin-top: 12px;
      display: grid;
      gap: 12px;
    }.faq-qa .qa{
      display: grid;
      gap: 8px;
    }.faq-qa .q,
    .faq-qa .a{
      display: grid;
      grid-template-columns: 22px 1fr;
      column-gap: 10px;
      align-items: start;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.65;
    }.faq-qa .q{
      color: rgba(10,25,40,.86);
      font-weight: 700;
    }.faq-qa .a{
      color: var(--muted);
      font-weight: 600;
    }.faq-qa .qa-label{
      display: inline-flex;
      width: 22px;
      justify-content: flex-start;
      font-weight: 900;
      letter-spacing: .02em;
    }.faq-qa .qa-text{
      font-weight: inherit;
    }.section-head h2{
      font-size: clamp(22px, 3.2vw, 28px);
      letter-spacing: .04em;
      font-weight: 900;
    }.speaker-card .person-name{
      font-size: 17px;
      font-weight: 900;
    }.speaker-card .talk-title{
      font-size: 15px;
    }.speaker-card .talk-title strong{
      font-size: 16px;
      font-weight: 800;
    }.speaker-card .talk-abs{
      font-size: 14px;
      line-height: 1.7;
    }#contact .org-card{
  padding: 20px 22px;
}#contact h3{
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  margin: 0;                 /* ← remove margin completely */
  padding-top: 12px;         /* spacing is padding, not margin */
  padding-bottom: 8px;
}#contact .org-card > h3:first-child{
  padding-top: 0;
}#contact .org-desc{
  margin-top: 10px;
}#contact .org-desc p{
  margin: 10px 0;
}.mini-semi-title{
  font-weight: 700;          /* was heavier */
  letter-spacing: .04em;     /* loosen to avoid clogging */
  line-height: 1.4;
}.mini-semi-speaker,
.mini-semi-name,
.mini-semi-affil,
.mini-semi-abs{
  font-weight: 400;
}.mini-semi-name{
  color: rgba(10,25,40,.82);
}.mini-semi-details summary{
  font-weight: 500;
}.section-head h2{
  font-size: clamp(26px, 3.6vw, 34px); /* slightly larger */
  font-weight: 650;                   /* lighter than bold */
  letter-spacing: .08em;              /* prevent clogging */
  line-height: 1.25;                  /* vertical breathing */
}#contact .org-card{
  display: flex;
  flex-direction: column;
  justify-content: center;   /* vertical centering */
  gap: 12px;                 /* consistent internal rhythm */
  padding: 24px 22px;
}#contact h3{
  margin: 0;
  padding: 0;
}#contact .org-desc{
  margin: 0;
}#about .grid-3{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}#about .card.mini{
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 12px;
  row-gap: 6px;
  align-items: center;
}#about .card.mini .icon{
  grid-column: 1;
  grid-row: 1;
}#about .card.mini h3{
  grid-column: 2;
  grid-row: 1;
  margin: 0;
}#about .card.mini p{
  grid-column: 1 / -1; /* full width below */
  grid-row: 2;
  margin-top: 4px;
}#about .card.mini{
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "icon title"
    "desc desc";
  column-gap: 12px;
  row-gap: 6px;
}#about .card.mini .icon{
  grid-area: icon;
  align-self: center;
}#about .card.mini p{
  grid-area: desc;
  margin-top: 4px;
}#about .card.mini{
  align-items: center; /* center items within grid cells */
}#about .card.mini .icon,
#about .card.mini h3{
  align-self: center;
  line-height: 1.2;
}#how .how-grid{
  display:grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, .82fr);
  gap: 14px;
  align-items: stretch;
}#how .how-card-1{ grid-column: 1; grid-row: 1 / span 2; }#how .how-card-2{ grid-column: 2; grid-row: 1; }#how .how-card-3{ grid-column: 2; grid-row: 2; }#how .card.mini{
  min-height: 100%;
}#how .mini-body{
  display:flex;
  flex-direction:column;
  gap: 10px;
}#how .mini-body p{
  margin: 0;
}#how .doc-links{
  display:grid;
  gap: 10px;
  margin-top: 6px;
}#how .doc-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.72);
  transition: transform .08s ease, border-color .2s ease, background .2s ease;
}#how .doc-link:hover{
  transform: translateY(-1px);
  border-color: rgba(10,85,115,.32);
  background: rgba(247,251,253,.95);
}#how .doc-link strong{
  display:block;
  font-size: 15px;
  line-height: 1.4;
}#how .doc-link span{
  color: var(--muted);
  font-size: 13px;
}#how .doc-link .ext{
  flex: 0 0 auto;
  font-size: 14px;
  color: rgba(10,25,40,.62);
}#about .card.mini,
#how   .card.mini{
  display: grid !important;
  grid-template-columns: 40px 1fr !important; /* fixed icon column */
  grid-template-rows: auto auto !important;
  column-gap: 12px !important;
  row-gap: 8px !important;
  align-items: stretch !important;
}#about .card.mini .icon,
#how   .card.mini .icon{
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: center !important;
  align-self: center !important;
  margin: 0 !important; /* kill margin-bottom */
}#about .card.mini h3,
#how   .card.mini h3{
  grid-column: 2 !important;
  grid-row: 1 !important;
  margin: 0 !important;
  align-self: center !important;
}#about .card.mini p,
#how   .card.mini p{
  grid-column: 1 / -1 !important; /* full width under icon+title row */
  grid-row: 2 !important;
  margin-top: 4px !important;
}#how .card.mini{
  grid-template-areas:
    "icon title"
    "body body" !important;
  grid-template-rows: auto auto !important;
}#how .card.mini .icon{ grid-area: icon !important; }#how .card.mini h3{ grid-area: title !important; }#how .card.mini .mini-body{
  grid-area: body !important;
  margin-top: 6px;
}#how .card.mini .mini-body p{
  grid-column: auto !important;
  grid-row: auto !important;
  margin: 0;
}#how .card.mini .mini-body p + p{ margin-top: 10px; }#how .card.mini .mini-body .btn{ margin-top: 0; }.btn{
  font-weight: 650 !important;   /* was ~850 */
  letter-spacing: .04em;         /* add breathing room */
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}.btn.primary{
  font-weight: 680 !important;   /* slightly stronger, still safe */
}p{
  font-size: 15px;          /* was ~13px */
  line-height: 1.75;
}.mini p{
  font-size: 15px;
  line-height: 1.75;
}.small,
.section-head p,
.kv p,
.slot p,
.talk-abs,
.mini-semi-abs,
.faq-qa .a,
.faq-qa .q{
  font-size: 14px;
  line-height: 1.7;
}.lead{
  font-size: 17px;
  line-height: 1.7;
}.btn{
  padding: 11px 16px;
}.card.mini{
  padding: 18px;
}p{
  font-size: 15px;
  line-height: 1.75;
}.mini p,
.slot p,
details p,
.talk-abs,
.mini-semi-abs{
  font-size: 14.5px;
  line-height: 1.75;
}.small,
.section-head p,
.kv p{
  font-size: 14px;
  line-height: 1.7;
}.section-head h2{
  font-size: clamp(26px, 3.6vw, 34px);
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.22;
}h3{
  font-size: clamp(18px, 2.2vw, 22px);
  font-weight: 720;
  letter-spacing: .03em;
  line-height: 1.28;
}.card.mini h3{
  font-size: clamp(19px, 2.4vw, 24px);
  font-weight: 740;
  letter-spacing: .03em;
}.kv h3{
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .10em;
  text-transform: uppercase;
}#about .card.mini h3{
  font-size: clamp(20px, 2.6vw, 26px);
  font-weight: 700;
  letter-spacing: .04em;
}.mini-semi-title{
  font-size: 15px;
  font-weight: 650;
  letter-spacing: .02em;
  line-height: 1.45;
}#mini-seminars .mini h3.mini-semi-title{
  font-size: 15px;
  font-weight: 650;
}.btn{
  font-weight: 650;
  letter-spacing: .04em;
  padding: 11px 16px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}.btn.primary{ font-weight: 680; }.avatar{
  width: 96px;
  height: 96px;
  border-radius: 18px;
  overflow: hidden;
  flex: 0 0 auto;

  background: rgba(255,255,255,.6);
  border: 1px solid var(--border);
  box-shadow:none;
}.avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;      /* 顔中心でトリミング */
  object-position: center;
  display: block;
}.speaker-card .avatar{
  width: 180px;
  height: 180px;
  border-radius: 12px;
}.staff-card .avatar{
  width: 100px;
  height: 100px;
  border-radius: 10px;
}.avatar{
  overflow: hidden;
  flex: 0 0 auto;
  background: rgba(255,255,255,.6);
  border: 1px solid var(--border);
  box-shadow:none;
}.avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;      /* トリミングして枠に合わせる */
  object-position: center;
  display: block;
}#schedule .schedule-2day{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  overflow: visible;
}#schedule .day-col{ padding: 16px; }#schedule .day-head{
  padding: 8px 8px 14px;
  border-bottom: 1px solid rgba(20,20,30,.10);
  margin-bottom: 12px;
}#schedule .day-head-row{
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}#schedule .day-mark{
  font-weight: 950;
  letter-spacing: .14em;
  font-size: clamp(22px, 3.0vw, 36px);
  line-height: 1.02;
  background: linear-gradient(90deg, var(--route-accent, var(--orange)), rgba(14,14,18,.84));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  position: relative;
}#schedule .day-mark::after{
  content:"";
  position:absolute;
  left: 0;
  bottom: -9px;
  width: 84px;
  height: 7px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--route-accent, var(--orange)), rgba(255,255,255,0));
  opacity: .92;
}#schedule .day-meta{
  text-align: right;
  display:flex;
  flex-direction: column;
  gap: 6px;
  min-width: 150px;
}#schedule .day-date{
  font-size: 16px;
  font-weight: 850;
  letter-spacing: .04em;
  color: rgba(10,25,40,.88);
}#schedule .day-time{
  display:inline-flex;
  align-self: flex-end;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(20,20,30,.12);
  background: rgba(255,255,255,.62);
  color: rgba(10,25,40,.72);
  font-size: 12.5px;
  font-weight: 650;
  letter-spacing: .02em;
}#schedule .route{
  display: grid;
  gap: 10px;
}#schedule .stop{
  display: grid;
  grid-template-columns: 128px 1fr;
  gap: 12px;
  
  padding: 12px 10px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,.74), rgba(255,255,255,.62));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  position: relative;
  transition: transform .10s ease, box-shadow .22s ease, border-color .22s ease;
    align-items: flex-start;
}#schedule .stop:hover{
  border-color: color-mix(in srgb, var(--route-accent, var(--orange)) 28%, rgba(20,20,30,.12));
  box-shadow:none;
  transform: translateY(-1px);
}#schedule .tcol{
  /* dot center X within tcol border-box:
     tbadge padding-left(10) + dot radius(6) = 16
     plus tcol padding-left(10) => 26px */
  --route-x: 26px;
  position: relative;
  padding-left: 10px; /* gives breathing room for the line */
  min-height: 40px;
}#schedule .stop .tcol::before{
  content:"";
  position:absolute;
  left: var(--route-x);
  top: -14px;
  bottom: -14px;
  width: 3px;
  background: linear-gradient(180deg,
    rgba(14,14,18,.10),
    color-mix(in srgb, var(--route-accent, var(--orange)) 72%, transparent),
    rgba(14,14,18,.10)
  );
  border-radius: 999px;
  opacity: .95;
  filter: drop-shadow(0 6px 12px rgba(12,12,20,.12));
}#schedule .route .stop:first-child .tcol::before{ top: calc(10px + 6px); }#schedule .route .stop:last-child  .tcol::before{ bottom: calc(10px + 6px); }#schedule .tbadge{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 10px 10px;
  border-radius: 14px;
  border: 1px solid rgba(20,20,30,.12);
  background: rgba(255,255,255,.62);
  color: rgba(10,25,40,.86);
  font-weight: 900;
  justify-content: flex-start;
  width: 100%;
  position: relative;
  overflow: hidden;
}#schedule .tbadge::after{
  content:"";
  position:absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--route-accent, var(--orange)), rgba(255,255,255,0));
  opacity: .9;
}#schedule .t-dot{
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--route-accent, var(--orange));
  box-shadow:none;
  flex: 0 0 auto;
  position: relative;
  z-index: 1; /* above the line */
}#schedule .t-dot::after{
  content:"";
  position:absolute;
  inset: 3px;
  border-radius: 999px;
  background: rgba(255,255,255,.85);
  opacity: .6;
}#schedule .ttext{
  font-size: 14px;
  letter-spacing: .02em;
}#schedule .sbody h4{ margin: 0 0 4px; font-size: 14px; }#schedule .sbody p{ margin: 0; color: var(--muted); font-size: 13.5px; }#schedule .section-head p .swipe-hint{
  display: none;
  margin-left: 10px;
  color: rgba(14,14,18,.62);
  font-weight: 700;
}#schedule .stop{
  grid-template-columns: 28px 120px 1fr !important;
  column-gap: 12px !important;
  align-items: stretch !important;
}#schedule .stop .tcol::before{ content: none !important; }#schedule .rail{
  position: relative;
  display: flex;
  justify-content: center;
  padding-top: 10px; /* aligns dot with the time pill */
}#schedule .rail::before{
  content:"";
  position:absolute;
  left: 50%;
  top: -34px;
  bottom: -34px;
  width: 3px;
  transform: translateX(-50%);
  background: linear-gradient(180deg,
    rgba(14,14,18,.10),
    color-mix(in srgb, var(--route-accent, var(--orange)) 72%, transparent),
    rgba(14,14,18,.10)
  );
  border-radius: 999px;
  opacity: .95;
  filter: drop-shadow(0 6px 12px rgba(12,12,20,.12));
}#schedule .route .stop:first-child .rail::before{ top: calc(10px + 6px); }#schedule .route .stop:last-child  .rail::before{ bottom: calc(10px + 6px); }#schedule .rail-dot{
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--route-accent, var(--orange));
  box-shadow:none;
  position: relative;
  z-index: 1;
}#schedule .rail-dot::after{
  content:"";
  position:absolute;
  inset: 3px;
  border-radius: 999px;
  background: rgba(255,255,255,.85);
  opacity: .6;
}#schedule .stop{ overflow: visible; }#schedule .rail{ z-index: 0; }#schedule .rail::before{ z-index: 0; }#schedule .rail-dot{ z-index: 1; }#schedule .tcol, #schedule .sbody{ position: relative; z-index: 2; }#schedule .tcol{
  padding-left: 0 !important;
  min-height: unset !important;
}#schedule .tbadge{
  width: 100%;
  justify-content: center;
  gap: 0;
  padding: 10px 12px !important;
}#schedule .tbadge::after{
  /* keep accent bar */
}#schedule .timecards{display:flex;flex-direction:column;gap:12px;margin-top:14px;}#schedule .timecard{display:flex;gap:12px;align-items:flex-start;padding:14px 14px;border:1px solid rgba(0,0,0,.08);border-radius:16px;background:rgba(255,255,255,.7);backdrop-filter:blur(6px);}#schedule .time{flex:0 0 auto;min-width:72px;font-weight:700;font-variant-numeric:tabular-nums;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.06);}#schedule .tc-body h4{margin:0 0 4px;font-size:1.02rem;}#schedule .tc-body p{margin:0;color:var(--text2);}#schedule .day-head-row{
  align-items: center;
  gap: 10px;
}#schedule .day-mark{
  white-space: nowrap;
  flex: 0 1 auto;
  min-width: 0;
  font-size: clamp(18px, 2.3vw, 28px);
  letter-spacing: .10em;
}#schedule .day-meta{
  min-width: fit-content;
  flex: 0 0 auto;
}#schedule .day-date{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(10,85,115,.14);
  background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(245,249,252,.86));
  box-shadow:none;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
}#schedule .timecard{
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(10,85,115,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(248,251,253,.72));
  box-shadow:none;
}#schedule .time{
  flex: 0 0 120px;
  min-width: 120px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(10,85,115,.12);
  background: linear-gradient(135deg, rgba(10,85,115,.08), rgba(255,255,255,.92));
  box-shadow:none;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .06em;
  color: rgba(10,25,40,.9);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}#schedule .time-start,
#schedule .time-end{
  display: inline-block;
}#schedule .time-sep{
  font-size: 11px;
  opacity: .58;
  transform: translateY(-1px);
}#schedule .tc-body{
  flex: 1 1 auto;
  text-align: left;
}#schedule .tc-body h4,
#schedule .tc-body p{
  text-align: left;
}.stop {
  display: flex;
  align-items: center;
  /* keep existing gap/padding/background etc. from earlier rules */
}.stop > :last-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
}.time {
  align-self: center;
}body{
  background:
    radial-gradient(900px 420px at 18% 12%, rgba(10,85,115,.18), transparent 60%),
    radial-gradient(900px 460px at 84% 18%, rgba(61,167,209,.14), transparent 62%),
    radial-gradient(820px 520px at 50% 92%, rgba(42,127,163,.10), transparent 64%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
}a:focus-visible, button:focus-visible, summary:focus-visible{
  outline: 3px solid rgba(10,85,115,.28);
}header{
  background: rgba(248,252,255,.78);
}.logo{
  background: linear-gradient(135deg, #0A5573, #2A7FA3);
  box-shadow:none;
}nav a:hover{
  color: var(--text);
  border-color: rgba(10,85,115,.22);
  background: rgba(10,85,115,.10);
}.btn:hover{
  border-color: rgba(10,85,115,.34);
}.btn.primary{
  background: linear-gradient(135deg, #0A5573, #2A7FA3);
  box-shadow:none;
}.btn.primary:hover{
  box-shadow:none;
}.glow{
  background: linear-gradient(90deg, #0A5573, #3DA7D1);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}.mini::after,
.staff-card.mini::after{
  background: linear-gradient(90deg, #0A5573, #2A7FA3, #8FC3DA);
}.icon{
  box-shadow:none;
  color: rgba(10,25,40,.86);
}.time{
  border: 1px solid rgba(10,85,115,.22);
  background: rgba(10,85,115,.10);
  color: rgba(10,25,40,.86);
}.dot{
  background: #2A7FA3;
  box-shadow:none;
}.hero-main::before{
  background: linear-gradient(135deg, rgba(10,85,115,.18), rgba(61,167,209,.10));
}.hero-main::after{
  background: linear-gradient(135deg, rgba(42,127,163,.12), rgba(143,195,218,.10));
}.cover-kicker,
.scrollcue a,
.pill,
.kv,
.chip,
.slot,
details,
.tbadge{
  border-color: rgba(10,85,115,.14);
}#schedule .day-mark{
  background: linear-gradient(90deg, var(--route-accent, #0A5573), rgba(10,25,40,.84));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}.news-card{
  padding: 20px !important;
  gap: 14px !important;
}.news-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(10,85,115,.14);
}.news-heading{
  margin: 0;
  font-size: clamp(22px, 2.8vw, 28px) !important;
  line-height: 1.2 !important;
  font-weight: 800;
  letter-spacing: .04em;
}.news-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 34px;
  padding: 6px 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(10,85,115,.16), rgba(61,167,209,.14));
  border: 1px solid rgba(10,85,115,.16);
  color: rgba(10,25,40,.78);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}.news-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}.news-item{
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px 0;
  border-bottom: 1px solid rgba(10,85,115,.10);
}.news-item:first-child{
  padding-top: 2px;
}.news-item:last-child{
  border-bottom: 0;
  padding-bottom: 2px;
}.news-date{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(10,85,115,.08);
  border: 1px solid rgba(10,85,115,.14);
  color: #0A5573;
  font-size: 13px !important;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .03em;
}.news-body{
  min-width: 0;
}.news-text{
  margin: 0;
  color: rgba(10,25,40,.86);
  font-size: 15px !important;
  line-height: 1.75 !important;
}#mini-seminars h3.mini-semi-title{
  font-size: 17px !important;
  line-height: 1.4;
  font-weight: 650;
  letter-spacing: .03em;
}.staff-card .person-name{
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
}.sp-only {
  display: none;
}:root{
  --fs-body: 16px;
  --fs-body-sm: 14px;
  --fs-body-lg: 17px;
  --fs-label: 13px;
  --fs-nav: 14px;
  --fs-btn: 15px;
  --fs-h3: clamp(20px, 2.1vw, 24px);
  --fs-h2: clamp(28px, 3.2vw, 36px);
  --fs-h1: clamp(34px, 4.5vw, 48px);
  --fs-cover: clamp(44px, 7vw, 72px);
}html{ font-size: 16px; }body{ line-height: 1.7; }p,
.mini p,
.slot p,
details p,
.talk-abs,
.mini-semi-abs,
.news-text,
#schedule .sbody p,
.faq-qa .a,
.faq-qa .q{
  font-size: var(--fs-body) !important;
  line-height: 1.75 !important;
}.small,
.section-head p,
.kv p,
.tag,
.pill,
.chip,
.talk-label,
.mini-semi-details summary,
#schedule .day-time,
#schedule .ttext,
#schedule .day-date,
.time,
#schedule .tbadge,
.news-date,
.news-badge,
nav a{
  font-size: var(--fs-label) !important;
  line-height: 1.6 !important;
}nav a{ font-size: var(--fs-nav) !important; }.lead,
.cover-sub{
  font-size: var(--fs-body-lg) !important;
  line-height: 1.75 !important;
}.section-head h2,
.news-heading{
  font-size: var(--fs-h2) !important;
  line-height: 1.25 !important;
  letter-spacing: .04em !important;
}h3,
.card.mini h3,
#about .card.mini h3,
#how .card.mini h3,
.person-name,
.slot h4,
#schedule .sbody h4,
.mini-semi-title,
.speaker-card .talk-title,
.staff-card .person-name{
  font-size: var(--fs-h3) !important;
  line-height: 1.4 !important;
  letter-spacing: .02em !important;
}.kv h3,
.hero-side .kv h3{
  font-size: 12px !important;
  line-height: 1.45 !important;
  letter-spacing: .1em !important;
}h1,
.hero h1{
  font-size: var(--fs-h1) !important;
  line-height: 1.15 !important;
}.cover-title{
  font-size: var(--fs-cover) !important;
  line-height: 1.06 !important;
}.btn,
summary{
  font-size: var(--fs-btn) !important;
  line-height: 1.5 !important;
}.btn{
  padding: 12px 18px !important;
}footer,
footer .small{
  font-size: 13px !important;
  line-height: 1.7 !important;
}.person-text{
  display:flex;
  flex-direction:column;
  gap:4px;
}.person-affil{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color: var(--muted);
  font-weight: 400;
}.staff-card .person-affil{
  max-width: 24ch;
}.staff-track{
  align-items: stretch;
}.staff-item{
  display: flex;
}.staff-card.mini{
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}.staff-card.mini::after{
  display: none !important;
}.staff-card .person-head{
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  max-width: 100%;
  min-height: 124px;
  padding-bottom: 14px;
  margin-bottom: 12px;
}.staff-card .person-head::after{
  content: "";
  position: absolute;
  left: 0;
  right: auto;
  bottom: 0;
  width: 100%;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, #0A5573, #2A7FA3, #8FC3DA);
}.staff-card .person-text{
  min-width: 0;
}.staff-card .person-affil{
  max-width: 24ch;
}.staff-meta{
  flex: 1 1 auto;
  border-top: none !important;
  padding-top: 0;
  margin-top: 0;
}.speaker-card .person-head{
  align-items: flex-start;
}.speaker-card .person-text{
  flex: 1 1 auto;
  min-width: 0;
}.speaker-actions{
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}.speaker-more-btn{
  padding: 9px 14px;
  border-radius: 999px;
  border: 1px solid rgba(10,85,115,.20);
  background: rgba(255,255,255,.86);
  color: rgba(10,25,40,.84);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .02em;
  box-shadow:none;
}.speaker-more-btn:hover{
  border-color: rgba(10,85,115,.36);
  background: rgba(247,251,253,.98);
}.speaker-modal{
  position: fixed;
  inset: 0;
  z-index: 200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}.speaker-modal.is-open{
  display: flex;
}.speaker-modal-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(10,25,40,.46);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}.speaker-modal-dialog{
  position: relative;
  width: min(720px, calc(100vw - 32px));
  max-height: min(78vh, 720px);
  overflow: auto;
  padding: 24px 22px 22px;
  border-radius: 22px;
  border: 1px solid rgba(10,85,115,.18);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,250,253,.98));
  box-shadow:none;
}.speaker-modal-close{
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 14px;
  border: 1px solid rgba(10,85,115,.18);
  background: rgba(255,255,255,.82);
  color: rgba(10,25,40,.84);
  font-size: 22px;
  line-height: 1;
}.speaker-modal-head{
  padding-right: 44px;
  margin-bottom: 14px;
}.speaker-modal-head h3{
  margin: 0 0 6px;
  font-size: clamp(22px, 3vw, 28px);
  line-height: 1.3;
}.speaker-modal-affil{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}.speaker-modal-section + .speaker-modal-section{
  margin-top: 18px;
}.speaker-modal-label{
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  color: rgba(10,25,40,.70);
  text-transform: uppercase;
}.speaker-modal-text{
  margin: 0;
  color: rgba(10,25,40,.82);
  font-size: 14px;
  line-height: 1.8;
}.speaker-modal-keywords{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}.speaker-modal-keyword{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(10,85,115,.18);
  background: rgba(10,85,115,.08);
  color: rgba(10,25,40,.84);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}.speaker-modal-career{
  margin: 0;
  padding-left: 1.2em;
  color: rgba(10,25,40,.82);
  font-size: 14px;
  line-height: 1.8;
}.speaker-modal-career li + li{
  margin-top: 6px;
}.speaker-modal-link{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}.speaker-modal-link.is-disabled{
  opacity: .58;
  pointer-events: none;
}

/* =========================================================
   Performance / visual simplification patch
   - 影は全体的に削除
   ========================================================= */
.card, .btn, .mobile-menu, .staff-nav, .speaker-more-btn, .speaker-modal-dialog, .speaker-modal-close{
  box-shadow: none !important;
}


/* =========================================================
   2) Large desktop only tweaks — @media (min-width: 1200px)
   ========================================================= */
@media (min-width: 1200px){
  .container{
    width: min(var(--maxw), calc(100% - 56px));
  }
  .cover-inner{
    width: min(1080px, 100%);
  }
}

/* =========================================================
   3) Tablet tweaks — @media (max-width: 1180px)
   ========================================================= */
@media (max-width: 1180px){
      main{ padding: 0 22px 36px; }
      .cover-title{ font-size: clamp(40px, 6.4vw, 62px); }
      .cover-sub{ font-size: 14px; }
      nav ul{ gap: 14px; }
      .grid-3{ grid-template-columns: repeat(2, 1fr); }
      .hero-grid{ grid-template-columns: 1fr; }
      .slot{ grid-template-columns: 110px 1fr; }
    }

/* =========================================================
   3) Tablet tweaks — @media (max-width: 1024px)
   ========================================================= */
@media (max-width: 1024px){
  #schedule .schedule-2day{
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* keep 2 columns */
    gap: 12px;
  }
  #schedule .stop{ grid-template-columns: 120px 1fr; }
  #schedule .day-col{ padding: 14px; }

  #schedule .stop{
    grid-template-columns: 28px 110px 1fr !important;
          align-items: center;
    }
}

/* =========================================================
   3) Tablet tweaks — @media (max-width: 980px)
   ========================================================= */
@media (max-width: 980px){
      .cover-inner{ padding: 22px 10px; }
    }

/* =========================================================
   4) Mobile tweaks — @media (max-width: 900px)
   ========================================================= */
@media (max-width: 900px){
          main{ padding: 0 12px 28px; }
      .staff-carousel{ padding: 12px 46px; }
      .staff-item{ flex: 0 0 100%; }
      .staff-nav{ width: 36px; height: 36px; border-radius: 12px; }
    
      .hero-grid{ grid-template-columns: 1fr; }
      .grid-3{ grid-template-columns: 1fr; }
      .grid-2{ grid-template-columns: 1fr; }
      .slot{ grid-template-columns: 1fr; }
      .time{ text-align:left; }
      .grid-overlay{ opacity:.48; mask-image: radial-gradient(900px 520px at 50% 14%, black 46%, transparent 82%); }

      .nav{ gap: 12px; }
      nav,
      header.force-mobile-nav nav{ display:none; }
      .header-actions .btn.primary,
      header.force-mobile-nav .header-actions .btn.primary{ display:none; }
      .menu-toggle,
      header.force-mobile-nav .menu-toggle{ display:inline-flex; }
      header .mobile-menu{ display:none; }
      header.menu-open .mobile-menu{ display:block; }
      .brand{ flex: 1 1 auto; max-width: calc(100% - 56px); }
      .brand-text{ font-size: clamp(14px, 3.8vw, 18px); }
    
      .staff-carousel{ padding: 12px 16px; }
      .staff-item{ flex: 0 0 100%; }
      .staff-nav{ display:none; }
    
      .mini-semi-grid{ grid-template-columns: 1fr; }
      .mini-semi-title{ font-size: 15px; }
    
  #about .grid-3{ grid-template-columns: 1fr; }

  #how .how-grid{
    grid-template-columns: 1fr;
  }
  #how .how-card-1,
  #how .how-card-2,
  #how .how-card-3{
    grid-column: auto;
    grid-row: auto;
  }

  /* container の左右余白を 40px → 20px に縮小 */
  .container{
    width: min(var(--maxw), calc(100% - 20px));
  }

  /* main の左右 padding を削減 */
  main{
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  /* カード内 padding を少しだけ圧縮 */
  .card{
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* schedule の day-col も軽く圧縮 */
  #schedule .day-col{
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .news-card{
    padding: 18px !important;
  }
  .news-item{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .news-date{
    justify-self: start;
  }
  .news-heading{
    font-size: clamp(20px, 6vw, 26px) !important;
  }

  :root{
    --fs-body: 15px;
    --fs-body-sm: 13px;
    --fs-body-lg: 16px;
    --fs-label: 12.5px;
    --fs-nav: 14px;
    --fs-btn: 14px;
    --fs-h3: clamp(18px, 5vw, 22px);
    --fs-h2: clamp(24px, 6vw, 30px);
    --fs-h1: clamp(30px, 8vw, 40px);
    --fs-cover: clamp(38px, 10vw, 56px);
  }

  .news-item{
    gap: 8px;
  }

  .speaker-card .avatar{
    width: 150px;
    height: 150px;
  }

/* スマホでは重い演出を少し軽量化 */
.grid-overlay{ display:none !important; }
header, .card, .mobile-menu, .speaker-modal-backdrop{
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
}

/* =========================================================
   4) Mobile tweaks — @media (max-width: 768px)
   ========================================================= */
@media (max-width: 768px){
  .sp-only {
    display: inline;
  }
}

/* =========================================================
   4) Mobile tweaks — @media (max-width: 720px)
   ========================================================= */
@media (max-width: 720px){
  #schedule .schedule-2day{
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
  }
  #schedule .schedule-2day::-webkit-scrollbar{ display:none; }
  #schedule .day-col{
    flex: 0 0 100%;
    scroll-snap-align: start;
  }
  #schedule .section-head p .swipe-hint{
    display: inline;
  }

  #schedule .stop{
    grid-template-columns: 26px 100px 1fr !important;
          align-items: center;
    }

  #schedule .day-mark{
    font-size: clamp(15px, 4.8vw, 25px);
    letter-spacing: .06em;
  }
  #schedule .day-head-row{
    gap: 8px;
  }
  #schedule .day-date{
    padding: 6px 10px;
    font-size: 12px;
    letter-spacing: .04em;
  }
  #schedule .timecard{
    gap: 10px;
    padding: 13px 14px;
  }
  #schedule .time{
    flex-basis: 104px;
    min-width: 104px;
    font-size: 12px;
    padding: 7px 10px;
  }
}

/* =========================================================
   4) Mobile tweaks — @media (max-width: 640px)
   ========================================================= */
@media (max-width: 640px){
      .nav{ gap: 10px; }
      .logo{ width: 30px; height: 30px; border-radius: 12px; }
      .brand{ max-width: calc(100% - 52px); }
      .brand-text{ font-size: clamp(14px, 4.2vw, 17px); }
      .menu-toggle{ width: 42px; height: 42px; border-radius: 12px; }
      .mobile-menu{ left: 0; right: 0; padding: 12px; }
    
  .stop {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .stop > :last-child {
    align-items: center;
  }

  .speaker-card .person-head{
    flex-direction: column;
    align-items: flex-start;
  }
  .speaker-card .avatar{
    width: 140px;
    height: 140px;
  }
  .speaker-modal-dialog{
    padding: 20px 18px 18px;
  }
}

/* =========================================================
   4) Mobile tweaks — @media (max-width: 480px)
   ========================================================= */
@media (max-width: 480px){
  #schedule .stop{
    grid-template-columns: 24px 1fr !important;
    row-gap: 10px;
          align-items: center;
    }
  #schedule .tcol{
    grid-column: 2;
  }
  #schedule .sbody{
    grid-column: 2;
  }
  #schedule .tbadge{
    justify-content: flex-start;
  }
}

/* =========================================================
   4) Mobile tweaks — @media (max-width:480px)
   ========================================================= */
@media (max-width:480px){
  #schedule .timecard{flex-direction:column;gap:8px;}
  #schedule .time{min-width:auto;flex-basis:auto;align-self:flex-start;}
  #schedule .day-mark{
    font-size: 25px;
    letter-spacing: .04em;
  }
  #schedule .day-date{
    font-size: 11px;
    padding: 5px 8px;
  }
}

/* ===== LOGO IMAGE PATCH ===== */
.logo{
  height:42px;
  width:auto;
  object-fit:contain;
  background:none !important;
}


/* =========================================================
   Speaker abstract balance patch
   - カード上では見える量を揃える
   - 全文はモーダルで確実に読める
   ========================================================= */
#speakers .grid-2{
  align-items: stretch;
}
.speaker-card.mini{
  display: flex;
  flex-direction: column;
  height: 100%;
}
.speaker-card .person-head{
  min-height: 132px;
}
.speaker-card .person-text{
  display: flex;
  flex-direction: column;
}
.speaker-card .speaker-actions{
  margin-top: auto;
}
.speaker-card .talk-block{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(10,85,115,.12);
}
.speaker-card .talk-title{
  min-height: 3.2em;
  line-height: 1.55;
}
.speaker-card .talk-abs-preview{
  position: relative;
  margin-top: 10px;
}
.speaker-card .talk-abs{
  margin: 0;
}
.speaker-card .talk-abs-preview .talk-abs{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 8;
  overflow: hidden;
}
.speaker-card .talk-abs-preview::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3.8em;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(244,249,252,.92) 70%, rgba(244,249,252,.98));
}
.speaker-card .talk-abs-actions{
  margin-top: auto;
  padding-top: 10px;
}
.talk-abs-more-btn{
  font-size: 13px;
  font-weight: 700;
  padding: 9px 14px;
  border-radius: 999px;
}
.talk-abs-template{
  display: none;
}
.abstract-modal-dialog{
  max-width: 760px;
}
.abstract-modal-body{
  color: rgba(10,25,40,.86);
  font-size: 15px;
  line-height: 1.9;
}
.abstract-modal-body p{
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}
@media (max-width: 1180px){
  .speaker-card .talk-title{
    min-height: auto;
  }
}
@media (max-width: 640px){
  .speaker-card .person-head{
    min-height: auto;
  }
  .speaker-card .talk-abs-preview .talk-abs{
    -webkit-line-clamp: 7;
  }
  .abstract-modal-dialog{
    max-width: min(100%, 640px);
  }
}


/* =========================================================
   Speaker abstract inline expand patch
   - 常見先生は全文表示
   - 富田先生のみ短めに省略表示してその場で展開
   - タイトルとアブストラクトの間の余白を縮小
   ========================================================= */
.speaker-card .talk-block{
  gap: 0;
}
.speaker-card .talk-title{
  margin: 0;
  line-height: 1.55;
}
.speaker-card .talk-title + .talk-abs,
.speaker-card .talk-title + .talk-abs-preview{
  margin-top: 4px;
}
.speaker-card .talk-block-full .talk-abs{
  margin: 4px 0 0;
}
.speaker-card .talk-abs-preview{
  position: relative;
  margin-top: 4px;
}
.speaker-card .talk-abs-actions{
  margin-top: 8px;
  padding-top: 0;
}
.speaker-card:nth-of-type(2):not(.is-expanded) .talk-abs-preview .talk-abs{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}
.speaker-card:nth-of-type(2):not(.is-expanded) .talk-abs-preview::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3.2em;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(244,249,252,.92) 72%, rgba(244,249,252,.98));
}
.speaker-card.is-expanded .talk-abs-preview .talk-abs{
  display: block;
  overflow: visible;
}
.speaker-card.is-expanded .talk-abs-preview::after{
  display: none;
}
@media (max-width: 640px){
  .speaker-card:nth-of-type(2):not(.is-expanded) .talk-abs-preview .talk-abs{
    -webkit-line-clamp: 3;
  }
}


/* =========================================================
   Speaker abstract visual tuning patch
   - 「続きを読む」を控えめに
   - タイトル下の不自然な余白を除去
   ========================================================= */
.speaker-card .talk-title{
  min-height: 0 !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.speaker-card .talk-title strong{
  display: inline;
}
.speaker-card .talk-title + .talk-abs,
.speaker-card .talk-title + .talk-abs-preview,
.speaker-card .talk-block-full .talk-abs,
.speaker-card .talk-abs-preview{
  margin-top: 0 !important;
}
.speaker-card .talk-abs-actions{
  margin-top: 4px !important;
}
.talk-abs-more-btn{
  font-size: 11px;
  font-weight: 500;
  padding: 3px 8px;
  border-radius: 999px;
  background: transparent;
  border-color: rgba(10,85,115,.10);
  color: rgba(10,25,40,.58);
  min-height: 0;
  box-shadow: none;
}
.talk-abs-more-btn:hover{
  transform: none;
  background: rgba(10,85,115,.04);
  border-color: rgba(10,85,115,.16);
  color: rgba(10,25,40,.72);
}
.talk-abs-more-btn:focus-visible{
  outline-offset: 1px;
}
