<!DOCTYPE html>
<!--

  Well well, someone who reads source code. I like you already.

  Here, have some keyboard shortcuts:

    ARCHIVE           ALBUM
    ───────           ─────
    G  grid view      Q  back to index
    L  list view      D  dark / light
    M  map view       T  scroll to top
    S  search
    D  dark / light
    T  scroll to top
    Esc  clear filters

    R×5  ???
    There's one more. Ask anyone who played Contra.

  Photos by Tõnu Tunnel  ·  tonutunnel.com

-->
<html lang="en" data-theme="light">

<head>
	<!-- CMS and Theme by IO200 (https://www.io200.com) -->
	<!-- Preconnect to image CDN for faster loading -->
	<link rel="preconnect" href="https://cdn.io200.com" crossorigin>
	<link rel="dns-prefetch" href="https://cdn.io200.com">
	<!-- Meta -->
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
	<meta name="mobile-web-app-capable" content="yes">
	<!-- Meta (SEO) -->
	<title> | Tõnu Tunnel</title><meta name="description" content="Tõnu Tunnel is an architecture photographer based in Tallinn, working across Estonia and Europe."><meta name="keywords" content="architecture photography, architectural photographer, Tallinn photographer, Estonia architecture, interior photography, urban photography, modern architecture, architectural documentation, European architecture">	<meta name="robots" content="all">
	<!-- CSS -->
	<link rel="stylesheet" href="/storage/custom/custom.css?v=a08773" type="text/css" media="screen">		<style>
			@media (min-width:1000px) {
				header span.website-title, header h1.website-title {
					content:url(/storage/custom/logo.png?t=83562c);
					width:auto;height:1em;
					font-size:2em;
				}
			}
			@media (max-width:999px) {
				header span.website-title, header h1.website-title {
					display:block;
					content:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
					background-image:url(/storage/custom/logo.png?t=83562c);
					background-size:contain;background-repeat:no-repeat;background-position:center left;
					width:90%;aspect-ratio:11.78/1;
				}
			}
		</style>			<!-- JS -->
	<script src="/res/script/MyApp.js?v=2.23d"></script>
                <script src="/res/lib/glightbox/glightbox.min.js?v=2.23d" defer></script>
                <link href="/res/lib/glightbox/glightbox.min.css?v=2.23d" type="text/css" rel="stylesheet">	<meta name="robots" content="noindex">		<meta property="og:site_name" content="Tõnu Tunnel">
	<meta name="twitter:card" content="summary_large_image">
	<!-- Further -->
		<link rel="icon" href="/storage/custom/favicon.png?t=99529d" type="image/png">
            <meta property="og:logo" content="/storage/custom/favicon.png?t=99529d" />	<link rel="sitemap" href="/en/sitemap.xml" type="application/xml">	<!-- Structured Data -->
	<script type="application/ld+json">
	{
		"@context": "https://schema.org",
		"@type": "ProfessionalService",
		"name": "Tõnu Tunnel",
		"description": "Architectural photographer based in Tallinn, Estonia",
		"url": "https://www.tonutunnel.com",
		"email": "hello@tonutunnel.com",
		"address": {
			"@type": "PostalAddress",
			"addressLocality": "Tallinn",
			"addressCountry": "EE"
		},
		"founder": {
			"@type": "Person",
			"name": "Tõnu Tunnel",
			"jobTitle": "Architectural Photographer",
			"url": "https://www.tonutunnel.com",
			"sameAs": [
				"https://www.instagram.com/tonutunnel",
				"https://www.archdaily.com/photographer/tonu-tunnel"
			]
		},
		"areaServed": ["Estonia", "Europe"],
		"knowsAbout": ["Architecture Photography", "Interior Photography", "Architectural Documentation"]
	}
	</script>
	<!-- Code Injection -->
	<!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.io/js/pa-WfsP9Qq9hZKty2l5qWKYC.js"></script>
<script>
  window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
  plausible.init()
</script>
	<!-- Theme initialization (prevent flash) -->
	<script>
		(function() {
			const saved = localStorage.getItem('tt-theme');
			const theme = saved || (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
			document.documentElement.setAttribute('data-theme', theme);
			if (sessionStorage.getItem('konami') === '1') document.documentElement.classList.add('konami');
		})();
	</script>
</head>


<body class="language-en template-_password templatelayout-standard ">

	<a href="#top" class="skip-link">Skip to content</a>

	<div id="container">
		<!-- Header -->
		<header class="js-nav">
			<div class="title-container">
				<span class="website-title has-logo">
					<a href="https://www.tonutunnel.com/en/index" title="Tõnu Tunnel" class="website-title-link">Tõnu Tunnel</a>
				</span>
							</div>
			<nav>
				<ul class="primary">
					<li class="linktemplate-basket"><a href="/en/shortlist" class="nav-item-title" title="Photo shortlist"><svg class="symbol" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="m480-120-58-52q-101-91-167-157T150-447.5Q111-500 95.5-544T80-634q0-94 63-157t157-63q52 0 99 22t81 62q34-40 81-62t99-22q94 0 157 63t63 157q0 46-15.5 90T810-447.5Q771-395 705-329T538-172l-58 52Z"/></svg> 0</a></li><li class="linktemplate-phonebook"><a href="/en/index" class="nav-item-title" title="Archive">Archive</a></li><li class="linktemplate-contactform"><a href="/en/contact" class="nav-item-title" title="About/Contact">About/Contact</a></li>										<!-- Theme toggle (inline in nav) -->
					<li class="tt-theme-toggle-item">
						<button class="tt-theme-toggle-btn" id="headerThemeToggle" aria-label="Toggle dark mode" title="Toggle dark mode">
							<svg class="tt-icon-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
							<svg class="tt-icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
						</button>
					</li>
																<!-- Language toggle -->
					<li class="tt-lang-toggle-item">
						<a href="/et/sitemap.xml" class="tt-lang-toggle-btn" title="Eesti">ET</a>
					</li>
															</ul>
			</nav>
		</header>

		<!-- Content starts here (templates output their own <main>) -->

<link rel="stylesheet" href="/storage/custom/fullscreen-hero.css?v=1.1">

<main class="tt_hero template-fullscreen-hero">
  <!-- Background image (grayscale) -->
      <div class="tt_hero__bg tt_hero__bg--grayscale" style="background-image:url('/storage/cache/21/53/ca82-76aa-4880-e2f1-1010/gtun7839_2.webp');"></div>
  
  <!-- Vignette for text readability -->
  <div class="tt_hero__vignette"></div>

  <!-- Bottom-left project label -->
      <div class="tt_hero__meta" aria-label="Featured project">
      <span class="tt_hero__title">Hara harbour</span>
              <span class="tt_hero__arch">PLUSS</span>
          </div>
  
  <!-- Centered login form -->
  <div class="tt_centered tt_login" role="region" aria-label="Password required">
    <h1 class="tt_login__heading">Administrative area</h1>

    <form class="tt_login__form" method="post">
      <input
        type="password"
        name="password"
        class="tt_login__input"
        placeholder="Password"
        autocomplete="current-password"
        autofocus
      >
      <button type="submit" name="path_protection" class="tt_cta">
        Submit      </button>

          </form>
  </div>
</main>


<!-- Footer -->
<footer>
			</footer>

</div>

<!-- Theme Toggle Script -->
<script>
(function() {
	const storageKey = 'tt-theme';
	
	function setTheme(theme) {
		document.documentElement.setAttribute('data-theme', theme);
		localStorage.setItem(storageKey, theme);
	}
	
	function toggleTheme() {
		const current = document.documentElement.getAttribute('data-theme');
		setTheme(current === 'dark' ? 'light' : 'dark');
	}
	
	// Header theme toggle
	const headerToggle = document.getElementById('headerThemeToggle');
	if (headerToggle) {
		headerToggle.addEventListener('click', toggleTheme);
	}
	
	// Any other theme toggles on the page
	document.querySelectorAll('[data-theme-toggle]').forEach(btn => {
		btn.addEventListener('click', toggleTheme);
	});
})();
</script>

<!-- CMS and Theme by IO200 (https://www.io200.com) -->
<script>
                        window.MyApp.settings.mounts.push('basket')
                        window.MyApp.settings.basket = {
                                displayHeaderIconOnMobile: false,
                                displayActionButtonsOnAlbums: false,
                                displayActionButtonOnPhotoSite: true,
                                displayNavigationLinkIfEmpty: false,
                                displayActionBarButton: false,
                                actionBarButtonTarget: `self`,
                                counterNavigationLink: `x`,
                                counterActionBarButton: ``,
                                iconActionBarButton: `send`,
                                iconBasket: `favorite`,
                                iconAdd: `favorite`,
                                iconRemove: `close`,
                                basketLink: `/en/shortlist`,                                
                            }                    
                        window.MyApp.lang.basket = {
                                textAdd: `Add to shortlist`,
                                textRemove: `Remove from shortlist`,
                                textSubmitPhotoSelection: `Submit Photo Selection`,
                            }
                    </script><script>
                    window.MyApp.settings.lightboxZoomable = false
                    window.MyApp.lang.general = { textClose: `Close` }
                    window.MyApp.lang.pathaccess = { textLogout: `Logout` }
                    
                    document.addEventListener('DOMContentLoaded', () => { window.MyApp.init() })
        	    </script>
</body>

</html>
