  /* Basteleur — Keussel, 經由 Velvetyne 發行，SIL Open Font License */
  @font-face {
    font-family:"Basteleur";
    src:url("../fonts/Basteleur-Bold.woff2") format("woff2");
    font-weight:700; font-style:normal; font-display:block;
  }
  @font-face {
    font-family:"Basteleur";
    src:url("../fonts/Basteleur-Moonlight.woff2") format("woff2");
    font-weight:400; font-style:normal; font-display:block;
  }

  * { margin:0; padding:0; box-sizing:border-box; }
  html, body, #intro { overscroll-behavior-x:none; }
  html, body { height:100%; background:#000; overflow:hidden;
    font-family:"Anonymous Pro", ui-monospace, Menlo, monospace; }

  /* ============ 網站本體 ============ */
  #site {
    position:fixed; inset:0; z-index:0;
    background:var(--menu-bg, #f2ede4);
    transition:opacity 1.2s ease .3s, background .3s ease;
    opacity:0; overflow-y:auto; overflow-x:hidden;
    scroll-behavior:smooth;
  }
  #site .home { min-height:100vh; display:flex; flex-direction:column; }
  #site.in { opacity:1; }

  #site header {
    display:flex; justify-content:space-between;
    padding:3vmin 3.4vmin 0;
    font-size:clamp(9px,1.2vmin,12px); letter-spacing:.3em;
    text-transform:uppercase; color:#1a1a1a;
  }

  #menu {
    flex:1; display:flex; flex-direction:column; justify-content:center;
    padding:0 6vmin;
  }
  .mi {
    display:flex; align-items:baseline; gap:2.2vmin;
    flex-direction:row-reverse;              /* 大字靠右，小字跟在左邊 */
    text-decoration:none; color:#141414;
    border-top:1px solid rgba(0,0,0,.14);
    padding:.6vmin 0;
  }
  .mi:last-child { border-bottom:1px solid rgba(0,0,0,.14); }
  .mi .zh {
    font-family:"Basteleur", Georgia, serif; font-weight:700;
    font-size:clamp(30px, min(10.5vh, 10vw), 138px);   /* 窄畫面時跟著寬度縮，不爆版 */
    line-height:1.06; display:inline-block; text-align:right;
  }
  .mi .en {
    font-size:clamp(9px,1.3vmin,13px); letter-spacing:.34em;
    text-transform:uppercase; color:#8a837a;
  }
  /* 選到：字亂動、整頁底色灌成那一項的飽和色，字反白 */
  .mi:hover { color:#f2ede4; }
  .mi:hover .zh { animation:menujolt .45s steps(5) 1; }   /* 左右亂走一下就回歸 */
  .mi:hover .en { color:rgba(242,237,228,.75); }
  @keyframes menujolt {
    0%   { transform:translate(0,0); }
    18%  { transform:translate(-38px,2px) skewX(-7deg); }
    38%  { transform:translate(26px,-3px) skewX(4deg); }
    58%  { transform:translate(-17px,1px); }
    78%  { transform:translate(9px,-2px)  skewX(-2deg); }
    100% { transform:translate(0,0); }
  }
  @media (prefers-reduced-motion:reduce) { .mi:hover .zh { animation:none; } }

  /* ---- 同一頁往下的五個區塊 ---- */
  .sec {
    min-height:100vh; padding:14vh 6vmin 8vh;
    border-top:1px solid rgba(255,255,255,.18);
    display:flex; flex-direction:column; justify-content:flex-start;
    background:#000;
    position:relative; z-index:2;
  }
  /* 攝影滑走之後留一屏空檔，讓墊底的大選單露出來 */
  .sec-after-menu { margin-top:100vh; }

  /* 後面的板塊釘住：捲到它就停在滿版，下一塊蓋上來 */
  .sec.pin { position:sticky; top:0; height:100vh; min-height:0; overflow:hidden; }
  .sec h2 {
    font-family:"Basteleur", Georgia, serif; font-weight:700;
    font-size:clamp(34px, min(11vh, 11vw), 150px);
    line-height:1; color:#ff1a00; margin:.1em 0 .3em;   /* 全部同一個紅 */
  }
  .sec-zh {
    font-size:clamp(9px,1.3vmin,13px); letter-spacing:.34em; color:#9a938a;
  }
  .sec-note {
    font-size:clamp(10px,1.4vmin,14px); letter-spacing:.22em;
    text-transform:uppercase; color:#a09a90;
  }

  /* 攝影：同一條有序橢圓環，前排可拖動，後排位於大選單字後方 */
  .photo-pinwrap { position:relative; height:240vh; margin-top:200vh; z-index:2; }
  .sec-photo {
    position:sticky; top:0; height:100vh; min-height:0; overflow:hidden;
    padding-left:0; padding-right:0; padding-bottom:0;
    background:transparent; border-top:none;    /* 懸浮圖層：大選單從照片後面透出來 */
  }
  .sec-photo .sec-zh, .sec-photo h2 { padding-left:6vmin; }
  .hwrap { position:relative; z-index:1; }
  /* 左右手勢控制畫廊；上下滾輪照常翻頁 */
  .hstick {
    height:86vh; display:flex; align-items:center;
    overflow-x:auto; overflow-y:hidden;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
    cursor:grab;
  }
  .hstick::-webkit-scrollbar { display:none; }
  .htrack {
    position:relative;
    display:flex; align-items:center; gap:2.6vw;
    padding:0 6vmin; width:max-content;
  }
  .htrack .ph {
    width:auto; display:block; flex:0 0 auto;
    -webkit-user-drag:none; user-select:none; cursor:zoom-in;
    transition:height .4s cubic-bezier(.3,.8,.3,1), transform .4s cubic-bezier(.3,.8,.3,1);
  }
  .htrack .ph.zoomed {
    height:84vh !important; transform:translateY(0) !important;
    z-index:60; position:relative; cursor:zoom-out;
  }
  .htrack video.ph { height:52vh; aspect-ratio:16/9; object-fit:cover; }
  .photo-pinwrap.orbit-ready { pointer-events:none; }
  .photo-all-button {
    position:absolute; right:5vmin; bottom:5vh; z-index:40; pointer-events:auto;
    padding:12px 20px; border:1px solid #28785c; border-radius:30px;
    background:#111e; color:#28785c; font:inherit; cursor:pointer;
  }
  #photoLibrary {
    width:94vw; max-width:1400px; height:90vh; max-height:90vh; margin:auto;
    padding:24px; border:1px solid #444; background:#111; color:#eee;
  }
  #photoLibrary::backdrop { background:rgba(0,0,0,.85); }
  .photo-library-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
  #photoLibrary button { cursor:pointer; font:inherit; color:inherit; }
  .photo-library-header button { padding:10px 16px; background:transparent; border:1px solid #666; }
  #photoLibraryGrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:16px; }
  #photoLibraryGrid button { background:#191919; border:0; padding:0; }
  #photoLibraryGrid img, #photoLibraryGrid video { display:block; width:100%; height:210px; object-fit:contain; }
  #photoLibraryGrid span { display:block; padding:8px; font-size:12px; color:#aaa; }
  #photoLibraryDetail img, #photoLibraryDetail video { display:block; width:100%; height:70vh; object-fit:contain; }
  #photoLibrary [hidden] { display:none !important; }

  /* 不建立額外 stacking context：每張原照片可依深度跨越文字那一層。 */
  #photoDepth {
    position:absolute; inset:0; z-index:0;
    overflow:hidden; pointer-events:none;
  }
  #photoDepth:focus-visible { outline:1px solid #ff1a00; outline-offset:-8px; }
  .photo-depth-image {
    position:absolute; left:0; top:0; display:block;
    max-width:none; object-fit:contain; opacity:0;
    transform-origin:center; pointer-events:none;
    -webkit-user-drag:none; user-select:none;
    will-change:transform, opacity;
  }
  video.photo-depth-image { object-fit:cover; object-position:50% 30%; }
  .photo-depth-image.is-front { pointer-events:auto; cursor:grab; touch-action:pan-y; }
  img.photo-depth-image.is-front { cursor:grab; }
  #photoDepth.dragging .photo-depth-image.is-front { cursor:grabbing; }
  @media (prefers-reduced-motion:reduce) {
    .htrack .ph, .photo-depth-image { transition:none; }
  }

  #music.sec.pin { position:relative; height:100vh; padding:4vh 0; background:#05060a; z-index:28; }
  .music-tools,
  .digital-tools { height:6vh; display:flex; align-items:center; justify-content:flex-end; gap:24px; padding:0 5vmin; }
  .music-tools a { color:#5f83a8; font-size:13px; text-underline-offset:4px; }
  .digital-tools a { color:#28785c; font-size:13px; text-underline-offset:4px; }
  #musicFrame { display:block; width:100%; height:86vh; border:0; background:#05060a; }
  #digital.sec.pin { position:relative; height:100vh; padding:4vh 0; background:#080808; z-index:29; }
  #digitalFrame { display:block; width:100%; height:86vh; border:0; background:#080808; }
  /* Dance 使用獨立、不透明的舞蹈監控室，與前面的圖層隔開。 */
  #dance.sec.pin { position:relative; height:auto; min-height:100vh; padding:5vh 0 0; background:transparent; isolation:isolate; z-index:30; }
  #intro.dance-visible #music, #intro.dance-visible #digital { visibility:hidden; }
  #intro.game-visible #music, #intro.game-visible #digital { visibility:hidden; }
  .dance-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 5vmin 3vh; }
  .dance-heading a { color:#aaa; font-size:13px; }
  .dance-frame-viewport { position:relative; width:100%; height:90vh; overflow:hidden; }
  #danceFrame { display:block; position:absolute; inset:0; width:100%; height:100%; border:0; background:transparent; }
  @media (max-width:640px) {
    /* 手機同時有多個 3D／影片板塊時，降低非必要的雪花重繪頻率。 */
    .win.arc:not(.hero) .grain { animation-duration:.9s; }
    /* 給嵌入頁稍寬的虛擬視窗，再縮回滿版，避免手機內容擠窄。 */
    #digital { overflow:hidden; }
    #digitalFrame {
      width:108%; height:93vh;
      transform:scale(.925); transform-origin:top left;
    }
    #musicFrame { height:86svh; }
    .dance-frame-viewport { height:72svh; }
    #danceFrame {
      left:50%; right:auto; width:114%; height:94svh;
      transform:translateX(-50%) scale(.72); transform-origin:top center;
    }
  }
  /* 最後的 Gaming：獨立遊戲畫面，內容高度隨遊戲調整 */
  #gaming.sec.pin {
    position:relative; height:auto; min-height:100vh; overflow:visible;
    padding:3vh 5vmin;
    background:#0b0817; border-top:1px solid #3a2d6e; z-index:31;
  }
  .gaming-wrap { width:100%; max-width:1000px; margin:0 auto; }
  .gaming-heading {
    display:flex; align-items:baseline; justify-content:space-between;
    flex-wrap:wrap; gap:12px 24px; margin-bottom:16px;
  }
  .gaming-heading h2 { margin:0; font-size:clamp(30px,7vh,72px); }
  .gaming-viewport { position:relative; width:100%; overflow:hidden; }
  .gaming-open {
    color:#b5ada4; font-size:13px; line-height:1.5;
    text-decoration:underline; text-underline-offset:5px;
  }
  .gaming-open:hover { color:#ff1a00; }
  .gaming-open:focus-visible { outline:2px solid #ff1a00; outline-offset:6px; }
  .gaming-frame {
    display:block; position:absolute; left:50%; top:0; width:1000px; height:940px; min-height:0; transform-origin:top left;
    border:0; background:#0b0817;
    color-scheme:normal;
  }

  /* ============ INTRO ============ */
  #intro { position:fixed; inset:0; z-index:10; background:#000; overflow-y:auto; overflow-x:hidden; scroll-behavior:smooth; }
  #intro.out { opacity:0; transition:opacity 1s ease; pointer-events:none; }

  /* ---- 開場文字：打字打進來、顆粒散掉，都畫在同一張 canvas 上 ---- */
  #titleCanvas {
    position:absolute; inset:0; z-index:1;
    width:100%; height:100%; display:block; pointer-events:none;
    /* 螢幕過曝：每顆亮起來的像素都會往外溢出光暈 */
    filter:drop-shadow(2px 0 1px rgba(255,45,0,.72))
           drop-shadow(-2px 0 1px rgba(255,45,0,.72))
           drop-shadow(0 0 6px rgba(255,10,0,.45));
  }
  #titleCanvas.gone { display:none; }

  /* ---- 角落標記 ---- */
  .tag {
    position:absolute; z-index:60; color:#5a5a5a;
    font-size:clamp(9px,1.15vmin,12px); letter-spacing:.28em;
    text-transform:uppercase; pointer-events:none;
    opacity:0; transition:opacity .8s ease;
  }
  .tag.show { opacity:1; }
  .tag.tl { top:3vmin; left:3.2vmin; color:#28785c; }
  .tag.tr { top:3vmin; right:3.2vmin; }
  .tag.bl { top:calc(3vmin + 2.2em); left:3.2vmin; }

  /* ============ 播放器彈窗：90 年代那種灰色 3D 視窗 ============ */
  .win {
    position:absolute;
    background:#c0c0c0;
    padding:3px;
    /* 經典的凸起邊框：左上白、右下黑 */
    box-shadow:
      inset -1px -1px 0 #0a0a0a,
      inset  1px  1px 0 #dfdfdf,
      inset -2px -2px 0 #808080,
      inset  2px  2px 0 #ffffff,
      3px 3px 0 rgba(0,0,0,.45);
    font-family:Tahoma, "MS Sans Serif", Geneva, Verdana, sans-serif;
    opacity:0; transform-origin:center center;
  }
  /* 浮出來，不是彈出來 —— 沒有回彈，慢 */
  .win.pop   { animation:pop 2.4s cubic-bezier(.22,.61,.36,1) forwards; }
  @keyframes pop {
    0%   { opacity:0; transform:scale(1.035); }
    100% { opacity:1; transform:scale(1); }
  }
  .win.close { animation:closeWin 1.6s cubic-bezier(.4,0,.5,1) forwards; }
  @keyframes closeWin {
    0%   { opacity:1; transform:scale(1); }
    100% { opacity:0; transform:scale(1.015); }
  }

  /* 藍色標題列 */
  .bar {
    height:19px; display:flex; align-items:center; gap:4px; padding:0 2px 0 3px;
    background:linear-gradient(90deg,#000080 0%,#1084d0 100%);
    user-select:none;
  }
  .bar .ico {
    width:13px; height:13px; flex:0 0 auto; background:#c0c0c0;
    box-shadow:inset -1px -1px 0 #808080, inset 1px 1px 0 #fff;
    position:relative;
  }
  .bar .ico::after {
    content:""; position:absolute; left:4px; top:3px;
    border-left:5px solid #000080; border-top:3.5px solid transparent;
    border-bottom:3.5px solid transparent;
  }
  .bar .title {
    flex:1; color:#fff; font-size:11px; font-weight:bold; letter-spacing:.02em;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    text-shadow:none;
  }
  .bar .btns { display:flex; gap:2px; flex:0 0 auto; }
  .bar .btns b {
    width:16px; height:14px; background:#c0c0c0;
    display:flex; align-items:center; justify-content:center;
    font-size:9px; font-weight:bold; color:#000; line-height:1; cursor:pointer;
    box-shadow:
      inset -1px -1px 0 #0a0a0a,
      inset  1px  1px 0 #ffffff,
      inset -2px -2px 0 #808080,
      inset  2px  2px 0 #dfdfdf;
  }
  .bar .btns b:active {
    box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #dfdfdf;
  }

  /* 影片區：往內凹的黑框 */
  .screenwrap {
    margin:3px 2px 2px; background:#000; padding:2px;
    box-shadow:
      inset  1px  1px 0 #808080,
      inset -1px -1px 0 #ffffff,
      inset  2px  2px 0 #0a0a0a,
      inset -2px -2px 0 #dfdfdf;
  }
  .screenwrap {
    position:relative; overflow:hidden;
    /* 映像管玻璃的弧面：水平跟垂直的圓角不一樣，四角才會像被拉進去 */
    border-radius:6% / 4%;
  }

  /* 玻璃：一道斜反光 + 邊緣壓暗，讓它像一塊有厚度的螢幕而不是貼圖 */
  .win .glass {
    position:absolute; inset:0; z-index:5; pointer-events:none;
    border-radius:inherit;
    background:
      /* 亮部溢出：畫面中央的輝光 */
      radial-gradient(88% 66% at 50% 42%,
        rgba(255,255,255,.10) 0%,
        rgba(255,255,255,.03) 42%,
        rgba(255,255,255,0) 68%),
      linear-gradient(116deg,
        rgba(255,255,255,.11) 0%,
        rgba(255,255,255,.045) 18%,
        rgba(255,255,255,0) 38%),
      radial-gradient(125% 118% at 50% 44%,
        rgba(0,0,0,0) 52%,
        rgba(0,0,0,.34) 84%,
        rgba(0,0,0,.72) 100%);
  }
  .win .screen { display:block; width:100%; aspect-ratio:9/16;
    object-fit:cover; background:#000;
    image-rendering:pixelated;          /* 低解析素材放大 = 粗顆粒 */
    transition:opacity .06s linear;
    filter:contrast(1.03) brightness(.97) saturate(.88); }

  /* 掃描線 */
  .win .scan {
    position:absolute; inset:0; pointer-events:none; z-index:2;
    background:repeating-linear-gradient(to bottom,
      rgba(0,0,0,0) 0px, rgba(0,0,0,0) 2px,
      rgba(0,0,0,.20) 3px, rgba(0,0,0,.20) 4px);
  }

  /* 電視雪花 */
  .win .grain {
    position:absolute; inset:0; pointer-events:none; z-index:3;
    opacity:var(--grain-alpha, .15);
    mix-blend-mode:normal;
    background-size:var(--grain-size, 260px) var(--grain-size, 260px);
    image-rendering:pixelated;          /* 放大時保持硬邊，雪花才是一格一格 */
    animation:tvsnow .42s steps(1) infinite;
  }
  @keyframes tvsnow {
    0%   { background-image:var(--n0); background-position:0 0; }
    16%  { background-image:var(--n1); background-position:37% 61%; }
    33%  { background-image:var(--n2); background-position:73% 19%; }
    50%  { background-image:var(--n3); background-position:12% 84%; }
    66%  { background-image:var(--n4); background-position:58% 42%; }
    83%  { background-image:var(--n5); background-position:91% 7%; }
    100% { background-image:var(--n0); background-position:26% 68%; }
  }

  /* 開機：中間一條亮線，咻地往上下撐開 */
  .win.crton { animation:crtOn .8s cubic-bezier(.25,.8,.3,1) forwards; }
  @keyframes crtOn {
    0%   { opacity:0; transform:var(--tf) scaleY(.004) scaleX(.55); filter:brightness(7); }
    22%  { opacity:1; transform:var(--tf) scaleY(.012) scaleX(1.03); filter:brightness(5.2); }
    100% { opacity:1; transform:var(--tf) scaleY(1)    scaleX(1);    filter:brightness(1); }
  }

  /* 點一下就像關掉電視：畫面塌成一條線，再往內縮成一點 */
  .win.crtoff { animation:crtOff .58s cubic-bezier(.55,0,.92,.35) forwards; pointer-events:none; }
  @keyframes crtOff {
    0%   { opacity:1; transform:var(--tf) scaleY(1)    scaleX(1);    filter:brightness(1); }
    38%  { opacity:1; transform:var(--tf) scaleY(.014) scaleX(1.04); filter:brightness(4.6); }
    66%  { opacity:1; transform:var(--tf) scaleY(.012) scaleX(.42);  filter:brightness(6.5); }
    100% { opacity:0; transform:var(--tf) scaleY(.008) scaleX(.02);  filter:brightness(8); }
  }

  /* 卡住的那幾塊舊畫面 —— 蓋在影片上，影片其他地方照常在動 */
  .win .freeze {
    position:absolute; inset:0; width:100%; height:100%;
    z-index:1; pointer-events:none; opacity:0;
    image-rendering:pixelated;
  }
  .win .freeze.on { opacity:1; }

  /* 訊號斷一下：整格黑掉 */
  .win.drop .screen { opacity:0; }
  .win.drop .grain  { opacity:.85; }
  .win.drop .scan   { opacity:.4; }
  /* 訊號跳一下：整格剩下雜訊 */
  .win.snow .screen { opacity:.06; }
  .win.snow .grain  { opacity:.9; }

  /* ---- 環繞用的 3D 舞台 ---- */
  #stage { position:absolute; left:0; right:0; top:0; height:100vh; transform-style:preserve-3d; }
  #me { position:absolute; top:0; left:0; width:1px; height:1px; pointer-events:none; }
  #intro.arc-mode { user-select:none; -webkit-user-select:none; touch-action:pan-y; }
  #intro.arc-mode { perspective:2000px; perspective-origin:50% 50%; }
  #intro.arc-mode { cursor:grab; }
  #intro.arc-mode.dragging { cursor:grabbing; }
  /* 環繞模式：位置由 --tf 決定，動畫只動透明度跟一點縮放 */
  .win.arc.pop   { animation:popArc 2.4s cubic-bezier(.22,.61,.36,1) forwards; }
  @keyframes popArc {
    0%   { opacity:0; transform:var(--tf) scale(1.05); }
    100% { opacity:1; transform:var(--tf) scale(1); }
  }
  .win.arc.close { animation:closeArc 1.6s cubic-bezier(.4,0,.5,1) forwards; }
  @keyframes closeArc {
    0%   { opacity:1; transform:var(--tf) scale(1); }
    100% { opacity:0; transform:var(--tf) scale(1.02); }
  }

  /* 環上照片：自拍維持 3:4，新照片保留各自的橫幅構圖 */
  .win.photo .screen { aspect-ratio:var(--photo-aspect, 3/4); object-fit:cover; height:auto; }

  /* ---- 無邊框：只剩畫面本身 ---- */
  .win.bare {
    padding:0; background:transparent;
    box-shadow:0 24px 64px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.06);
  }
  .win.bare .bar, .win.bare .ctrl { display:none; }
  .win.bare .screenwrap { margin:0; padding:0; box-shadow:none; }

  /* 官網影片那一格：橫的 16:9 */
  .win.hero { opacity:1; }
  .win.hero .screen { aspect-ratio:16/9; }
  .win.hero.gliding {
    transition:transform 2.1s cubic-bezier(.5,0,.2,1), width 2.1s cubic-bezier(.5,0,.2,1);
  }

  /* 環繞後面那層大字選單 —— 在影片圖層的下面 */
  #arcmenu {
    position:sticky; top:0; height:100vh; z-index:1;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding:0 0 7vh 5vmin;
    gap:3.2vh;
    opacity:0; transition:opacity 1.6s ease;
    pointer-events:none;
  }
  #arcmenu.show { opacity:1; pointer-events:auto; }
  #arcmenu a {
    position:relative; z-index:1000;
    font-family:"Basteleur", Georgia, serif; font-weight:700;
    color:#ff0000; text-decoration:none;
    font-size:clamp(26px, min(8.8vh, 8.2vw), 108px);
    line-height:1; width:max-content;
  }
  #arcmenu a canvas, .gaming-heading h2 canvas {
    display:block;
    filter:drop-shadow(2px 0 1px rgba(255,45,0,.72))
           drop-shadow(-2px 0 1px rgba(255,45,0,.72))
           drop-shadow(0 0 6px rgba(255,10,0,.45));
  }

  /* 影片在選單上面一層；stage 本身不擋點擊，只有畫面擋 */
  #stage { z-index:20; pointer-events:none; }
  .win { pointer-events:auto; }

  /* 手機：Me 影片與 Photography 媒體維持在選單文字上方。 */
  @media (max-width:640px) {
    #stage { z-index:200 !important; }
    .tag { z-index:40; }
    #arcmenu a { z-index:1 !important; }
    #photoDepth { z-index:200 !important; }
  }





  /* 環上照片點開的大圖 */
  #bigview {
    position:fixed; inset:0; z-index:96;
    background:rgba(0,0,0,.94);
    display:none; align-items:center; justify-content:center;
    cursor:zoom-out;
  }
  #bigview.on { display:flex; }
  #bigview img { max-width:92vw; max-height:92vh; display:block; }

  /* 開機畫面：點一下才通電（同時解鎖聲音） */
  #boot {
    position:absolute; inset:0; z-index:90;
    display:flex; align-items:center; justify-content:center;
    background:#000; cursor:pointer;
  }
  #boot span {
    color:#ff1a00; font-size:clamp(10px,1.4vmin,14px);
    letter-spacing:.5em; text-transform:uppercase;
    animation:bootblink 1.6s steps(1) infinite;
    text-shadow:2px 0 1px rgba(255,34,0,.5), -2px 0 1px rgba(255,34,0,.5);
  }
  @keyframes bootblink { 0%,68%{opacity:1;} 69%,100%{opacity:.25;} }

  #enter {
    position:absolute; left:3.2vmin; top:calc(3vmin + 4.4em);
    z-index:70; font-size:clamp(9px,1.15vmin,12px);
    letter-spacing:.28em; text-transform:uppercase; opacity:0;
    transition:opacity .8s ease, color .2s ease; cursor:pointer; user-select:none;
    color:#8f8f8f; border-bottom:1px solid rgba(255,255,255,.28);
    padding-bottom:.25em;
  }
  #enter:hover { color:#fff; }
  #enter.show { opacity:1; }
  #enter:hover { background:rgba(255,255,255,.9); color:#000; }

  /* ---- 全站字體統一：跟封面同一顆 Basteleur ---- */
  .tag, #boot span, #enter, .sec-note, .sec-zh {
    font-family:"Basteleur", Georgia, serif; font-weight:700;
    letter-spacing:.12em; text-transform:none;
  }
/* ---------- 板塊獨立頁：拿掉為長捲頁預留的空白 ---------- */
body.page .photo-pinwrap { margin-top:0; }
body.page .sec-after-menu { margin-top:0; }
body.page .sec { border-top:none; }
body.page #intro { scroll-behavior:auto; }
