
  @font-face{
    font-family:"Noto Sans JP"; font-weight:100 900; font-display:swap;
    src:url(fonts/noto-sans-jp.woff2) format("woff2");
  }
  @font-face{
    font-family:"Inter"; font-weight:100 900; font-display:swap;
    src:url(fonts/inter.woff2) format("woff2");
  }
  :root{
    --bg:#fafafa;
    --foreground:#0e0e0e;   
    --strong:#0e0e0e;       
    --sub:#6e6e6e;          
    --muted-fg:#9f9f9f;     
    --line:rgba(14,14,14,.16); --line-soft:rgba(14,14,14,.08);
    --box:rgba(14,14,14,.04); --phone-filter:none;
    --font-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic Medium","YuGothic",sans-serif;
    --font-num:"Inter","Helvetica Neue",Arial,sans-serif;
    --measure:640px;
  }
  @media (prefers-color-scheme:dark){
    :root{--bg:#0e0e0e;--foreground:#f0f0f0;--strong:#fff;--sub:#9f9f9f;--muted-fg:#6e6e6e;
      --line:rgba(255,255,255,.18);--line-soft:rgba(255,255,255,.09);--box:rgba(255,255,255,.055);--phone-filter:invert(1);}
  }
  :root[data-theme="dark"]{--bg:#0e0e0e;--foreground:#f0f0f0;--strong:#fff;--sub:#9f9f9f;--muted-fg:#6e6e6e;
    --line:rgba(255,255,255,.18);--line-soft:rgba(255,255,255,.09);--box:rgba(255,255,255,.055);--phone-filter:invert(1);}
  :root[data-theme="light"]{--bg:#fafafa;--foreground:#0e0e0e;--strong:#0e0e0e;--sub:#6e6e6e;--muted-fg:#9f9f9f;
    --line:rgba(14,14,14,.16);--line-soft:rgba(14,14,14,.08);--box:rgba(14,14,14,.04);--phone-filter:none;}

  *{box-sizing:border-box;min-width:0;}
  html,body{overflow-x:hidden;overflow-x:clip;}
  html:lang(ja){line-break:strict;word-break:normal;overflow-wrap:anywhere;}
  body{
    margin:0; background:var(--bg); color:var(--foreground);
    font-family:var(--font-jp); font-size:16px; line-height:2.0;
    letter-spacing:.05em; font-weight:400;
    -webkit-font-smoothing:antialiased; font-feature-settings:"palt" 0;
  }
  .wrap{max-width:var(--measure); margin-inline:auto; padding:0 24px;}
  a{color:inherit; text-decoration:none;}

  
  :root{--head-pad:72px;}
  header{padding-top:var(--head-pad); position:relative;}
  html{scrollbar-gutter:stable;}
  .logo{
    display:flex; align-items:center; justify-content:center;
    width:48px; height:48px; background:#fff; border-radius:10px;
    border:1px solid rgba(14,14,14,.06);
    box-shadow:0 1px 2px rgba(14,14,14,.04);
    transition:opacity .2s ease, transform .16s cubic-bezier(.23,1,.32,1);
  }
  .logo:active{transform:scale(.97);}
  @media (hover:hover) and (pointer:fine){ .logo:hover{opacity:.8;} }
  .logo img{width:34px; height:auto; display:block;}

  
  .crumbs{
    display:flex; flex-wrap:wrap; align-items:center; gap:2px 10px;
    margin:48px 0 0; padding:0; list-style:none;
    font-size:12px; letter-spacing:.06em; color:var(--muted-fg);
  }
  .crumbs a{color:var(--muted-fg); transition:opacity .2s ease;}
  @media (hover:hover) and (pointer:fine){ .crumbs a:hover{opacity:.6;} }
  .crumbs .sep{color:var(--muted-fg);}

  
  .intro{padding-top:56px;}
  .intro .cta{margin-top:26px;}
  .intro h1{ margin:0 0 26px;
  }
  .intro p{color:var(--sub); line-height:2.15; letter-spacing:.05em; max-width:560px; margin:0;}
  .cta{margin-top:40px; display:flex; align-items:center; gap:24px;}

  
  .link-underline{
    position:relative; color:var(--strong);
    font-size:13px; letter-spacing:.12em; padding-bottom:8px;
  }
  .link-underline::before{
    content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
    background:var(--line);
  }
  .link-underline::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
    background:var(--strong); transform:scaleX(0); transform-origin:100% 50%;
    will-change:transform; backface-visibility:hidden;
    transition:transform .25s cubic-bezier(.23,1,.32,1); 
  }
  @media (hover:hover) and (pointer:fine){
    .link-underline:hover::after{
      transform:scaleX(1); transform-origin:0 50%;
      transition:transform .38s cubic-bezier(.22,1,.36,1); 
    }
  }
  .link-underline:focus-visible::after{transform:scaleX(1); transform-origin:0 50%;}

  
  .link-text{
    color:var(--sub); font-size:13px; letter-spacing:.12em;
    text-decoration:underline; text-underline-offset:7px;
    text-decoration-thickness:1px; text-decoration-color:var(--line);
    transition:color .2s ease, text-decoration-color .2s ease;
  }
  @media (hover:hover) and (pointer:fine){
    .link-text:hover{color:var(--strong); text-decoration-color:currentColor;}
  }
  .link-text:focus-visible{color:var(--strong); text-decoration-color:currentColor;}

  
  section.block{padding-top:88px;}
  .label{font-size:12px; letter-spacing:.14em; color:var(--muted-fg); margin:0 0 16px; text-transform:uppercase;}

  
  .rows{list-style:none; margin:0; padding:0;}
  .rows li:not(:last-child){border-bottom:1px solid var(--line-soft);}
  .row{
    display:grid; grid-template-columns:1fr auto; align-items:baseline;
    gap:16px 44px; padding:14px 0;
    transition:opacity .15s ease; 
  }
  .row .ttl{font-size:15px; letter-spacing:.05em; color:var(--strong);}
  .row .arrow{
    font-family:var(--font-num); font-size:12px; color:var(--muted-fg);
    transition:transform .2s cubic-bezier(.23,1,.32,1);
  }
  .arrow-external{
    display:inline-flex; width:10px; height:10px; align-self:center;
    color:var(--muted-fg);
  }
  .arrow-external svg{display:block; width:10px; height:10px; overflow:visible;}
  .sr-only{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  
  @media (hover:hover) and (pointer:fine){
    .rows:hover .row{opacity:.45; transition-duration:.2s;}
    .rows.static:hover .row{opacity:1;}
    .rows li:hover .row{opacity:1;}
    .rows li:hover .arrow{transform:translateX(5px);}
    .rows li:hover .arrow-external{transform:translate(2px,-2px);}
  }
  
  .row:active .arrow{transform:translateX(9px); transition-duration:.1s;}
  .row:active .arrow-external{transform:translate(3px,-3px);}

  .rows.biz .row{padding:22px 0;}
  .rows.biz .desc{
    grid-column:1/2; margin-top:6px; font-size:12px; line-height:1.95;
    letter-spacing:.04em; color:var(--muted-fg);
  }

  .more{margin-top:22px;}

  
  .media-lead{color:var(--foreground); line-height:2.15; margin:0 0 18px; max-width:560px;}
  .media-list{font-size:13px; line-height:2.2; letter-spacing:.05em; color:var(--muted-fg); margin:0;}

  
  .page-title{ margin:34px 0 0;
  }
  .page-lead{color:var(--foreground); line-height:2.15; margin:22px 0 0; max-width:560px;}
  .prose{margin-top:56px;}
  .prose h2{margin:88px 0 24px;}
  .prose h2:first-child{margin-top:88px;}
  .prose p{margin:0 0 24px; line-height:2.1;}

  
  .facts{margin:56px 0 0; padding:0;}
  .facts div{
    display:grid; grid-template-columns:8em 1fr; gap:24px; padding:16px 0;
  }
  .facts div:not(:last-child){border-bottom:1px solid var(--line-soft);}
  .facts dt{font-size:13px; letter-spacing:.08em; color:var(--muted-fg);}
  .facts dd{margin:0; font-size:14px; letter-spacing:.05em;}
  @media (max-width:480px){
    .facts div{grid-template-columns:1fr; gap:4px; padding:14px 0;}
  }

  
  .prose ul, .prose ol{margin:0 0 24px; padding-left:1.4em; line-height:2.1;}
  .prose li{margin:0 0 4px;}
  .prose dl.facts{margin:8px 0 40px;}
  .qa{margin:0 0 24px;}
  .qa h3{font-weight:400; margin:26px 0 0; line-height:2;}
  .qa.lined h3{margin:0; padding-top:0;}
  .qa.lined h3:not(:first-of-type){margin-top:56px;}
  .qa.lined h3:first-of-type{padding-top:0;}
  .qa.lined .qa-a{padding-bottom:8px;}
  .qa.lined .qa-a:last-of-type{padding-bottom:0;}
  .qa .qa-a{margin:4px 0 0; color:var(--sub); line-height:2.1;}
  .qa .qa-a p{margin:0 0 16px;}
  .qa .qa-a p:last-child{margin-bottom:0;}
  .qa .qa-a ul{margin:6px 0 8px; padding-left:1.3em; line-height:2.05;}
  .simple-table{width:100%;margin:8px 0 40px;border-collapse:collapse;font-size:14px;}
  .simple-table th,.simple-table td{padding:14px 0;text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;}
  .simple-table th{color:var(--muted-fg);font-size:12px;font-weight:400;letter-spacing:.08em;}
  .simple-table th:first-child,.simple-table td:first-child{width:160px;padding-right:24px;}
  .simple-table tr:last-child th,.simple-table tr:last-child td{border-bottom:0;}
  
  .price-table th:first-child,.price-table td:first-child{width:100%;padding-right:24px;}
  .price-table th:last-child,.price-table td:last-child{white-space:nowrap;}
  .flow-list{margin-top:8px!important;}
  .flow-list li{padding:12px 0;border-bottom:1px solid var(--line-soft);}
  .flow-list li:last-child{border-bottom:0;}

  
  [id^="view-int-"] .photo img{filter:grayscale(1);}
  
  img{-webkit-user-drag:none;user-drag:none;}
  figure img, .photo img{user-select:none;-webkit-user-select:none;pointer-events:none;}

  
  .polaroid{margin:44px 0 56px;}
  .polaroid img{
    display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover;
    border-radius:2px; filter:grayscale(1);
  }
  @media (max-width:480px){ .polaroid{margin:36px 0 48px;} }

  
  .letter{margin-top:40px; max-width:560px;}
  .letter p{line-height:2.3; margin:0 0 24px;}
  .letter .sig{color:var(--muted-fg); font-size:13px; letter-spacing:.06em; margin-top:36px;}
  .brand{font-family:var(--font-num); font-style:italic; letter-spacing:.02em;}
  @supports ((-webkit-mask-image:url("")) or (mask-image:url(""))){
    .brand{
      display:inline-block; width:2.961em; height:1em; overflow:hidden;
      vertical-align:-.263em; text-indent:-9999px; background-color:var(--strong);
      -webkit-mask:url("ninoya-wordmark.svg") center/contain no-repeat;
      mask:url("ninoya-wordmark.svg") center/contain no-repeat;
    }
  }

  
  .fv-lead{min-height:4.3em;}
  .cta .lamp{margin:0 0 0 12px; vertical-align:1px;}
  .caret{display:inline-block; width:1px; height:1.05em; background:var(--strong); margin-left:5px; vertical-align:-0.18em; animation:blink 1.1s steps(1) infinite;}
  @keyframes blink{50%{opacity:0;}}
  .status{display:flex; align-items:center; font-size:12px; letter-spacing:.08em; color:var(--muted-fg); margin:0 0 12px;}
  .lamp{display:inline-block; width:7px; height:7px; border-radius:50%; background:#34c77b; margin-right:10px; vertical-align:2px; animation:pulse 2.2s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:1;} 50%{opacity:.3;}}
  details.acc{border-bottom:1px solid var(--line-soft);}
  details.acc:not(:has(+ details.acc)){border-bottom:0;}
  details.acc summary{list-style:none; cursor:pointer; display:grid; grid-template-columns:1fr auto; align-items:center; padding:20px 0; line-height:2; color:var(--strong);}
  details.acc summary::-webkit-details-marker{display:none;}
  details.acc summary .pm{color:var(--muted-fg); font-size:14px;}
  details.acc summary .pm::before{content:'＋';}
  details.acc[open] summary .pm::before{content:'−';}
  details.acc .a{margin:0 0 22px; color:var(--sub); line-height:2.1;}
  details.acc .a p{margin:0 0 16px; color:inherit; line-height:inherit;}
  details.acc .a p:last-child{margin-bottom:0;}
  details.acc .a ol{margin:0 0 16px;}
  .prose h2 .no{display:block; font-size:11px; letter-spacing:.24em; color:var(--muted-fg); margin-bottom:6px;}
  @media (prefers-reduced-motion: reduce){ .caret,.lamp{animation:none;} }

  
  .qa dd p{margin:0 0 16px; color:inherit; line-height:inherit;}
  .qa dd p:last-child{margin-bottom:0;}
  .prose h3{ margin:48px 0 12px;}
  .prose .h-sep{border-top:1px solid var(--line-soft); margin-top:48px; padding-top:48px;}
  .sim label{display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line-soft); cursor:pointer; line-height:2;}
  .sim label:last-of-type{border-bottom:0;}
  .sim input[type="checkbox"]{width:15px; height:15px; accent-color:#8a8a8a; margin:0;}
  .sim-total{margin-top:22px; color:var(--strong);}
  .sim-note{color:var(--muted-fg); font-size:13px; margin-top:8px;}

  
  .v{padding:36px 0;}
  .voices .v:last-child{border-bottom:0; padding-bottom:8px;}
  .voices .v:first-child{padding-top:8px;}
  .vq{color:var(--strong); line-height:2.1; margin:0;}
  .vw{color:var(--muted-fg); font-size:13px; letter-spacing:.06em; margin:14px 0 0;}
  .vl{margin:10px 0 0; font-size:13px;}
  .vl a{color:var(--muted-fg); text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:1px; text-decoration-color:var(--line); transition:color .2s ease, text-decoration-color .2s ease;}
  .vl a:hover{color:var(--strong); text-decoration-color:currentColor;}

  
  .work-index{margin-top:88px;}
  .work-index h2{
    margin:0 0 14px;
  }
  .work-index p{
    margin:0;
    color:var(--muted-fg);
    font-size:12px;
    line-height:2.25;
    letter-spacing:.045em;
  }
  .work-index span{display:inline;}
  .work-index span:not(:last-child)::after{
    content:"・";
    margin:0 .55em;
    color:var(--line);
  }

  
  .press-intro{margin-top:56px; max-width:560px;}
  .press-intro p{margin:0 0 28px; line-height:2.15;}
  .press-outlets{margin:44px 0 0; padding:0;}
  .press-outlets dt{margin:0 0 10px; color:var(--muted-fg); font-family:var(--font-num); font-size:11px; line-height:1.6; letter-spacing:.16em; text-transform:uppercase;}
  .press-outlets dd{margin:0; color:var(--strong); font-size:13px; line-height:2.25; letter-spacing:.055em;}
  .press-section{margin-top:88px;}
  .press-section > h2{margin:0 0 16px;}
  .press-section-lead{max-width:560px; margin:0 0 30px; color:var(--sub); font-size:13px; line-height:2.1;}
  .press-group-title{margin:48px 0 12px; color:var(--muted-fg); font-size:13px; font-weight:400; line-height:1.9; letter-spacing:.1em;}
  .press-section > h2 + .press-group-title{margin-top:28px;}
  .press-list{list-style:none; margin:0; padding:0;}
  .press-item{border-bottom:1px solid var(--line-soft);}
    .press-entry{display:grid; grid-template-columns:minmax(8em,10em) minmax(0,1fr); gap:12px 32px; padding:22px 0; color:inherit;}
  a.press-entry{transition:opacity .2s ease;}
  aa.press-entry:hover{opacity:.58;}
  .press-source{color:var(--muted-fg); font-family:var(--font-num); font-size:11px; line-height:1.8; letter-spacing:.08em;}
  .press-copy{min-width:0;}
  .press-scope{display:block; margin:0 0 5px; color:var(--muted-fg); font-size:11px; line-height:1.6; letter-spacing:.1em;}
  .press-title{display:block; color:var(--strong); font-size:15px; line-height:1.9; letter-spacing:.045em;}
  a.press-entry .press-title::after{content:"";}
  .press-results .press-title{font-size:15px;}
  .press-result{display:block; margin-top:7px; color:var(--sub); font-size:12px; line-height:2;}
  .press-attr{display:block; margin-top:6px; color:var(--sub); font-size:12px; letter-spacing:.06em;}
  .press-partners{margin-top:28px; color:var(--muted-fg); font-size:12px; line-height:2.25; letter-spacing:.045em;}
  .press-partners span{display:inline;}
  .press-partners span:not(:last-child)::after{content:"・"; margin:0 .55em; color:var(--line);}
  .press-request ul{margin:0 0 28px; padding-left:1.4em; color:var(--sub); line-height:2.1;}
  .press-request li{margin:0 0 4px;}
  .press-request > p:last-of-type{margin:0; color:var(--sub); line-height:2.1;}
  @media (max-width:560px){
    .press-entry{grid-template-columns:1fr; gap:5px; padding:20px 0;}
    .press-source{font-size:11px;}
  }

  
  .legal-copy{margin-top:56px; max-width:560px;}
  .legal-copy h2{
    margin:88px 0 24px;
  }
  .legal-copy h2:first-child{margin-top:0;}
  .legal-copy p,
  .legal-copy li{font-size:13px; line-height:2.05;}
  .legal-copy p{margin:0 0 18px;}
  .legal-copy ul,
  .legal-copy ol{margin:0 0 24px; padding-left:1.5em;}
  .legal-copy li{margin-bottom:6px;}

  .legal-copy a:hover{text-decoration-color:currentColor;}
  .legal-facts{margin-top:56px;}
  .legal-facts div{grid-template-columns:11em 1fr;}
  .legal-contact-line{display:flex;align-items:center;gap:12px;min-height:32px;}
  .legal-contact-line + .legal-contact-line{margin-top:8px;}
  .legal-phone-image{display:inline-block;width:170px;height:28px;object-fit:contain;object-position:left center;filter:var(--phone-filter);}
  .legal-date{margin-top:56px; color:var(--muted-fg); font-size:12px;}

  
  .prose h2{scroll-margin-top:28px;}
  .prose p.catch{color:var(--sub);}
  .prose h2.sec{margin-top:88px;}
  .prose h2.sec.h-sep{margin-top:88px;}

  
  .prose a{color:inherit; text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:1px; text-decoration-color:var(--line); transition:color .2s ease, text-decoration-color .2s ease;}
  .prose a:hover{text-decoration-color:currentColor;}
  .prose a.link-underline{text-decoration:none;}  
  @media (max-width:639px){ br.br-pc{display:none;} }  

  
  .foot-links{list-style:none; margin:0 0 14px; padding:0; display:flex; flex-wrap:wrap; gap:8px 22px; font-size:12px; letter-spacing:.06em;}
  .foot-links a{color:var(--muted-fg); text-decoration:none;}
  .foot-links a:hover{color:var(--strong);}

  
  footer{padding:110px 0 72px;}
  .foot-status{margin:34px 0 0;}
  .foot-clock{
    margin:0 0 8px;
    font-family:var(--font-num); font-feature-settings:"tnum"; font-variant-numeric:tabular-nums;
    font-size:12px; letter-spacing:.04em;
    color:var(--muted-fg);
  }
  .foot-open{
    margin:0;
    font-family:var(--font-num); font-size:12px; letter-spacing:.04em;
    color:var(--sub);
  }
  .foot-line{
    padding-top:26px;
    font-family:var(--font-num); font-feature-settings:"tnum"; font-size:11px; letter-spacing:.08em;
    color:var(--muted-fg);
  }

  
  .view{display:none;}
  .view.on{display:block;}
  @keyframes page-fwd{from{opacity:0; transform:translateX(var(--flip,44px));} to{opacity:1; transform:none;}}
  @keyframes page-back{from{opacity:0; transform:translateX(calc(-1 * var(--flip,44px)));} to{opacity:1; transform:none;}}
  .view.anim-fwd{animation:page-fwd .32s cubic-bezier(.22,1,.36,1);}
  .view.anim-back{animation:page-back .32s cubic-bezier(.22,1,.36,1);}

  .article-foot{margin-top:88px;}
  .back-link{
    display:inline-flex; align-items:center; gap:10px;
    font-size:13px; letter-spacing:.08em; color:var(--muted-fg);
    transition:opacity .15s ease;
  }
  .back-link .arrow{
    font-family:var(--font-num); font-size:12px; color:var(--muted-fg);
    transition:transform .2s cubic-bezier(.23,1,.32,1);
  }
  @media (hover:hover) and (pointer:fine){
    .back-link:hover{opacity:.6; transition-duration:.2s;}
    .back-link:hover .arrow{transform:translateX(-5px);}
  }
  .back-link:active .arrow{transform:translateX(-9px); transition-duration:.1s;}

  
  .rows.spotlight .row{opacity:.45;}
  .rows.spotlight li:hover .row{opacity:.45;}
  .rows.spotlight li.spot-target .row,
  .rows.spotlight li.spot-target:hover .row{opacity:1;}

  
  .wrap.boot{opacity:0;}
  .wrap.boot.go{animation:page-fwd .45s cubic-bezier(.22,1,.36,1) both;}

  
  .photo{margin:56px 0;}
  .photo img{
    width:100%; height:auto; aspect-ratio:3/2; object-fit:cover;
    display:block; border-radius:2px;
  }
  .photo figcaption{
    margin-top:12px; font-size:12px; letter-spacing:.06em;
    color:var(--muted-fg); line-height:1.8;
  }
  figure.photo{margin-left:0; margin-right:0;}
  .lead-box{background:var(--box); border-radius:8px; padding:24px 26px; margin:0 0 48px;}
  .lead-box p{color:var(--sub); margin:0 0 18px; line-height:2.1;}
  .lead-box p:last-child{margin-bottom:0;}
  .lead-box p.who{color:var(--muted-fg); font-size:13px; line-height:2.1;}

  
  .booking-embed{margin-top:56px;}
  .booking-legal{
    margin:14px 0 0;
    color:var(--muted-fg);
    font-size:11px;
    line-height:1.9;
  }

  
  .contact-flow{margin-top:56px; max-width:720px;}
  .contact-panel[hidden]{display:none;}
  .contact-panel-title{
    margin:0 0 24px;
  }
  .contact-option{
    display:grid;
    width:100%;
    grid-template-columns:42px minmax(0,1fr) auto;
    gap:16px 44px;
    align-items:baseline;
    padding:22px 0;
    border:0;
    background:transparent;
    color:inherit;
    text-align:left;
    cursor:pointer;
    text-decoration:none;
  }
  .contact-option{border-bottom:1px solid var(--line-soft); transition:opacity .45s ease;}
  .contact-option:last-child{border-bottom:0;}
  .contact-options:hover .contact-option{opacity:.45; transition-duration:.2s;}
  .contact-options .contact-option:hover{opacity:1;}
  @media (hover:hover) and (pointer:fine){
    .contact-option:hover .arrow-external{transform:translate(2px,-2px);}
  }
  .contact-option:active .arrow-external{transform:translate(3px,-3px);}
  .contact-option-no{
    color:var(--muted-fg);
    font-family:var(--font-num);
    font-size:11px;
    letter-spacing:.14em;
  }
  .contact-option-title{display:block; font-size:15px; letter-spacing:.08em;}
  .contact-option-arrow{
    color:var(--muted-fg);
    font-family:var(--font-num);
    font-size:12px;
  }
  .contact-note{
    margin:0 0 28px;
    color:var(--sub);
    font-size:14px;
    line-height:2;
  }
  .contact-action{
    display:inline-flex;
    min-height:44px;
    align-items:center;
    padding:0;
    border:0;
    border-bottom:1px solid var(--strong);
    background:transparent;
    color:inherit;
    font-size:13px;
    letter-spacing:.08em;
    cursor:pointer;
  }
  .contact-reveal{
    display:inline-flex;
    margin-top:8px;
    padding:0 0 4px;
    border:0;
    border-bottom:1px solid var(--line);
    background:transparent;
    color:var(--foreground);
    font:inherit;
    font-size:13px;
    letter-spacing:.06em;
    cursor:pointer;
    transition:color .2s ease, border-color .2s ease;
  }
  .contact-reveal:hover{color:var(--strong); border-bottom-color:currentColor;}
  .contact-reveal[hidden]{display:none;}
  .contact-back{
    display:flex;
    width:max-content;
    margin-top:40px;
    padding:0;
    border:0;
    background:transparent;
    color:var(--muted-fg);
    font-size:12px;
    letter-spacing:.08em;
    cursor:pointer;
  }
  .contact-form{
    display:grid;
    gap:24px;
    margin-top:40px;
    padding-top:24px;
  }
  .contact-form[hidden]{display:none;}
  .contact-field label{
    display:block;
    margin-bottom:7px;
    font-size:13px;
  }
  .contact-field input{
    width:100%;
    padding:10px 2px;
    border:0;
    border-bottom:1px solid var(--line-soft);
    border-radius:0;
    background:transparent;
    color:var(--foreground);
    font:inherit;
    font-size:14px;
    letter-spacing:.04em;
  }
  .contact-field textarea{
    width:100%;
    padding:12px 14px;
    border:1px solid var(--line-soft);
    border-radius:2px;
    background:transparent;
    color:var(--foreground);
    font:inherit;
    font-size:14px;
    letter-spacing:.04em;
  }
  .contact-field textarea{min-height:144px; resize:vertical; line-height:1.8;}
  .contact-field input:focus,
  .contact-field textarea:focus{
    border-color:var(--strong);
    outline:none;
  }
  .contact-check{
    display:grid;
    grid-template-columns:18px 1fr;
    gap:10px;
    align-items:start;
    font-size:12px;
    line-height:1.8;
  }
  .contact-check input{width:16px; height:16px; margin:4px 0 0;}
  .contact-submit{
    min-height:50px;
    padding:0 24px;
    border:0;
    border-radius:2px;
    background:var(--strong);
    color:var(--bg);
    font:inherit;
    font-size:13px;
    letter-spacing:.12em;
    cursor:pointer;
  }
  .contact-submit:disabled{opacity:.45; cursor:not-allowed;}
  .contact-option,
  .contact-action,
  .contact-back,
  .contact-submit,
  .contact-field input,
  .contact-field textarea{font-family:var(--font-jp);font-weight:400;}
  .contact-legal-link{
    display:inline-flex;
    margin-top:32px;
    padding:0;
    border:0;
    border-bottom:1px solid var(--line);
    background:transparent;
    color:var(--muted-fg);
    font:inherit;
    font-size:11px;
    font-weight:400;
    letter-spacing:.06em;
    cursor:pointer;
  }
  .contact-status{
    margin:0;
    padding:14px 16px;
    border-left:2px solid var(--line-soft);
    background:var(--box);
    font-size:12px;
    line-height:1.8;
  }
  .contact-status:empty{display:none;}
  .contact-status[data-tone="success"]{border-left-color:#52795d;}
  .contact-status[data-tone="error"]{border-left-color:#8a4d4d;}
  .contact-trap{
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
  }
  .cta-note{margin:12px 0 0;color:var(--sub);font-size:12px;}
  .shared-cta{margin-top:88px;}
  .shared-cta h2{margin:0;}
  .shared-cta p{margin:12px 0 24px;color:var(--sub);}

  
  .content-page .prose h2,
  .content-page .section-title{
  }
  .content-page .prose h3{
  }
  .essay-copy{margin-top:2em;} 
  .essay-copy p{margin:0 0 2em; line-height:2.15;}
  .essay-copy p:last-child{margin-bottom:0;}
  .section-title{margin:88px 0 24px;}
  .section-title.first{margin-top:88px;}
  .two-up{display:block;}
  .plain-entry{padding:22px 0;}
  .plain-entry h3{margin:0 0 8px;}
  .plain-entry p{margin:0 0 12px;color:var(--foreground);line-height:2.05;}
  .plain-entry p:last-child{margin-bottom:0;}
  .plain-entry .link-text{display:inline-block;margin-top:4px;}
  .voice-list{margin-top:8px;}
  .voice-list .v{padding:36px 0;}
  
  .client-list{list-style:none;margin:0;padding:0;}
  .client-list li{padding:4px 0;font-size:14px;line-height:2;color:var(--foreground);}
  .profile-head{margin-top:56px;}
  .profile-head .polaroid{margin:0 0 40px;}
  .profile-copy h1{margin:0;}
  .profile-role{margin:10px 0 28px;color:var(--muted-fg);font-size:13px;line-height:1.9;}
  .profile-copy p{margin:0 0 20px;line-height:2.05;}
  .achievement-list{list-style:none;margin:0;padding:0;}
  .achievement-list li{padding:16px 0;border-bottom:1px solid var(--line-soft);font-size:14px;line-height:2;}
  .achievement-list li:last-child{border-bottom:0;}
  .choice-grid{display:block;}
  .price-line{display:flex;justify-content:space-between;gap:24px;align-items:baseline;margin:0 0 14px;color:var(--strong);}
  .price-line strong{font-family:var(--font-num);font-weight:400;white-space:nowrap;}
  .fit-list{margin:0;padding-left:1.3em;line-height:2.1;}
  .open-faq{margin-top:8px;}
  .open-faq section{padding:26px 0;border-bottom:1px solid var(--line-soft);}
  .open-faq section:last-child{border-bottom:0;}
  .open-faq h3{margin:0 0 10px;}
  .open-faq p{margin:0 0 14px;color:var(--foreground);line-height:2.05;}
  .open-faq p:last-child{margin-bottom:0;}
  @media (max-width:480px){
    .contact-option{grid-template-columns:30px minmax(0,1fr) auto; gap:12px 18px;}
    .legal-facts div{grid-template-columns:1fr;}
    .page-title{}
    .prose h2,
    .content-page .prose h2,
    .content-page .section-title{}
    .prose h3,
    .content-page .prose h3{}
    .essay-copy{font-size:15px;}
    .section-title{margin-top:88px;}
  }

  @media (max-width:820px){
    :root{--flip:28px;}
    :root{--head-pad:56px;}
    section.block{padding-top:88px;}
    .cta{flex-wrap:wrap; gap:18px;}
    footer{padding:88px 0 60px;}
    .crumbs{margin-top:48px;}
    .desktop-break{display:none;}
  }
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{
      animation-duration:.01ms!important; animation-iteration-count:1!important;
      transition-duration:.01ms!important;
    }
  }

  
  h1, .page-title, .intro h1, .profile-copy h1{
    font-size:28px; font-weight:400; line-height:1.7; letter-spacing:.1em; color:var(--strong);
  }
  h2{
    font-size:24px; font-weight:400; line-height:1.8; letter-spacing:.1em; color:var(--strong);
  }
  h3, .qa h3{
    font-size:20px; font-weight:400; line-height:1.85; letter-spacing:.06em; color:var(--strong); margin:26px 0 0;
  }
  @media (max-width:480px){
    .spot-examples .facts div, ol.steps .facts.steps-sub div, .facts.svc-facts div{grid-template-columns:1fr; gap:2px;}
    h1, .page-title, .intro h1, .profile-copy h1{font-size:22px;}
    h2{font-size:19px;}
    h3, .qa h3{font-size:17px;}
  }
  
  .prose p, .prose li, .prose dd, .qa .qa-a, .media-lead, .plain-entry p,
  .simple-table td, .achievement-list li, .profile-copy p:not(.profile-role){
    color:var(--sub);
  }
  .letter p:not(.sig), .essay-copy p{color:var(--foreground);}
  
  [id^="view-int-"] .prose p, [id^="view-int-"] .prose li{color:var(--foreground);}
  
  .prose a, .legal-copy a, .booking-legal a{
    color:inherit; text-decoration:underline; text-underline-offset:7px;
    text-decoration-thickness:1px; text-decoration-color:var(--line);
    transition:color .2s ease, text-decoration-color .2s ease;
  }
  @media (hover:hover) and (pointer:fine){
    .prose a:hover, .legal-copy a:hover, .booking-legal a:hover{color:var(--strong); text-decoration-color:currentColor;}
  }
  
  .menu-btn{
    
    position:absolute; top:calc(var(--head-pad) + 24px); right:-14px; z-index:60;
    width:48px; height:48px; padding:0; border:0; background:transparent;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px;
    transform:translateY(-50%);
    cursor:pointer;
  }
  .menu-btn span{display:block; width:20px; height:1px; background:var(--strong); transition:transform .25s ease, opacity .2s ease;}
  .menu-open .menu-btn span:nth-child(1){transform:translateY(4px) rotate(45deg);}
  .menu-open .menu-btn span:nth-child(2){transform:translateY(-4px) rotate(-45deg);}
  .site-menu{
    position:fixed; inset:0; z-index:50; background:var(--bg);
    display:none; overflow-y:auto; padding:96px 24px 60px;
  }
  .menu-open .site-menu{display:block;}
  .site-menu ul{list-style:none; margin:0 auto; padding:0; max-width:560px;}
  .site-menu a{
    display:block; padding:16px 4px; font-size:17px; letter-spacing:.08em;
    color:var(--strong); text-decoration:none; border-bottom:1px solid var(--line-soft);
  }
  @media (hover:hover) and (pointer:fine){ .site-menu a:hover{opacity:.6;} }
  .menu-open{overflow:hidden; padding-right:var(--sbw, 0px);}

  
  .prose h2, .prose h2.sec, .content-page .prose h2, h2.section-title{margin:88px 0 24px;}
  .prose h2:first-child, h2.section-title.first{margin-top:88px;}
  .prose h3, .qa h3{margin:44px 0 14px;}
  .prose p{margin:0 0 24px;}
  .prose ul, .prose ol{margin:0 0 24px;}
  
  .two-up .plain-entry, .choice-grid .plain-entry{padding:22px 0;}
  .plain-entry h3{margin-top:0;}
  .plain-entry p:last-child{margin-bottom:0;}

  .plan-price{margin:2px 0 20px; font-size:16px; letter-spacing:.06em; color:var(--strong); font-feature-settings:"tnum"; white-space:nowrap;}
  .list-label{margin:28px 0 6px !important; color:var(--strong);}
  .list-note{color:var(--muted-fg); font-size:13px;}

  .spot-examples{margin-top:32px; background:var(--box); border-radius:2px; padding:20px 26px 6px;}
  .spot-label{margin:0; font-size:11px; letter-spacing:.18em; color:var(--muted-fg);}
  .spot-examples .facts{margin:2px 0 0;}
  .spot-examples .facts div:last-child{border-bottom:0;}
  .spot-examples .facts div{grid-template-columns:7em 1fr; padding:12px 0;}
  .spot-examples .facts dd{color:var(--sub);}

  
  ol.steps{list-style:none; margin:0 0 24px; padding:0;}
  ol.steps > li{display:grid; grid-template-columns:44px minmax(0,1fr); gap:2px 18px; padding:20px 0;}
  ol.steps > li:first-child{padding-top:4px;}
  
  ol.steps.svc > li{padding:0; display:block;}
  ol.steps.svc > li + li{margin-top:64px; padding-top:60px; border-top:1px solid var(--line-soft);}
  ol.steps.svc .no{display:block; margin:0 0 10px; padding:0; font-size:11px; letter-spacing:.22em;}
  ol.steps.svc .t{display:block; font-size:20px; line-height:1.75; letter-spacing:.06em;}
  ol.steps.svc .svc-lede{margin:16px 0 0; font-size:16px; line-height:2; letter-spacing:.05em; color:var(--strong);}
  ol.steps.svc > li > p{margin:12px 0 0; color:var(--sub); line-height:2.15;}
  ol.steps.svc .list-note{margin-top:10px; font-size:12px; color:var(--muted-fg); line-height:1.95;}
  ol.steps.svc .list-label{margin:36px 0 0; font-size:11px; letter-spacing:.22em; color:var(--muted-fg);}
  ol.steps.svc .flow{list-style:none; margin:20px 0 0; padding:0;}
  ol.steps.svc .flow > li{margin:0; padding:22px 0 0; border:0;}
  ol.steps.svc .flow .fl-t{margin:0; font-size:15px; letter-spacing:.05em; color:var(--strong); line-height:1.9;}
  ol.steps.svc .flow p{margin:6px 0 0; color:var(--sub); line-height:2.15;}
  ol.steps.svc .flow .fl-note{margin-top:8px; font-size:12px; color:var(--muted-fg); line-height:1.95;}
  
  ol.steps.svc .flow-label{margin:44px 0 0; font-size:16px; letter-spacing:.08em; color:var(--strong);}
  ol.steps.svc .flow-steps{margin:6px 0 0;}
  ol.steps.svc .flow-steps > li{display:grid; padding:20px 0; margin:0; border:0;}
  ol.steps.svc .flow-steps > li:first-child{padding-top:14px;}
  ol.steps.svc .flow-steps .no{display:block; margin:0; padding-top:7px; font-size:12px; letter-spacing:.14em;}
  ol.steps.svc .flow-steps .t{display:block; font-size:16px; line-height:1.9; letter-spacing:.06em;}
  ol.steps.svc .flow-steps p{margin:0 0 8px; line-height:2.05;}
  ol.steps.svc .flow-steps p:last-child{margin-bottom:0;}
  ol.steps.svc .flow-steps .list-note{margin-top:2px;}
  ol.steps .no{font-family:var(--font-num); font-size:12px; letter-spacing:.14em; color:var(--muted-fg); padding-top:7px; font-feature-settings:"tnum";}
  ol.steps .t{color:var(--strong); font-size:16px; letter-spacing:.06em; line-height:1.9;}
  ol.steps p{grid-column:2; color:var(--sub); margin:0 0 8px; line-height:2.05;}
  ol.steps p:last-child{margin-bottom:0;}
  ol.steps .facts.steps-sub{grid-column:2; margin:14px 0 0;}
  .svc-lede{margin:0 0 12px; font-size:16px; letter-spacing:.06em; color:var(--strong);}
  ol.steps .facts.steps-sub div{grid-template-columns:9em 1fr; padding:14px 0;}
  ol.steps .facts.steps-sub dd{color:var(--sub); line-height:2.05;}
  .spot-note{margin:18px 0 0; color:var(--sub); font-size:13px; line-height:2.05;}
  .client-line{color:var(--muted-fg); font-size:13px; line-height:2.2; letter-spacing:.05em; margin:0 0 24px;}
  .foot-line{display:flex; justify-content:space-between; align-items:center; gap:16px;}
  .theme-switch{
    flex:none; border:0; background:transparent; padding:0; cursor:pointer;
    display:inline-flex; align-items:center; gap:6px;
    font-family:var(--font-num); font-size:10px; letter-spacing:.14em;
    color:var(--muted-fg); text-transform:uppercase;
  }
  .theme-switch span{transition:color .2s ease;}
  .theme-switch .ts-sep{opacity:.45;}
  .theme-switch .ts-l{color:var(--strong);}
  :root[data-theme="dark"] .theme-switch .ts-l{color:var(--muted-fg);}
  :root[data-theme="dark"] .theme-switch .ts-d{color:var(--strong);}
  @media (max-width:480px){ ol.steps > li{grid-template-columns:36px minmax(0,1fr); gap:2px 12px;} }

  
  .page-toc{margin:48px 0 0; background:var(--box); border-radius:2px; padding:22px 26px 24px;}
  .page-toc .page-toc-label{margin:0 0 8px; font-size:11px; letter-spacing:.18em; color:var(--muted-fg);}
  .page-toc ol{list-style:none; margin:0; padding:0;}
  .page-toc li{margin:0;}
  .page-toc a{
    display:block; padding:7px 0; font-size:14px; letter-spacing:.08em;
    color:var(--foreground); text-decoration:none; transition:color .2s ease, opacity .2s ease;
  }
  @media (hover:hover) and (pointer:fine){ .page-toc a:hover{opacity:.55;} }

  
  .home-sec{margin:0 0 24px;}
  
  .site-menu li:has(ul.sub) > a{border-bottom:0;}
  .site-menu ul.sub{margin:0; padding:0 0 6px; border-bottom:1px solid var(--line-soft);}
  .site-menu ul.sub li a{
    font-size:14px; color:var(--sub); border-bottom:0; padding:8px 4px 8px 22px;
  }
  .site-menu > ul > li > a{font-size:17px;}

  
  @media (max-width:480px){
    .spot-examples .facts div, ol.steps .facts.steps-sub div, .facts.svc-facts div{grid-template-columns:1fr; gap:2px;}
  }
  @media (max-width:820px){
    .menu-btn{border-radius:0; background:transparent;}
  }
