:root{--orange:#ea5c0d;--vivid:#ff540d;--amber:#ffab40;--gold:#fabf3d;--red:#e8402f;--cream:#fff2cc;--row:#f3f3f3;--ink:#1a1a1a;--sub:#5a5a5a;--line:#e6e1da;--paper:#fff;--code-bg:#fbf8f3;--font-sans:"Noto Sans JP", "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--slide-w:1280px;--slide-h:720px;--ease:cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);color:var(--ink);-webkit-font-smoothing:antialiased;background:#efebe5;overflow:hidden}.mono{font-family:var(--font-mono);font-feature-settings:"liga" 0}.deck{justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.slide{width:var(--slide-w);height:var(--slide-h);transform:translate(120%, 0) scale(var(--scale,1));transform-origin:50%;opacity:0;visibility:hidden;transition:transform .55s var(--ease), opacity .45s var(--ease);background:var(--paper);align-items:center;display:flex;position:absolute;overflow:hidden;box-shadow:0 10px 40px #3c28141f}.slide.is-active{transform:translate(0, 0) scale(var(--scale,1));opacity:1;visibility:visible;z-index:2}.slide.is-prev{transform:translate(-120%, 0) scale(var(--scale,1));opacity:0;z-index:1}.slide__inner{z-index:1;flex-direction:column;width:100%;height:100%;padding:44px 72px 84px;display:flex;position:relative}.frame-head{border-top:2px solid var(--orange);border-bottom:2px solid var(--orange);flex:none;align-items:baseline;gap:18px;margin-bottom:26px;padding:12px 0;display:flex}.kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--orange);flex:none;font-size:13px;font-weight:700}.slide__title{letter-spacing:-.005em;color:var(--ink);font-size:34px;font-weight:700;line-height:1.3}.slide__title .accent,.accent{color:var(--orange)}.lead{color:var(--ink);max-width:1060px;margin-bottom:22px;font-size:18px;line-height:1.75}.lead strong{color:var(--orange)}.note{color:var(--sub);font-size:13px;line-height:1.6}.note a,.lead a,.ref-link{color:var(--orange);text-underline-offset:2px;text-decoration:underline}.note code,.lead code,.card code,td code,li code{font-family:var(--font-mono);color:#9a3d0e;background:#fcefe4;border-radius:4px;padding:1px 5px;font-size:.88em}.frame-foot{z-index:3;pointer-events:none;align-items:center;gap:18px;display:flex;position:absolute;bottom:26px;left:72px;right:72px}.frame-foot__logo{width:auto;height:20px;display:block}.frame-foot__line{background:var(--orange);opacity:.85;flex:auto;height:2px}.frame-foot__pin{background:var(--orange);color:#fff;border-radius:50% 50% 50% 0;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex;position:relative;transform:rotate(-45deg)}.frame-foot__pin span{font-size:13px;font-weight:700;font-family:var(--font-mono);transform:rotate(45deg)}.corners{pointer-events:none;z-index:0;position:absolute;inset:0}.corners i{border:0 solid;width:120px;height:120px;position:absolute}.corners i:first-child{border-top-width:10px;border-left-width:10px;border-color:var(--red);top:30px;left:30px}.corners i:nth-child(2){border-top-width:10px;border-right-width:10px;border-color:var(--gold);top:30px;right:30px}.corners i:nth-child(3){border-bottom-width:10px;border-left-width:10px;border-color:var(--gold);bottom:30px;left:30px}.corners i:nth-child(4){border-bottom-width:10px;border-right-width:10px;border-color:var(--orange);bottom:30px;right:30px}.title__inner{justify-content:center;max-width:760px;padding:96px 100px}.title__logo{align-self:flex-start;width:auto;height:52px;margin-bottom:42px;display:block}.title__headline{letter-spacing:-.02em;margin-bottom:22px;font-size:64px;font-weight:700;line-height:1.18}.title__headline--long{white-space:nowrap;font-size:50px;line-height:1.25}.title__sub{color:var(--orange);margin-bottom:30px;font-size:20px;font-weight:700;line-height:1.6}.title__meta{flex-wrap:wrap;gap:10px;display:flex}.title__qr{z-index:3;flex-direction:column;align-items:center;gap:14px;display:flex;position:absolute;top:50%;right:110px;transform:translateY(-50%)}.title__qr-card{border:2px solid var(--orange);background:#fff;border-radius:16px;width:300px;height:300px;padding:16px}.title__qr-img{width:100%;height:100%;display:block}.title__qr-cap{color:var(--orange);font-size:13px;font-weight:700}.chip{background:var(--orange);color:#fff;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:700;display:inline-block}.chip--ghost{color:var(--orange);border:1.5px solid var(--orange);background:0 0}.chip--lg{padding:12px 26px;font-size:18px}.slide--appendix{text-align:center}.appendix__inner{justify-content:center;align-items:center;padding:80px}.appendix__no{font-family:var(--font-mono);letter-spacing:.2em;color:var(--orange);margin-bottom:18px;font-size:15px;font-weight:700}.appendix__headline{margin-bottom:20px;font-size:60px;font-weight:700;line-height:1.2}.appendix__sub{color:var(--sub);max-width:820px;font-size:19px;line-height:1.7}.closing__inner{text-align:center;justify-content:center;align-items:center;padding:80px}.closing__logo{width:auto;height:70px;margin-bottom:40px}.closing__headline{margin-bottom:20px;font-size:50px;font-weight:700;line-height:1.3}.closing__sub{color:var(--sub);margin-bottom:34px;font-size:19px;line-height:1.7}.closing__links{flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:30px;display:flex}.closing__links a{text-decoration:none}.closing__foot{color:var(--sub);font-size:13px}.cards{gap:18px;display:grid}.cards--3{grid-template-columns:repeat(3,1fr)}.cards--2{grid-template-columns:repeat(2,1fr)}.cards--4{grid-template-columns:repeat(4,1fr)}.card{border:1.5px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:8px;padding:20px 22px;display:flex}.card--cream{background:var(--cream);border-color:#0000}.card__label{letter-spacing:.12em;color:var(--orange);font-size:12px;font-weight:700;font-family:var(--font-mono);text-transform:uppercase}.card__title{color:var(--orange);font-size:21px;font-weight:700;line-height:1.35}.card__text{color:var(--ink);font-size:15px;line-height:1.7}.card__text strong{color:var(--orange)}.card__foot{color:var(--sub);margin-top:auto;font-size:13px}.card__art{justify-content:center;align-items:center;height:150px;margin-bottom:4px;display:flex}.card__art svg{width:auto;height:100%;display:block}.bullets{flex-direction:column;gap:10px;list-style:none;display:flex}.bullets li{padding-left:22px;font-size:16px;line-height:1.65;position:relative}.bullets li:before{content:"";background:var(--ink);border-radius:50%;width:8px;height:8px;position:absolute;top:.62em;left:4px}.bullets li strong{color:var(--orange)}.band{background:var(--cream);color:var(--orange);text-align:center;border-radius:10px;margin-top:auto;padding:14px 22px;font-size:19px;font-weight:700}.band strong{color:var(--vivid)}.code{font-family:var(--font-mono);color:#3b332c;background:var(--code-bg);border:1.5px solid var(--line);border-left:4px solid var(--orange);white-space:pre;tab-size:2;border-radius:10px;margin:0;padding:14px 16px;font-size:13px;line-height:1.6;overflow:auto}.code--sm{font-size:11.5px}.code--wrap{white-space:pre-wrap;word-break:break-all}.code .t-tag{color:#c2410c}.code .t-attr{color:#9a3d0e}.code .t-val{color:#8a5a00}.code .t-com{color:#9a8f84;font-style:italic}.code .t-key{color:#c2410c}.code .t-str{color:#8a5a00}.code .t-hl{background:#ffe2c7;border-radius:3px;transition:background .6s}.code-label{font-family:var(--font-mono);color:var(--sub);align-items:center;gap:8px;margin-bottom:6px;font-size:11.5px;display:flex}.code-label b{color:var(--orange)}.arch{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.arch__lib{border:2px solid var(--orange);background:#fff;border-radius:12px;flex-direction:column;gap:6px;padding:16px 18px;display:flex}.arch__name{font-family:var(--font-mono);color:var(--orange);font-size:20px;font-weight:700}.arch__for{font-size:14px;font-weight:700}.arch__desc{color:var(--sub);font-size:13.5px;line-height:1.65}.arch__code{margin-top:4px;font-size:11px}.arch__layer{border-radius:12px;grid-column:1/-1;align-items:baseline;gap:16px;padding:14px 20px;display:flex}.arch__layer--core{background:var(--orange);color:#fff}.arch__layer--core .arch__name{color:#fff}.arch__layer--gl{background:var(--cream)}.arch__layer span:last-child{font-size:14px;line-height:1.5}.tbl{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:14px}.tbl th,.tbl td{text-align:left;vertical-align:top;padding:8px 14px;line-height:1.5}.tbl thead th{letter-spacing:.08em;color:var(--sub);padding-bottom:2px;font-size:12px;font-weight:700}.tbl tbody td{background:var(--row)}.tbl tbody th{background:var(--orange);color:#fff;white-space:nowrap;border-radius:8px 0 0 8px;font-weight:700}.tbl tbody td:last-child{border-radius:0 8px 8px 0}.tbl td.ok{color:var(--orange);text-align:center;font-weight:700}.tbl td.ng{color:var(--sub);text-align:center}.tbl--compact th,.tbl--compact td{padding:5px 12px;font-size:13px}.tbl .mono{font-size:12.5px}.company{grid-template-columns:1.05fr 1fr;align-items:start;gap:28px;display:grid}.company-facts{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:14px}.company-facts th{text-align:center;vertical-align:top;color:#fff;background:var(--orange);border-radius:6px 0 0 6px;width:104px;padding:7px 12px;font-size:13px;font-weight:700}.company-facts td{background:var(--row);border-radius:0 6px 6px 0;padding:7px 14px;line-height:1.55}.company-officers{columns:2;column-gap:16px;list-style:none}.company-officers li{break-inside:avoid;font-size:12.5px;line-height:1.65}.company-side{gap:14px;display:grid}.company-list{grid-template-columns:1fr 1fr;gap:5px 14px;list-style:none;display:grid}.company-list li{padding-left:14px;font-size:13.5px;position:relative}.company-list li:before{content:"●";color:var(--orange);font-size:8px;position:absolute;top:2px;left:0}.company-gov{flex-direction:column;gap:8px;list-style:none;display:flex}.company-gov li{color:var(--sub);font-size:13px;line-height:1.55}.company-gov li strong{color:var(--ink)}.live-badge{z-index:7;background:var(--orange);color:#fff;letter-spacing:.14em;font-size:11px;font-weight:700;font-family:var(--font-mono);border-radius:999px;align-items:center;gap:7px;padding:4px 12px 4px 10px;display:inline-flex;position:absolute;top:20px;right:72px}.live-badge__dot{background:#fff;border-radius:50%;width:7px;height:7px;animation:1.6s ease-out infinite livePulse}@keyframes livePulse{0%{box-shadow:0 0 #ffffffb3}70%{box-shadow:0 0 0 7px #fff0}to{box-shadow:0 0 #fff0}}.slide__inner--demo{padding-bottom:76px}.slide__inner--demo .frame-head{margin-bottom:14px}.demo-desc{color:var(--ink);margin-bottom:14px;font-size:15px;line-height:1.65}.demo-desc strong{color:var(--orange)}.demo-desc code{font-family:var(--font-mono);color:#9a3d0e;background:#fcefe4;border-radius:4px;padding:1px 5px;font-size:.88em}.demo-body{flex:auto;gap:18px;min-height:0;display:flex}.demo-side{flex-direction:column;flex:0 0 410px;gap:12px;width:410px;min-height:0;display:flex}.demo-side--wide{flex-basis:470px;width:470px}.demo-side .code{white-space:pre-wrap;overflow-wrap:anywhere;flex:auto;min-height:0}.map-wrap{border:2px solid var(--orange);background:#f4f1ec;border-radius:12px;flex:auto;min-width:0;position:relative;overflow:hidden}.demo-map,.map-wrap>.geolonia{width:100%;height:100%;position:absolute;inset:0}.map-wrap .maplibregl-popup-content{font-family:var(--font-sans);color:var(--ink);border-radius:8px;padding:10px 14px;font-size:13px;line-height:1.55}.map-overlay{z-index:5;pointer-events:none;color:var(--ink);border:1px solid var(--line);background:#ffffffeb;border-radius:8px;padding:7px 12px;font-size:12.5px;line-height:1.5;position:absolute;box-shadow:0 2px 10px #00000014}.map-overlay--tl{top:12px;left:12px}.map-overlay--bl{bottom:30px;left:12px}.map-overlay b{color:var(--orange);font-family:var(--font-mono)}.ctl-panel{flex-direction:column;gap:10px;display:flex}.ctl-row{grid-template-columns:96px 1fr 54px;align-items:center;gap:10px;font-size:13px;display:grid}.ctl-row>span:first-child{font-family:var(--font-mono);color:var(--sub);font-size:12px}.ctl-row output{font-family:var(--font-mono);color:var(--orange);text-align:right;font-size:12.5px;font-weight:700}.ctl-row input[type=range]{width:100%;accent-color:var(--orange)}.btn-group{flex-wrap:wrap;gap:6px;display:flex}.btn{font-family:var(--font-sans);cursor:pointer;color:var(--orange);border:1.5px solid var(--orange);background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700;transition:background .15s,color .15s}.btn:hover{background:#fff4ec}.btn.is-active,.btn--solid{background:var(--orange);color:#fff}.btn--solid:hover{background:var(--vivid)}.btn:disabled{opacity:.5;cursor:default}.btn-group--styles .btn{font-family:var(--font-mono);border-radius:8px;padding:6px 10px;font-size:12px}.style-info{background:var(--cream);border-radius:10px;min-height:70px;padding:12px 14px;font-size:13.5px;line-height:1.6}.style-info b{color:var(--orange);font-family:var(--font-mono);margin-bottom:2px;display:block}.addr-form{gap:8px;display:flex}.addr-form input{min-width:0;font-family:var(--font-sans);border:1.5px solid var(--line);color:var(--ink);border-radius:8px;flex:auto;padding:9px 12px;font-size:14px}.addr-form input:focus{border-color:var(--orange);outline:none}.addr-status{color:var(--sub);min-height:18px;font-size:12.5px}.addr-status.is-error{color:var(--red)}.style-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.style-card{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:12px 14px}.style-card code{font-family:var(--font-mono);color:var(--orange);margin-bottom:4px;font-size:12.5px;font-weight:700;display:block}.style-card p{color:var(--sub);font-size:13px;line-height:1.55}.style-card--default{background:var(--cream);border-color:#0000}.fresh{gap:12px;padding:24px 26px}.fresh__freq{color:var(--ink);font-size:22px;font-weight:700;line-height:1}.fresh__freq b{color:var(--orange);letter-spacing:-.02em;margin-right:6px;font-size:64px}.fresh .card__text{font-size:15.5px}.suite-ways{flex:auto;grid-template-columns:1.15fr 1fr;gap:22px;min-height:0;display:grid}.suite-way{flex-direction:column;gap:8px;min-width:0;display:flex}.suite-way__label{color:var(--ink);font-size:18px;font-weight:700}.suite-way__label b{color:var(--orange);margin-right:4px}.suite-way__label code{font-family:var(--font-mono);color:var(--orange);font-size:.9em}.suite-way__desc{color:var(--sub);font-size:14px;line-height:1.6}.suite-way .code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11.5px;overflow:hidden}.suite-note{margin-top:12px;font-size:13.5px}.suite-note strong{color:var(--orange)}.geo-points li{font-size:15px}[data-slide=geocoder] .suite-way .code{font-size:12.5px}[data-slide=maps-react] .code{font-size:12px;line-height:1.5}.geo-points code{font-family:var(--font-mono);color:var(--orange);font-size:.9em}.speaker{flex:auto;grid-template-columns:400px 1fr;align-items:center;gap:48px;display:grid}.speaker__name{background:var(--cream);border-radius:16px;flex-direction:column;gap:14px;padding:44px 36px;display:flex}.speaker__photo{object-fit:cover;border:4px solid var(--paper);width:160px;height:160px;box-shadow:0 0 0 2px var(--orange);border-radius:50%;margin-bottom:8px}.speaker__en{font-size:40px;font-weight:700;line-height:1.15}.speaker__id{color:var(--orange);font-size:22px;font-weight:700}.speaker__roles{flex-direction:column;gap:16px;list-style:none;display:flex}.speaker__roles>li{padding-left:26px;font-size:22px;line-height:1.5;position:relative}.speaker__roles>li:before{content:"";background:var(--ink);border-radius:50%;width:10px;height:10px;position:absolute;top:.6em;left:4px}.speaker__roles strong{color:var(--orange)}.speaker__roles ul{margin-top:6px;list-style:none}.speaker__roles ul li{color:var(--sub);padding-left:22px;font-size:18px;position:relative}.speaker__roles ul li:before{content:"└";color:var(--orange);position:absolute;left:0}.steps{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.step{background:var(--cream);border-radius:12px;flex-direction:column;gap:6px;padding:18px 20px;display:flex}.step__no{color:var(--ink);font-size:40px;font-weight:700;line-height:1}.step__title{color:var(--orange);font-size:18px;font-weight:700}.step__text{font-size:14px;line-height:1.65}.host-list{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.host-list span{font-family:var(--font-mono);color:#9a3d0e;background:#fff;border-radius:6px;padding:3px 8px;font-size:11.5px}.split{flex:auto;grid-template-columns:1fr 1fr;align-items:start;gap:28px;min-height:0;display:grid}.split--60{grid-template-columns:1.1fr .9fr}.glossary{grid-template-columns:1fr 1fr;gap:12px 40px;display:grid}.glossary__term{color:var(--orange);margin-bottom:2px;font-size:15px;font-weight:700;display:block}.glossary__def{color:var(--ink);font-size:13.5px;line-height:1.55;display:block}.ui{z-index:50;pointer-events:none;position:fixed;bottom:0;left:0;right:0}.ui__progress{background:#0000000f;width:100%;height:3px}.ui__progress-bar{background:linear-gradient(90deg, var(--gold), var(--orange), var(--red));width:0;height:100%;transition:width .45s var(--ease)}.ui__controls{pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;background:#1a1a1ac7;border-radius:12px;align-items:center;gap:6px;padding:5px 8px;transition:opacity .3s;display:flex;position:absolute;bottom:14px;right:16px}.ui__controls:hover,.ui__controls:focus-within{opacity:1}@media (hover:none){.ui__controls{opacity:.6}}.ui__btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:8px;width:34px;height:34px;font-size:20px;line-height:1;transition:background .2s}.ui__btn:hover{background:#ffffff24}.ui__btn--fs,.ui__btn--home{font-size:17px}.ui__btn:disabled{opacity:.3;cursor:default}.ui__btn:disabled:hover{background:0 0}.ui__btn--play{font-size:14px}.ui__btn--play[aria-pressed=true]{color:var(--amber);background:#ffffff2e}.ui__counter{color:#ffffffd9;text-align:center;min-width:60px;font-size:13px;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 6px;transition:background .2s}.ui__counter:hover{color:#fff;background:#ffffff24}.ui__btn--toc{font-size:16px}.toc[hidden]{display:none}.toc{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:toc-in .18s var(--ease);background:#281e1473;justify-content:center;align-items:center;padding:3vh 3vw;display:flex;position:fixed;inset:0}@keyframes toc-in{0%{opacity:0}to{opacity:1}}.toc__panel{border-top:4px solid var(--orange);background:#fff;border-radius:16px;flex-direction:column;width:min(1180px,100%);max-height:100%;display:flex;overflow:hidden;box-shadow:0 30px 80px #00000040}.toc__head{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:16px 22px;display:flex}.toc__title{font-size:20px;font-weight:700}.toc__keys{color:var(--sub);font-size:12px}.toc__close{border:1px solid var(--line);width:34px;height:34px;color:var(--ink);cursor:pointer;background:0 0;border-radius:9px;flex:none;margin-left:auto;font-size:15px}.toc__close:hover{background:var(--row)}.toc__body{padding:18px 22px 24px;overflow-y:auto}.toc__group+.toc__group{margin-top:20px}.toc__group-label{letter-spacing:.14em;color:var(--orange);margin-bottom:10px;font-size:12px;font-weight:700}.toc__grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;display:grid}.toc__item{text-align:left;cursor:pointer;background:var(--row);color:var(--ink);border:1.5px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.4;transition:background .15s,border-color .15s,transform .15s;display:flex}.toc__item:hover{background:var(--cream);transform:translateY(-1px)}.toc__item:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.toc__item.is-current{border-color:var(--orange);background:var(--cream)}.toc__num{text-align:right;min-width:26px;color:var(--sub);flex:none;font-size:12px}.toc__item.is-current .toc__num{color:var(--orange);font-weight:700}.toc__label{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:auto;display:-webkit-box;overflow:hidden}.toc__live{letter-spacing:.1em;color:#fff;background:var(--orange);border-radius:999px;flex:none;padding:3px 6px;font-size:9px;font-weight:700}.hint{z-index:50;color:#fff;white-space:nowrap;background:#1a1a1ab8;border-radius:999px;padding:8px 18px;font-size:13px;transition:opacity .5s;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.hint.is-hidden{opacity:0;pointer-events:none}.rotate-hint{z-index:9999;text-align:center;background:#fff;justify-content:center;align-items:center;padding:28px;display:none;position:fixed;inset:0}.rotate-hint__icon{margin-bottom:18px;font-size:56px;display:block}.rotate-hint__text{font-size:20px;font-weight:700;line-height:1.5}.rotate-hint__text strong{color:var(--orange)}.rotate-hint__sub{color:var(--sub);margin-top:10px;font-size:13px}@media (orientation:portrait) and (width<=820px) and (pointer:coarse){.rotate-hint{display:flex}.ui,.hint{display:none}}@media (prefers-reduced-motion:reduce){.slide{transition:opacity .2s linear}.live-badge__dot{animation:none}}.tbl td.mono{white-space:nowrap}
